|
|
这是从"学OpenGL编游戏"里的代码片断,
这是原来的代码
void OpenGL::Render()
{
glClearColor(0.0f,0.0f,1.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glFlush();
SwapBuffers(hDC);
}
渲染后显示一个蓝色的背景图,
为了显示一个正方形修改代码如下
void OpenGL::Render()
{
glClearColor(0.0f,0.0f,1.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
//Test.Begin
glColor3f(1.0f,0.0f,0.0f);
glRectf(-25.0f,25.0f,25.0f,-25.0f);
//Test.End
glLoadIdentity();
glFlush();
SwapBuffers(hDC);
}
但是运行后还是显示一个蓝色背景,
//Test.Begin
glColor3f(1.0f,0.0f,0.0f);
glRectf(-25.0f,25.0f,25.0f,-25.0f);
//Test.End
这两行似乎没有起作用?不知道为什么,
下边是它的
void GameLoop()
{
MSG msg;
bool fMessage;
PeekMessage(&msg,NULL,0U,0U,PM_NOREMOVE);
while(msg.message!=WM_QUIT)
{
fMessage=PeekMessage(&msg,NULL,0L,0L,PM_REMOVE);
if(fMessage)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
m_OpenGL->Render();
}
}
}
为什么会这样呢? |
|