Не удалось найти точку входа в DLL "opengl32.dll" в заставке

У меня очень странная проблема с моей заставкой C# OpenTK. Когда я компилирую программу и запускаю ее перед изменением расширения, как EXE-файл, он работает правильно. Но когда я меняю расширение на SCR и запускаю его, оно вылетает с исключением System.EntryPointNotFound (функция glCreateProgram в этом случае). В отладчике я проверил это при запуске:

в виде EXE-файла: GL.GetString(StringName.Vendor) -> "Intel" GL.GetString(StringName.Version) -> "2.1.0 - Build 8.15.10.2622"

в виде файла SCR: GL.GetString(StringName.Vendor) -> "Microsoft" GL.GetString(StringName.Version) -> "1.1.0"

В моем приложении я использую конструктор без параметров класса GameWindow для создания контекста OpenGL. Для небольшого эксперимента я изменил расширение на BAT, и оно работает отлично. Я понятия не имею, почему мой контекст OpenGL зависит от расширения файла, я предполагаю, что заставки выполняются системой на каком-то оверлее, но на самом деле я не смог найти решение этой проблемы.

Есть идеи?

1 ответ

Решение

Наконец, после долгих поисков я обнаружил, что Intel блокирует аппаратную поддержку заставок с помощью OpenGL. Я изменил расширение на "sCr", чтобы обмануть драйвер, и теперь все работает нормально.

Ссылка: opengl.org forum

Другие вопросы по тегам