J'ai écrit un jeu gratuit il y a quelques années: http://www.walkover.org. Pour le lobby et les menus, il utilise des dialogues normaux comme win32. Lorsque le jeu commence, il utilise OpenGL. Maintenant, sous Windows 7, lorsque le jeu commence, il éteint le verre de Windows et le rallume quand le jeu est terminé.Mon jeu OpenGL bascule Aero DWM Glass
Y a-t-il quelque chose que je puisse faire pour éviter que cela ne se produise? Des drapeaux spéciaux qui gardent le verre allumé s'il est allumé? (Pour les plus récents, j'utilise DirectX et cela n'arrive pas là.) Peut-être un (nouveau) drapeau que je dois spécifier quelque part?
J'utilise ce 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
};
est une application en plein écran ou fenêtré? Pour une application en plein écran, cela ne devrait pas vous intéresser, et pour une application fenêtrée, la raison pour laquelle DirectX agit différemment est que DWM lui-même utilise DirectX, pas OpenGL. –
C'est en plein écran, mais ce n'est pas exigeant sur le matériel. Donc, si la commutation à une application de la fenêtre le fixe. Je ferais ça. Mais je n'ai aucune idée de comment. Btw. J'ai trouvé ce site: http://encelo.netsons.org/programming/opengl Il y a quelques exemples ouverts à ce sujet. Ils sont à partir de 2005 et en mode fenêtre, 16 bits, mais dwm reste allumé. Cependant, ils utilisent sdl pour initialiser la surface opengl. :/ – marc40000