[openGL] bug initialisation de l'affichage

bug initialisation de l'affichage [openGL] - Programmation

Marsh Posté le 08-05-2001 à 15:06:42    

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 ?

Reply

Marsh Posté le 08-05-2001 à 15:06:42   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed