【发布时间】:2011-06-19 16:18:06
【问题描述】:
我成功地将我的 Opengl 项目从 Qt 移植到 MFC.. 仅在调试模式下。
在调试模式下一切正常。
只要定义了_DEBUG,它甚至可以在发布模式下工作。如果不是,每个 OpenGL 函数都会被调用,但屏幕上没有结果。
我在代码的任何地方都没有使用断言函数。 我使用 Glew 来获取 OpenGL 函数指针。
这里是(慢)OpenGL 函数,即使我认为它不会真正有帮助:
void COpenGLView::Render()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
for(u32 i = 0; i < 144; ++i)
{
for(u32 j = 0; j < 160; ++j)
{
switch( lcd_[(i * 160)+j] & 0x3 )
{
case WHITE: glColor3f(0.75f,1.0f,0.75f); break;
case LIGHT_GREY: glColor3f(0.50f, 0.80f, 0.50f); break;
case DARK_GREY: glColor3f(0.25f,0.60f,0.25f); break;
case BLACK: glColor3f(0.0f,0.0f,0.0f); break;
}
glVertex2d(j,i);
glVertex2d(j,i + 1);
glVertex2d(j + 1,i + 1);
glVertex2d(j + 1,i);
}
}
glEnd();
FinishRender();
}
所以主要问题是:如果_DEBUG没有定义,屏幕上就没有OpenGL相关的东西了!
有人知道这个问题是从哪里来的吗?
【问题讨论】:
-
发布一个最小的、完整的程序来演示这个问题。
-
如果 _DEBUG 被定义,你可能只做缓冲交换吗?但这就像在没有更多代码的情况下猜测......
标签: debugging opengl rendering release