【发布时间】:2012-03-15 02:54:53
【问题描述】:
我正在尝试在屏幕左下方打印一些调试信息(FPS、相机位置和旋转等)。我已经对其进行了设置,以便使用glTranslate() 和glRasterPos2f() 可以正常工作,但是如果我尝试调整窗口大小,则文本不再完美地停留在角落里,这取决于我将窗口伸展多少,它可能出现在屏幕中间,也可能开始被截断。有什么方法可以使用glPrint() 打印文本,例如,从左侧 10 像素,从右侧 10 像素?
这是我正在使用的代码:
GLvoid glPrint(const char *fmt, ...){ // Custom GL "Print" Routine
char text[256]; // Holds Our String
va_list ap; // Pointer To List Of Arguments
va_start(ap, fmt); // Parses The String For Variables
vsprintf(text, fmt, ap); // And Converts Symbols To Actual Numbers
va_end(ap); // Results Are Stored In Text
glPushAttrib(GL_LIST_BIT); // Pushes The Display List Bits
glListBase(base - 32); // Sets The Base Character to 32
glCallLists(strlen(text), GL_UNSIGNED_BYTE, text); // Draws The Display List Text
glPopAttrib(); // Pops The Display List Bits
}
void GLOUT(float xLocation, float yLocation, float colorRed, float colorGreen, float colorBlue){
glDisable(GL_TEXTURE_2D);
glLoadIdentity();
glTranslatef(0,0,-.002);
glColor3f(colorRed,colorGreen,colorBlue);
glRasterPos2f(xLocation/10000, yLocation/10000);
glPopMatrix();
}
【问题讨论】: