PDA

View Full Version : Problema texture Opengl


feed_
07-10-2013, 20:40
ciao a tutti,
grazie in anticipo delle risposte.
Questa è la mia funzione:

void old2()
{
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, prova.getID());
//printf("caricata texture(%d):",prova.getID());
glBegin(GL_QUADS);
//alto-sx
glTexCoord2i(0, 0);
glVertex3f(-0.5, -0.5, 0.0);
//alto-dx
glTexCoord2i(1, 0);
glVertex3f(0.5, -0.5, 0.0);
//basso-dx
glTexCoord2i(1, 1);
glVertex3f(0.5, 0.5, 0.0);
//basso-sx
glTexCoord2i(0, 1);
glVertex3f(-0.5, 0.5, 0.0);
glEnd();
glDisable(GL_TEXTURE_2D);
}

In pratica questa funziona mi disegna solo un quadrato bianco su uno sfondo nero mentre la texture che ho caricato dovrebbe essere rossa!
(la carica come texture 1, larghezza 100px, altezza 100px, mode GL_RGB)

Questa è la funzione per caricare le texture. Dai Log questa funziona:

glEnable(GL_TEXTURE_2D);
SDL_Surface* Surface = IMG_Load(path.c_str());

glGenTextures(1, &mID);
glBindTexture(GL_TEXTURE_2D, mID);

int Mode = GL_RGB;

if (Surface->format->BytesPerPixel == 4) {
Mode = GL_RGBA;
}

glTexImage2D(GL_TEXTURE_2D, 0, Mode, Surface->w, Surface->h, 0, Mode, GL_UNSIGNED_BYTE, Surface->pixels);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

printf("Texture(%d), W(%d), H(%d), Mode(%0x).\n", mID, Surface->w, Surface->h, Mode);
glDisable(GL_TEXTURE_2D);

if (Surface == NULL) return false;
else return true;