I have just bought an ATI Radeon 9700 gfx-board and now I have some problems that I didn’t have with 3dfx-Voodoo3 or GForce-2.
First of all I have problems with my skybox textures! there is a noticeable black line along every edge of the sky-cube (note: I have already set GL_CLAMP_TO_EDGE)
and then I use the nehe startup code in order to create a fullscreen window, but now I just can’t get a 24-bit screen! I can only get a 16-bit screen also if I set the pixel depth to 24bit … how can I fix these problems??
You should be setting a 32-bit pixel depth, not 24-bit.
yes! sorry! I wanted to write “32” not “24”…I tried to set pixel deoth to 32 but it doenst work…
Do you check for glGetError() after setting claming mode, binding textured, etc? It’s likely that your clamping mode is not actually set the way you think it is, if you get those black lines.
Regarding getting 32 bit deep buffers, make sure the desktop itself is in 32 bit depth.
about the GL_CLAMP_TO_EDGE you were right! the command just doesn’t work! I tried to “catch” the error with a call to glGetError() after setting glTexParameter(GL_CLAMP_TO_EDGE) and the error is GL_INVALID_ENUM…I don’t know how to fix this problem :-/ I tried also to set it 0x812F but obviusly nothing changed…
about the 16bit display, I still have a 32bit desktop, and all my applications that uses a 32bit colorbuffer with GLUT work properly! so I think it’s a problem of the NeHe startup…anyway I just tried to change the value in the PIXELFORMATDESCRIPTOR, probably it is not enough???
I have to correct some things that I said:
NeHe startup is not bugged! it works perfectly…I have found that the problem is that I am trying to use it in order to make a screensaver!
I use ScreenSaverProc() and I think that this function creates (by default) a 16bit buffer and I don’t know how to change this!
NOTE: there is one tutorial on NeHe that explains how to make a screensaver…this tutorial has the same bug I have just explained: it cannot set a 32bit buffer
I have to correct me once again :-)) NeHe startup was correct! the only thin that was wrong was the OpenGL Texture-Quality settings, that on ATI’s is set by default to “medium” (****ing!!!)
To ensure you get the texture formats you desire, you should always ask for the sized formats (GL_RGBA8) rather than GL_RGBA or 4.
On the clamp to edge error problem. I use that mode extremely regularly along with lots of shipping apps, and I have never seen the problem you describe. You might want to check for errors prior to the call. Also, I would suggest double checking the other parameters in the call. Here is how I typically write the code:
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE_EXT);
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE_EXT);
GL_CLAMP_TO_EDGE was introduced in GL 1.2. Could that have anything to do with it? Maybe the 9700 isn’t capable of supporting GL 1.2
If you use the glext.h at the extension registry , there should be no problem using GL_CLAMP_TO_EDGE rather than GL_CLAMP_TO_EDGE_EXT. . .