mar*_*000 3 windows opengl aero dwm aero-glass
几年前我写了一个免费游戏:http://www.walkover.org.对于大厅和菜单,它使用常规对话框,如win32.当实际游戏开始时,它使用OpenGL.
现在,在Windows 7上,当实际游戏开始时,它会关闭Windows aero glass并在游戏结束时将其重新打开.
有什么我可以做的,以防止这种情况发生?一些特殊的标志,如果它打开,玻璃打开?(对于更新的,我一直在使用DirectX,这不会发生在那里.)也许某些(新)标志我必须在某处指定?
我正在使用这个pixelformatdescriptor:
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
1, // version number
PFD_DRAW_TO_WINDOW | // support window
PFD_SUPPORT_OPENGL | // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
32, // 24-bit color depth
0, 0, 0, 0, 0, 0, // color bits ignored
0, // no alpha buffer
0, // shift bit ignored
0, // no accumulation buffer
0, 0, 0, 0, // accum bits ignored
0, // 32-bit z-buffer
0, // no stencil buffer
0, // no auxiliary buffer
PFD_MAIN_PLANE, // main layer
0, // reserved
0, 0, 0 // layer masks ignored
};
Run Code Online (Sandbox Code Playgroud)
此问题是由以下所有原因引起的:
我有同样的问题,我测试了2个使用OpenGL的AAA游戏引擎,可以确认它们都有同样的问题.DirectX似乎没有受到影响.
这意味着您的窗口创建很好,这不是代码问题.
我建议更新您的显卡驱动程序以解决问题.
我找到的一个短期工作是创建一个比屏幕分辨率大1个像素的窗口(宽度或高度)
这会欺骗窗口,而不是检测到你已进入全屏并且不会触发问题.