[Textures] Problème avec glGetTexImage
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:
Code:
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); |
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é...
Vos idées sont les bienvenues, merci d'avance!