Я хочу изучать современный OpenGL, поэтому я должен использовать версию 3.2 или выше.
Мои драйверы обновлены, и GPU Caps Viewer сообщает, что у меня версия 4.3.0.
Так что все должно быть хорошо.
Но я не могу получить доступ к этим версиям, ни в C ++, ни в Java, используя LWJGL.
призвание
System.out.println(glGetString(GL_VERSION));
выводит «2.1.0 — Build 8.15.10.2900» (то же самое относится и к C ++).
Итак, почему я не могу программировать с GL3.2, даже если мои драйверы используют GL4.3?
И как я могу это исправить?
Хорошо, поскольку это, похоже, проблема, связанная с Optimus, а не ошибка программирования, вам придется настроить Optimus так, чтобы она не использовала встроенную / встроенную ЦП графику для вашей программы. Если бы это было написано на C / C ++, вы могли бы просто добавить это вместе с main
или же WinMain
функционировать и покончить с этим:
extern "C" {
_declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
}
Но это работает в JRE, что не вариант. Я предлагаю вам прочитать эту заметку от NVidia по этому вопросу: http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf