Plein écran en openGL
Je suis en train d'essayer de rendre une fenêtre openGL en plein écran et je suis à l'aide de la NeHe tutoriels pour apprendre comment faire cela. cependant, j'ai atteint un point où je suis en utilisant exactement le même code à la fois l'exemple de code donné et mon propre code, mais quand il atteint cette ligne:
if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
ce n'est pas évalué à true dans mon code, même s'il le fait dans l'exemple de code donné. c'est d'autant plus déroutant que tout de énerve tout était exactement le même jusqu'à ce point.
Est là quelque chose de simple, je suis absent comme quelque chose dans les propriétés du projet, ou si non, quelqu'un pourrait-il me conseiller sur toutes les autres manières de créer une fenêtre plein écran.
NeHe tutoriel, je suis en utilisant:
http://nehe.gamedev.net/tutorial/creating_an_opengl_window_%28win32%29/13001/
- Votre moniteur/carte graphique n'a probablement pas en charge les paramètres que vous définissez dans
dmScreenSettings
- s'avère même si la résolution n'est pas exactement la même chose, mon ordinateur ne l'aime pas
- Avez-vous essayé de compilation et de l'exécution, inchangé, l'exemple de code à partir de NeHe?
Vous devez vous connecter pour publier un commentaire.
Si vous êtes seulement à apprendre, vous pouvez essayer d'utiliser GLUT. Vous pouvez créer une fenêtre avec en quelques lignes, et vous pouvez juste mess avec votre code OpenGL, jusqu'à ce que vous êtes à l'aise avec elle fait assez pour essayer de la plate-forme Api pour ce faire, comme WinAPI.
Vous aurez besoin pour installer Freeglut (mise en œuvre de l'ancienne GLUT), et GLEW (pour la facilité de l'utilisation d'OpenGL 1.1+ fonctions parce que Microsoft
gl.h
n'a pas été mis à jour depuis)Minimum de code:
(600, 600)
et pourtant obtenir un plein écran?Windows a tendance à être très pointilleux dans ce que vous mettez dans des structures comme
DEVMODE
. Jetez un oeil àDEVMODE
, cette structure est énorme et a beaucoup d'entrées complètement hors de propos pour les moniteurs, par exemple les dimensions du papier (il s'avère que la même structure peut être utilisée pour les imprimantes).Maintenant, si vous construisez une structure DEVMODE vous-même, les chances sont, vous êtes en train de construire quelque chose de Windows ne l'aime pas. Cela va aussi pour beaucoup d'autres structures de ce type, par exemple les paramètres de port série sont tout aussi pointilleux.
Voici ce que je suggère et à faire dans mon propre code: tout d'Abord de récupérer à partir de Windows une structure de travail, puis de les modifier et de les retransmettre. Dans le cas où il y a une fonction d'énumération, premier regard, de Windows en sait déjà un mode qui se rapproche de ce que vous voulez. Dans le cas de Paramètres d'Affichage vous doit utilisez l'un des modes énumérés que tout mode différent sera rejetée par les versions ultérieures de Windows afin de ne pas laisser l'utilisateur avec un écran vide, si le moniteur ne parviennent pas à synchroniser avec les nouveaux paramètres.
À énumérer utiliser la fonction EnumDisplaySettings. Ensuite, regardez pour un paramètre qui est le plus proche de vos besoins; ou mieux, montrer à l'utilisateur la liste des modes disponibles et de lui laisser choisi à partir de là. Ensuite, utilisez la structure remis par Windows pour régler le mode d'affichage par
ChangeDisplaySettings