J'ai commencé un ptit prog avec opengl et je viens de m'apercevoir que même minimisé il utilise près de 100% du CPU.
L'affichage n'est rafraîchi que par les appels à WM_PAINT qui appelle ma fonction d'affichage Opengl Draw() et pas par une boucle dans mon WinMain.
Draw() n'est appellé que quand j'ai besoin de rafraichir, ca n'arrive pas souvent mais j'ai toujours 100% de charge CPU même quand j'ai quasiment rien à afficher.
s.minimized indique si la fenêtre est minimisée ou non, donc une fois minimisé ca devrait même rien affiché et pourtant g encore 100%

Si qq1 a une idée ca m'aiderais beaucoup ! merci !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
case WM_PAINT:
      if (!s.minimized)
      {
            s.Draw();
            SwapBuffers(hDC);
            ValidateRect(hWnd, NULL);
      }
et pour le main ca donne ca (j'ai simplifié)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
{
MSG msg;					
BOOL done=FALSE;						
HACCEL acceleratorTable;
acceleratorTable = LoadAccelerators(hInstance,
                                        MAKEINTRESOURCE(IDR_ACCELERATOR1));
 
 
s.window.windowResize(s.WIDTH, s.HEIGHT);
s.Draw();
 
while(!done)
{
      if (PeekMessage(&msg,NULL,0U,0U,PM_REMOVE))
      {
             if (msg.message==WM_QUIT) { done=TRUE; }
             else					
             {
                   if (!TranslateAccelerator(hWnd, acceleratorTable, &msg))
		TranslateMessage(&msg);
	   DispatchMessage(&msg);			
             }
      }
      else
      {
             SwapBuffers(hDC);
       }
}
GLKill();
return (msg.wParam);
}