Hello.
I use multitexturing as described in tutorials:
At first, I declare function’s pointers as globals:
PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2f;
Then, I initialize them:
glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC)wglGetProcAddress ("glActiveTextureARB");
glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FARBPROC) wglGetProcAddress("glMultiTexCoord2fARB");
Loading texture as GL_TEXTURE0_ARB
glGenTextures(1, &unTexture[0]);
glBindTexture(GL_TEXTURE_2D, unTexture[0]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, imageWidth, imageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, ilGetData());
glActiveTextureARB(GL_TEXTURE0_ARB);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, unTexture[0]);
And mapping texture to polygon:
glActiveTextureARB(GL_TEXTURE0_ARB);
glBindTexture(GL_TEXTURE_2D, unTexture[0]);
glEnable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
glMultiTexCoord2f(GL_TEXTURE0_ARB, 1, 1);
glTexCoord2f(1, 1);
glVertex3d(1, 1, 1);
glMultiTexCoord2f(GL_TEXTURE0_ARB, 1, 0);
glTexCoord2f(1, 0);
glVertex3d(1, 0, 1);
glMultiTexCoord2f(GL_TEXTURE0_ARB, 0, 0);
glTexCoord2f(0, 0);
glVertex3d(-1, 0, 1);
glMultiTexCoord2f(GL_TEXTURE0_ARB, 0, 1);
glTexCoord2f(0, 1);
glVertex3d(-1, 1, 1);
glEnd();
glDisable(GL_TEXTURE_2D);
I checked up returned by wglGetProcAddress() - they are not NULL.
But texture mapping does not works at all. But if replace "unTexture[0] by “0” (which is the default texture) it works, but, of course, only for one texture. It looks like my video card does not support multitexturing (but it does).
Tell me, please, what can be wrong?