I just upgraded from my BCG GeForce FX5200 (128 MB) to a MSI GeForce FX5600 256MB card. Now, glGetString(GL_RENDERER) returns “GDI Generic” instead of “GeForce” and glGetString(GL_VENDOR) returns “Microsoft Corporation”. All my Nvidia extensions go for a toss. I have 44.03 Nvidia drivers.
What are you requesting for a PIXELFORMATDESCRIPTOR? For instance, are you trying to get an accumulation buffer? I don’t think there is any commercial level hardware that supports an accumulation buffer in hardware, yet. Try enumerating through the PIXELFORMATDESCRIPTORS instead of just letting ChoosePixelFormat find one for you. (Use DescribePixelFormat with 1, 2, 3, etc. until it returns an error saying the pixel format wasn’t found.)
Originally posted by Deiussum: (Use DescribePixelFormat with 1, 2, 3, etc. until it returns an error saying the pixel format wasn’t found.)
ChoosePixelFormat, DescribePixelFormat, SetPixelFormat, wglCreateContext do not generate any errors. But when I get the extension proc-addresses, they’re all NULL. When I query glGetString(GL_VENDOR), I get “Microsoft”
Originally posted by clunis_immensus:
[b] ChoosePixelFormat, DescribePixelFormat, SetPixelFormat, wglCreateContext do not generate any errors. But when I get the extension proc-addresses, they’re all NULL. When I query glGetString(GL_VENDOR), I get “Microsoft”
Maniam[/b]
Maybe I didn’t make myself clear before. I didn’t say that those might be generating errors, I said that you might be getting a non-accellerated pixelformat. What are you requesting? For instance if you are trying to get an accumulation buffer, I believe you will always get dropped back to the default Microsoft implementation.
An alternative way to using ChoosePixelFormat is to do something like so:
int i = 1;
while(DescribePixelFormatDescriptor(hDC, i++, sizeof(PIXELFORMATDESCRIPTOR), &pfd)
{
if (pfd properties are what you want and are accellerated)
{
SetPixelFormat(hDC, i-1, &pfd);
break;
}
}