问题
Is there a Win32 API call that detects the current Hardware Acceleration level of a user's system? I have no need to change the setting, but I'd like to scale back the level of detail for my OpenGL display if hardware acceleration is disabled.
回答1:
From the FAQ: How do I know my program is using hardware acceleration on a Wintel card?
If you are using the Win32 interface (as opposed to GLUT), call DescribePixelFormat() and check the returned dwFlags bitfield. If PFD_GENERIC_ACCELERATED is clear and PFD_GENERIC_FORMAT is set, then the pixel format is only supported by the generic implementation. Hardware acceleration is not possible for this format. For hardware acceleration, you need to choose a different format.
回答2:
Or you can interrogate the device's capability with Direct3D, if you're on Windows. The "standard" GDI Win32 GetDeviceCaps() call doesn't deal with 3D...
来源:https://stackoverflow.com/questions/1122730/how-to-detect-hardware-acceleration-for-opengl-on-windows