有没有更简单的方法来使用 C++ 和 OpenGL 显示文本?

Is there an easier way to display text using C++ and OpenGL?

使用 C++ 和 OpenGL(带有 GLUT)我试图在用户屏幕上显示一些动态文本。我试图显示的文本是计算渲染 Mandelbrot 集所需的一切所花费的时间。

到目前为止,我已经设法做到了:

std::ostringstream stream;
stream << "Time: " << end_time-start_time;
const std::string& tmp = stream.str();
const char* cstr = tmp.c_str();
strcpy(message, cstr );
int len = (int) strlen(message);
glPushMatrix();
glTranslatef(20.0, 80.0, 0.0);
glScalef(0.1, 0.1, 0.0);
glColor3f(1.0,1.0,1.0);
for (int i = 0; i < len; i++) {
    glutStrokeCharacter(GLUT_STROKE_ROMAN, message[i]);
}
glPopMatrix();

由于我对 C++ 和 OpenGL 不是很熟悉,所以我想不出更简洁的方法,但在我看来这太复杂了,无法只显示一个句子。

你能推荐一种更好或更简单的方法吗?欢迎任何意见或批评。

这可能更简洁 (c++11):

void showTime()
{
  glPushMatrix();
  glTranslatef(20.0, 80.0, 0.0);
  glScalef(0.1, 0.1, 0.0);
  glColor3f(1.0,1.0,1.0);
  for (auto ch : std::to_string(end_time - start_time))
  {
    glutStrokeCharacter(GLUT_STROKE_ROMAN, ch);
  }
  glPopMatrix();
}