hola les cuento tengo el siguiente problema al tratar de usar la multitextura, logro renderizar una vez solamente un poligono con multitextura, al segundo renderizado me renderiza el poligono en blanco
ahi esta el codigo
aparece una funcion GenTexture
por el uso que le doy es casi obvio lo que hace
si alguien sabe cual es el problema que me diga por favor
typedef void (*GL_MultiTexCoord2fARB)(unsigned int,float,float);
typedef void (*GL_ActiveTextureARB)(unsigned int);
GL_MultiTexCoord2fARB glMultiTexCoord2fARB;
GL_ActiveTextureARB glActiveTextureARB;
int main(int argc,char *argv[])
{
GLuint texture[2];
SDL_Surface *screen;
SDL_Init(SDL_INIT_VIDEO);
screen=SDL_SetVideoMode(640,480,0,SDL_SWSURFACE|SDL_OPENGL);
glActiveTextureARB=(GL_ActiveTextureARB)SDL_GL_GetProcAddress("glActiveTextureARB");
glMultiTexCoord2fARB=(GL_MultiTexCoord2fARB)SDL_GL_GetProcAddress("glMultiTexCoord2fARB");
glEnable( GL_TEXTURE_2D );
glShadeModel( GL_SMOOTH );
glClearColor( 0.0f, 0.0f, 0.0f, 0.5f );
glClearDepth( 1.0f );
glEnable( GL_DEPTH_TEST );
glDepthFunc( GL_LEQUAL );
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );
glViewport( 0, 0, ( GLsizei )640, ( GLsizei )480 );
glMatrixMode( GL_PROJECTION );
glLoadIdentity( );
gluPerspective( 45.0f, 640/480, 0.1f, 100.0f );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity( );
GenTexture("00.jpg",&texture[0]);
GenTexture("01.jpg",&texture[1]);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity( );
glTranslatef( 0.0f, 0.0f, -5.0f );
glActiveTextureARB(GL_TEXTURE0_ARB);
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D,texture[0]);
glActiveTextureARB(GL_TEXTURE1_ARB);
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D,texture[1]);
glBegin(GL_QUADS);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0f, 0.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0f, 0.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0f, 0.0f);
glVertex3f( 1.0f, -1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0f, 1.0f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glEnd();
SDL_GL_SwapBuffers( );
SDL_Delay(5000);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity( );
glTranslatef( 0.0f, 0.0f, -5.0f );
glActiveTextureARB(GL_TEXTURE0_ARB);
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D,texture[0]);
glActiveTextureARB(GL_TEXTURE1_ARB);
glEnable( GL_TEXTURE_2D );
glBindTexture(GL_TEXTURE_2D,texture[1]);
glBegin(GL_QUADS);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0f, 0.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0f, 0.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0f, 0.0f);
glVertex3f( 1.0f, -1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0f, 1.0f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0f, 1.0f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glEnd();
SDL_GL_SwapBuffers( );
SDL_Delay(5000);
}
y el cacho es de windows, la cosa pa rara, por que hago lo mismo con linux y anda bien