Je debug mon application et je me demande si la texture que j'upload à la carte graphique est bien la bonne. Pour cela j'utilise glGetTexImage() mais je n'obtiens pas de bons résultats. Alors j'ai crée un exemple pour voir si j'avais compris comment on se servait de la fonction.

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
 
  GLubyte texture[16] = {
    0,0,0,0, 0xFF,0xFF,0xFF,0xFF,
    0xFF,0xFF,0xFF,0xFF, 0,0,0,0
  };
 
  GLuint nom;
 
  glGenTextures(1, &nom);  	
  glBindTexture(GL_TEXTURE_2D, nom);
  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 
	       2, 2, 0,
	       GL_RGBA, GL_UNSIGNED_BYTE, texture);
 
  GLubyte texture2[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  glGetTexImage(nom, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture2);
 
  for(int i=0; i<16; i++) {
    cout << (int)texture[i] << " " << (int)texture2[i] << endl;
  }
J'obtiens ce retour :

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
 
0 0
0 0
0 0
0 0
255 0
255 0
255 0
255 0
255 0
255 0
255 0
255 0
0 0
0 0
0 0
0 0
Donc à gauche "texture" et a droite "texture2". Rien n'est inscrit dans "texture2" Ai-je mal compris glGetTexImage()? Il y a t'il une autre fonction pour recup une texture?