Bonjour à tous,

Je m'amuse un peu en C et j'essaie actuellement de créer un graph en SDL. Tout c'est déroulé comme je le voulais jusqu'à une erreur.

Voici le code :
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
 
if (event.type == SDL_KEYDOWN)
        {
          if (event.key.keysym.sym == SDLK_DOWN)
            *height = *height + 2;
          if (event.key.keysym.sym == SDLK_UP)
            *height = *height - 2;
          if (event.key.keysym.sym == SDLK_RIGHT)
            *width = *width + 2;
          if (event.key.keysym.sym == SDLK_LEFT)
            *width = *width - 2;
        }
 
      SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
      draw_line_vertical(ecran, (*width) / 2, 0, *height, SDL_MapRGB(ecran->format, 255, 255, 255));
      draw_line_horizontal(ecran, 0, (*height) / 2, *width, SDL_MapRGB(ecran->format, 255, 255 , 255));
      SDL_Flip(ecran);
Il y a deux lignes blanches pour le repère. Quand l'utilisateur appuis sur la flèche du haut, la ligne d'abscisse monte, quand il appuie sur la flèche du bas, la ligne d'abscisse descend. Idem pour l'axe des ordonnées qui se déplace à gauche ou a droite quand l'utilisateur joue avec les fleches gauche et droite.

Voici l'erreur qui m'est retournée lorsque je tente de bouger l'axe des ordonnées à gauche ou a droite :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  140 (MIT-SHM)
  Minor opcode of failed request:  3 (X_ShmPutImage)
  Value in failed request:  0x25a
  Serial number of failed request:  81
  Current serial number in output stream:  82
Alors que pour l'axe des abscisses, tout se passe bien.

Merci de votre aide !

EDIT : En fait, le problème survient aussi lors du déplacement de l'axe des abscisse. Je pense que les valeurs dépassent l'écran. Mais ce qui me dérange c'est que, alors que pour l'axe des abscisses fonctionne au départ, l'axe des ordonnées crash au moindre mouvement.

EDIT : problème résolu. Ajout de constante et plus rien ne dépasse de l'écran !