Bonjour

J'utilise SDL, OpenGL, Windows 2000 mon écran est en 1024x768, vraies couleur, affichage 75 Hz.

J'ai une démo qui tourne, et bizarrement, quand je passe en FULLSCREEN, l'application est plus lente.

En fenêtré 1024x768, elle tourne à 75 Hz et en 1024x768 ou 800x600 plein écran elle tourne à 50 Hz, voire moins...

Vous auriez une idée d'où ça vient ?

Voici mon code d'initialisation...

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
int main(int argc, char *argv[]) {
  const SDL_VideoInfo* pSDL_videoInfo = NULL;
 
  // initialisation de SDL
  if (SDL_Init(SDL_INIT_VIDEO) < 0) {
    printf("Video initialization failed: %s\n", SDL_GetError());
    quit(1);
  }
  pSDL_videoInfo = SDL_GetVideoInfo();
  if (!pSDL_videoInfo) {
    printf("Video query failed: %s\n", SDL_GetError());
    quit(1);
  }
 
  SDL_WM_SetCaption("Titre", NULL);
 
  // propriétés de la fenêtre (RGB, profondeur et double buffer)
  int ncLargeur = 1024;//800 // 1024;
  int ncHauteur = 768;//600 // 768;
  int bpp = 0;
  bpp = pSDL_videoInfo->vfmt->BitsPerPixel;
  SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
  SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 5);
  SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
  SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
  SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
 
  int flags = SDL_OPENGL;/* |*/;
  //flags |= SDL_FULLSCREEN;
  flags |= SDL_GL_DOUBLEBUFFER ;
  //flags |= SDL_HWSURFACE;
  //flags |= SDL_HWPALETTE;
  //flags |= SDL_HWACCEL;
  //flags |= SDL_RESIZABLE;
 
  pSDL_surface_principale = SDL_SetVideoMode(ncLargeur, ncHauteur, bpp, flags);
  if (pSDL_surface_principale == NULL ) {
    printf("Erreur de selection du mode video : %s\n", SDL_GetError());
    quit(1);
  }
 
  fnInitialiserAffichage(ncLargeur, ncHauteur);
  // Boucle d'affichage
  while(1) {        
    fnGestionDesEvenements();
    fnAfficher();
  }
  return 0;