3DFX or NVidia bug

GLuint tList[1];
enum Texture_Objects { TEXTURE1 = 0};

{
glBindTexture(GL_TEXTURE_2D, tList[TEXTURE1]);
createtexture();

glBindtexture(GL_TEXTURE_2D, tList[TEXTURE1]);
createtexture2();
}

Operating System is Win2000+SP1 for Nvidia
And Win98 SE for Voodoo2

OK on Nvidia 6.18 and 6.31 drivers this works fine. As you can see the first call is obsolete as the second bind should replace TEXTURE1 with the whatever tex done in createtexture2. Is this right that i should be able to do this?

Now on Voodoo2 drivers #3.02.02 this function fails and TEXTURE1 stays bound to the texture created in createtexture1.

Whats the story here?

I’m unclear as to what exactly the createtexture() and createtexture2() functions do, but I assume that they essentially just call glTexImage2D with some image.

The second BindTexture is really a no-op. If a texture object is already bound, binding it again will have no effect.

The second call should replace the image from the first call with a new image. So, yes, it seems that the final result of this code should be equivalent to that of just the second BindTexture and createtexture2().

  • Matt

Yes thats correct. These functions simply create the texture. Now this works fine on NVidia hardware with w2k/det3 drivers but fails under 3DFX voodoo2 w98/driver#3.02.02 I have not tested with any other voodoo card Using this same function Voodoo2 will keep the original texture data, and seem to ignore the second attempt at binding. Completely the opposite of NVidia. Any ideas on how i can solve this issue?