2009-07-13 1 views
2

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

ответ

4

Из FAQ: How do I know my program is using hardware acceleration on a Wintel card?

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

+0

Вопрос вопросов 5.030 и 5.040 был весьма полезен. – JRS

0

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