- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将使用 freeglut 函数 glutBitmapString 在屏幕上显示 FPS,但它什么也没显示。这是我的代码。有没有人能弄清楚问题出在哪里?
void PrintFPS()
{
frame++;
time=glutGet(GLUT_ELAPSED_TIME);
if (time - timebase > 100) {
cout << "FPS:\t"<<frame*1000.0/(time-timebase)<<endl;
char* out = new char[30];
sprintf(out,"FPS:%4.2f",frame*1000.0f/(time-timebase));
glColor3f(1.0f,1.0f,1.0f);
glRasterPos2f(20,20);
glutBitmapString(GLUT_BITMAP_TIMES_ROMAN_24,(unsigned char* )out);
timebase = time;
frame = 0;
}
}
void RenderScene(void)
{
// Clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 0.5f };
GLfloat vYellow[] = {1.0f,1.0f,0.0f,1.0f};
shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vYellow);
//triangleBatch.Draw();
squareBatch.Draw();
PrintFPS();
glutSwapBuffers();
}
最佳答案
glRasterPos
提供的职位被视为一个顶点,并由当前的模型 View 和投影矩阵进行转换。在您的示例中,您将文本指定为(20,20),我猜它应该是屏幕(实际上是视口(viewport))坐标。
如果您正在渲染 3D 几何图形,尤其是使用透视投影,您的文本可能会被剪掉。但是,(至少)有两个简单的解决方案(按代码简单的顺序呈现):
glWindowPos
之一函数而不是 glRasterPos
.此函数绕过模型 View 和投影转换。 glMatrixMode
, glPushMatrix
, 和 glPopMatrix
临时切换到窗口坐标进行渲染:// Switch to window coordinates to render
glMatrixMode( GL_MODELVIEW );
glPushMatrix();
glLoadIdentity();
glMatrixMode( GL_PROJECTION );
glPushMatrix();
glLoadIdentity();
gluOrtho2D( 0, windowWidth, 0, windowHeight );
glRasterPos2i( 20, 20 ); // or wherever in window coordinates
glutBitmapString( ... );
glPopMatrix();
glMatrixMode( GL_MODELVIEW );
glPopMatrix();
关于opengl - glutBitmapString 什么都不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16873561/
我将使用 freeglut 函数 glutBitmapString 在屏幕上显示 FPS,但它什么也没显示。这是我的代码。有没有人能弄清楚问题出在哪里? void PrintFPS() { f
我正在使用 opengl 函数“drawstring”为我的游戏创建一个 HUD。我已经成功地将字符串绘制到屏幕上,但是在显示玩家位置或 float 等值时遇到了问题。 经过一些研究,我发现 draw
当我尝试使用以下代码绘制一些字符串时: // label min and max for current vector glRasterPos2f(nx+1,y1); glut
我正在使用 OpenGlut 库中的 glutBitmapString。现在我只想在屏幕上写一个字符串以确保它有效,但我无法让它出现: const char* texto = "texto"; glR
我正在编写我的第一个 OpenGL 程序(在 C 中使用 freeglut)。我的显示功能中有以下代码,它运行良好并打印出灰色文本: glColor3f(0.5f, 0.5f, 0.5f); glRa
我正在尝试使用 GLUT in 2d 将文本绘制到屏幕上。 我想使用 glutBitmapString(),谁能告诉我一个简单的例子,说明在 C++ 中设置和正确使用此方法必须做些什么,这样我才能在
Ubuntu 11.04、G++、freeglut 和 GLUT。 这个我完全不懂。这是我得到的错误: whatever.cc:315:59: error: cannot convert ‘std::
我是一名优秀的程序员,十分优秀!