Thanks for the reply … I think that I am on my way now … lots to learn again, as I’ve no idea what half of this does yet ! Some good pointers to some docs would be good.
OK … I’ve found some code that I’ve modified and it works … but … issues of card compatibility are of concern … for example is GL_COMBINE4_NV which obviously originates from NVidia - is it available on most cards - ATI ?
Thanks
// Initialization
// Already tested for extensions …
glGenTextures(1, fTextureName1);
glActiveTextureARB(GL_TEXTURE0_ARB);
LoadBitmapFile(‘LogoMetal.bmp’, fTextureName1, GL_FALSE);
// The ‘true’ flag creates a texture with an alpha channel.
glGenTextures(1, fTextureName2);
glActiveTextureARB(GL_TEXTURE1_ARB);
LoadBitmapFile(‘Tile.bmp’, fTextureName2, GL_TRUE);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE4_NV);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_ADD);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_PREVIOUS_EXT);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_EXT, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_ZERO);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_ONE_MINUS_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_EXT, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB_EXT, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_RGB_EXT, GL_TEXTURE0_ARB);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_RGB_EXT, GL_SRC_ALPHA);
// Draw routine …
glActiveTextureARB(GL_TEXTURE1_ARB);
glEnable(GL_TEXTURE_2D);
glActiveTextureARB(GL_TEXTURE0_ARB);
glBindTexture(GL_TEXTURE_2D, fTextureName2);
glActiveTextureARB(GL_TEXTURE1_ARB);
glBindTexture(GL_TEXTURE_2D, fTextureName1);
glPushAttrib(GL_ENABLE_BIT);
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
glCallList(fGLList);
glPopAttrib;
glActiveTextureARB(GL_TEXTURE1_ARB);
glDisable(GL_TEXTURE_2D)