Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3441 connectés 

 


Dernière réponse
Sujet : [openGL] bug initialisation de l'affichage
oliv5 voila, j'ai un petit/gros pb. Je fais un jeu qui utilise l'openGL pour l'affichage. Tout roule impec sauf un truc. Visual C++ me dit ceci, lorsque je lance le jeu en mode debug :
 "First-chance exception in glPong.exe (GDI32.DLL): 0xC0000005: Access Violation."    (ca apparait 3 fois).
En fait, c'est avant même que le jeu soit lancé, à l'initialisation de l'affichage openGL. La fonction qui chie est la suivante :
 
void EnableOpenGL(HWND hWnd,HDC * hDC,HGLRC *hRC)
{
 PIXELFORMATDESCRIPTOR pfd;
 int iFormat;
 
 *hDC=GetDC(hWnd);
 ZeroMemory(&pfd,sizeof(pfd));
 pfd.nSize = sizeof(pfd);
 pfd.nVersion = 1;
 pfd.dwFlags = PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER;
 pfd.iPixelType = PFD_TYPE_RGBA;
 pfd.cColorBits = 24;
 pfd.cDepthBits = 16;
 pfd.iLayerType = PFD_MAIN_PLANE;
 iFormat = ChoosePixelFormat(*hDC,&pfd);
 SetPixelFormat(*hDC,iFormat,&pfd);
 *hRC = wglCreateContext(*hDC);
 wglMakeCurrent(*hDC,*hRC);
}
 
C'est le SetPixelFormat. J'ai essayé pas mal de trucs, que j'ai lu dans un bouquin ou vu dans des exemples, mais ca revient toujours à ça.
Heureusement, ce bug méga-chiant ne fait pas planter le jeu (sous Win98), et il marche sans pb. Seulement, des fois (ca arrive de temps en temps), lorsque le jeu tourne, cette erreur se produit à chaque frame......
 
Sous NT4, en revanche ca fait tout planter.
 
une idée ?

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
oliv5 voila, j'ai un petit/gros pb. Je fais un jeu qui utilise l'openGL pour l'affichage. Tout roule impec sauf un truc. Visual C++ me dit ceci, lorsque je lance le jeu en mode debug :
 "First-chance exception in glPong.exe (GDI32.DLL): 0xC0000005: Access Violation."    (ca apparait 3 fois).
En fait, c'est avant même que le jeu soit lancé, à l'initialisation de l'affichage openGL. La fonction qui chie est la suivante :
 
void EnableOpenGL(HWND hWnd,HDC * hDC,HGLRC *hRC)
{
 PIXELFORMATDESCRIPTOR pfd;
 int iFormat;
 
 *hDC=GetDC(hWnd);
 ZeroMemory(&pfd,sizeof(pfd));
 pfd.nSize = sizeof(pfd);
 pfd.nVersion = 1;
 pfd.dwFlags = PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER;
 pfd.iPixelType = PFD_TYPE_RGBA;
 pfd.cColorBits = 24;
 pfd.cDepthBits = 16;
 pfd.iLayerType = PFD_MAIN_PLANE;
 iFormat = ChoosePixelFormat(*hDC,&pfd);
 SetPixelFormat(*hDC,iFormat,&pfd);
 *hRC = wglCreateContext(*hDC);
 wglMakeCurrent(*hDC,*hRC);
}
 
C'est le SetPixelFormat. J'ai essayé pas mal de trucs, que j'ai lu dans un bouquin ou vu dans des exemples, mais ca revient toujours à ça.
Heureusement, ce bug méga-chiant ne fait pas planter le jeu (sous Win98), et il marche sans pb. Seulement, des fois (ca arrive de temps en temps), lorsque le jeu tourne, cette erreur se produit à chaque frame......
 
Sous NT4, en revanche ca fait tout planter.
 
une idée ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)