Я знаю, что, если openGl реализация не находит подходящий драйвер, она счастливо отступает, и представьте все в программном режиме. Это хорошо для графических приложений, но это не приемлемо для компьютерных игр.
Я знаю многих пользователей, использующих Windows XP и если пользователь не установит драйвер видеокарты для своего GPU затем, то OpenGL не будет аппаратно ускорен (в то время как DirectX или если не он бросит ошибки).
Существует ли лучшее (и возможно кросс-платформенное) способ определить, использует ли OpenGL аппаратное ускорение, чем измерение кадр/с и если это слишком низко, уведомляют пользователя?
Я знаю, что игры как Quake3 могут узнать это так или иначе...
Похоже, что нет прямого способа запросить OpenGL для этого, но есть некоторые методы, которые могут помочь вам определить, присутствует ли аппаратное ускорение. Смотрите здесь идеи для Windows. В среде UNIX glxinfo | grep "direct rendering"
должно сработать.
См. Также glGetString и 5.040 Как узнать, что моя программа использует аппаратное ускорение на карте Wintel?
Этот предыдущий ответ предполагает, что достаточно проверить, есть ли у пользователя только OpenGL 1.1.