我的openGL程序运行在全屏和桌面之间切换的时候画图中的四根柱子不见了,是不是全屏之后MAP_SIZE改变了,导致显示不出来啊
MAP_SIZE在前文定义为200,首先绘制地面,之后在4个边角添加了4个柱子.全屏转换之后柱子不见了,转换到桌面还是不显示,不过在运行程序时候开始选择全屏模式就会显示柱子,这是什么原因啊?
//画场景
GLvoid DrawGLScene()
{
glBegin(GL_QUADS); //地面 ,加入纹理坐标
glTexCoord2f(0.0f,0.0f); glVertex3f(-MAP_SIZE, 0.0f, -MAP_SIZE);
glTexCoord2f(1.0f,0.0f); glVertex3f(MAP_SIZE, 0.0f, -MAP_SIZE);
glTexCoord2f(1.0f,1.0f); glVertex3f(MAP_SIZE, 0.0f, MAP_SIZE);
glTexCoord2f(0.0f,1.0f); glVertex3f(-MAP_SIZE, 0.0F, MAP_SIZE);
glEnd();
//画四根柱子,作为边界标志(天边)
glPushMatrix() ;
glTranslatef(MAP_SIZE,59,MAP_SIZE);
//auxSolidSphere(0.2);
auxSolidCylinder(1.0f,60);
glTranslatef(-MAP_SIZE*2,0.0,0.0F);
auxSolidCylinder(1.0f,60);
glTranslatef(0.0f,0.0f,-MAP_SIZE*2);
auxSolidCylinder(1.0,60.0);
glTranslatef(2*MAP_SIZE,0.0f,0.0);
auxSolidCylinder(1.0f,60.0f);
glPopMatrix();
}
后面的是全屏桌面控制键的demo:
SwapBuffers(hDC); // 双缓冲
if(KEY_DOWN(VK_F1))
//if (keys[VK_F1]) // Is F1 Being Pressed?
{
keys[VK_F1]=FALSE; // If So Make Key FALSE
KillGLWindow(); // Kill Our Current Window
fullscreen=!fullscreen; // Toggle Fullscreen / Windowed Mode
// Recreate Our OpenGL Window
if (!CreateGLWindow("viewing system",800,600,32,fullscreen))
{
return 0 // Quit If Window Was Not Created
}
}