What errorcode does ChangeDisplaySettings return? It would help us alot to know. But to make a guess, it can be that you are trying to change to a displaymode your card can’t handle.
the return code i get is DISP_CHANGE_BADMODE but its supported because i took the code from nehe and copy pasted… it was working before… and den suddenly it stopped working… so i tried nehe’s exe and it worked…
If it was 16-bit before and 32-bit now, it could cause a problem because some graphics cards can’t change colour depth without restarting the computer.
i changed the color depth to match the one i am requesting and this time ChangeDisplaySettings returned DISP_CHANGE_NOTUPDATED ( “Windows NT/2000: Unable to write settings to the registry” ). but nehe’s code works fine… could this be happening because i am using a class to encapsulate the opengl code?
Using a class should have no bearing at all on ChangeDisplaySettings. The API functions have no knowledge at all of whether they are called inside a class method, or inside a global function.
When is this function called? If you are doing it in the constructor and not setting your member variables first, it is very likely you are trying to request a video mode with garbage.
(i.e. until initialized m_nxWidth, m_nyHeight, and m_nBitsPerPixel will contain garbage, so the chance of you having that video mode is pretty slim.)
Originally posted by Deiussum: … (i.e. until initialized m_nxWidth, m_nyHeight, and m_nBitsPerPixel will contain garbage, so the chance of you having that video mode is pretty slim.)
THX A LOT. I finaly found the problem. Since you told me that those variables will have garbage untill they are initialized; I checked what was i initializing them to. So I had this class CGL whcih was derived from CWindow and CWindow by default uses 300 x 300 so i was requesting a fullscreen with a screen resolution of 300 x 300. So just had to set a size to at least to 640 x 480. And now it works fine… thx a lot guys