Как определить аппаратное ускорение для OpenGL в Windows

Существует ли вызов Win32 API, определяющий текущий уровень аппаратного ускорения пользовательской системы? Мне не нужно менять этот параметр, но я хотел бы уменьшить уровень детализации моего дисплея OpenGL, если аппаратное ускорение отключено.


person JRS    schedule 13.07.2009    source источник


Ответы (2)


Из часто задаваемых вопросов: Как узнать, что моя программа использует аппаратное ускорение на Wintel карта?

Если вы используете интерфейс Win32 (в отличие от GLUT), вызовите DescribePixelFormat() и проверьте возвращенное битовое поле dwFlags. Если PFD_GENERIC_ACCELERATED сброшен, а PFD_GENERIC_FORMAT установлен, то формат пикселей поддерживается только общей реализацией. Аппаратное ускорение для этого формата невозможно. Для аппаратного ускорения нужно выбрать другой формат.

person Justicle    schedule 14.07.2009
comment
Часто задаваемые вопросы 5.030 и 5.040 были очень полезны. - person JRS; 14.07.2009

Или вы можете запросить возможности устройства с помощью Direct3D, если у вас Windows. "стандартный" GDI Win32 GetDeviceCaps( ) call не работает с 3D...

person Dave Markle    schedule 14.07.2009