Bonjour,
j'ai besoin, dans mon programme, de récupérer les données d'une texture, d'effectuer un travail dessus, puis de créer une nouvelle texture avec les données modifiées.
Je fais actuellement une nouvelle version du programme...mais la texture finale est corrompue... Sachant que mon code de "traitement" des données de la texture source fonctionne (puisque je l'ai déjà utilisé dans une précédente version), je ne savais plus où chercher....et là pour tester, j'ai essayé de:
1 - Recuperer les donnees de la texture source
2 - Recreer la seconde texture directement avec les données non modifiées
Et là, à mon grand étonnement, c'est corrompu aussi.
Voilà le code pour le test décrit ci-dessus:
Je ne sais plus trop où chercher... je pensais que ca avait peut être à voir avec glPixelStorei(GL_PACK / UNPACK_ALIGNEMENT) mais mes tests n'ont rien donné...
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 short width = m_texture1->Width; short height = m_texture1->Height; GLubyte* sourceBuffer = new GLubyte[width*height*4*sizeof(GLubyte)]; // Get source buffer glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, m_texture1->TextureID ); glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, sourceBuffer); // create new texture m_texture2->Width = width; m_texture2->Height = height; glGenTextures(1, &m_texture2->TextureID); glBindTexture(GL_TEXTURE_2D, m_texture2->TextureID ); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST ); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, sourceBuffer);
Vos idées sont les bienvenues, merci d'avance!
Partager