Delphi opengl : Probleme d'initialisation texture
Bonjour,
Je suis relativement nouveau sur opengl, et je viens tout juste de commencer à toucher les textures, alors je pense que ma question est peut-être bête.. En tout cas, je n'ai pas trouvé précisément ce que je cherchais sur les forums.
En fait, je cherche à initialiser une texture qui contiendra l'ensemble de l'écran, et j'aimerais que ce soit possible sans que ses dimensions soient de la forme 2^n, vu que sa taille dépendra de la résolution de l'écran.
Bizarrement, le code ne plante pas pour une TailleX de 121 et une TailleY de 91 : ces dimensions correspondent à une résolution de 4/3.
Pour le 16/9 par contre, j'ai un TailleX de 161 et un TailleY toujours à 91 (je le garde fixe), et là, le code plante.
Voilà le code : ( il plante à la ligne glTexImage2D )
T est ma texture, un record d'un identifiant et d'un tableau de données.
Code:
1 2 3 4 5 6 7 8 9
|
glGenTextures(1, @T.Index);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, T.Index);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TailleX, TailleY, 0, GL_RGBA, GL_UNSIGNED_BYTE, @T.Donnees);
glDisable(GL_TEXTURE_2D); |
Je peux comprendre que ça plante si la texture est sensée avoir des dimensions en 2^n, mais pourquoi pas dans tous les cas alors ?
Donc si quelqu'un peut me guider sur la marche à suivre, et pourquoi le code ne plante pas dans les deux cas, je lui serait très reconnaissant, merci d'avance en tout cas :)