casafa | Bonjour,
Je n'arrive pas à utiliser gluScaleImage correctement...mais d'abord j'ai une bête question : est-ce que gluScaleImage va ajouter des pixels noir ou blanc à mon image ou alors il va éllargir mon image et la déformer ?
Voici mon code source:
Code :
- //glTexture->width and glTexture->height are powers of 2 ?
- unsigned int newWidth = 2, newHeight = 2;
- while(newWidth < glTexture->width)
- newWidth=newWidth<<1; //Multiply by 2
- while(newHeight < glTexture->height)
- newHeight=newHeight<<1; //Multiply by 2
- if(newWidth!=glTexture->width || newHeight!=glTexture->height) //Scale image
- {
- unsigned char *newTexels = new unsigned char[newWidth*newHeight*glTexture->internalFormat];
- gluScaleImage(format, glTexture->width, glTexture->height, GL_UNSIGNED_BYTE, glTexture->texels, newWidth, newHeight, GL_UNSIGNED_BYTE, newTexels);
- glTexImage2D (GL_TEXTURE_2D, 0, glTexture->internalFormat, glTexture->width, glTexture->height, 0, format, GL_UNSIGNED_BYTE, newTexels);
- //openGL has its own copy of texture data
- delete newTexels;
- }else
- {
- glTexImage2D (GL_TEXTURE_2D, 0, glTexture->internalFormat, glTexture->width, glTexture->height, 0, format, GL_UNSIGNED_BYTE, glTexture->texels);
- }
|
1) D'après mes tests la condition est correctement exécuté quand une des 2 dimentions n'est pas une puissance de 2.
2) Quand j'utilise une image avec des dimention de puissance de 2 : tout fonctionne mais quand l'image n'as pas des dimentions de puissance de 2 : mon application Opengl est super lente (4 à 8 fps au lieu de 130 fps)
Merci... |