SerafimArts
@SerafimArts
Senior Notepad Reader

Как подружить libGLESv2 с GLFW или SDL2?

Использую GLFW и SDL2 (пробовал два варианта, думал косяк в них) для отрисовки окошечек и пытаюсь затащить libGLESv2 для работы с gl* функциями (шейдеры и прочая мишура). Все либы подрубаю в виде библиотек.

Сам код Angle следующий:
glClearColor(0.0, 1.0, 0.0, 1.0); // green 1
glClear(0x00000100 | 0x00004000); // GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT


И здесь кроется сама проблема:
1) Если использовать opengl32.dll, который в system32, то всё ок. Код рабочий, получаю зелёный экран:
lnqi7qyp8rbaoggomdzqm-4jmby.png

2) Если же использовать libGLESv2 (который гугловый angle), то не работает, получаю чёрный экран на примитивном коде:
a3ybmcjsccbxxi9mvn4mbqtdz2w.png

Что пробовал делать:
1) Пробовал кидать libGLESv2 в system32 (вдруг прав не хватает?).
2) Пробовал полностью (успешно) перекомпилировать libGLESv2 из исходников.
3) Пробовал выдирать его из других программ (в т.ч. из Google Chrome) - тоже самое. Не в сборке проблема.
4) С отладчиком студии, который позволяет подрубиться к готовому процессу - не подружился. Перехват (точка останова) на вызовах функций glClearColor - не помогает.

P.S. Хочется любой враппер OpenGL (c cdecl вызовами), позволяющий собирать шейдеры. Увы, нативный opengl такого не позволяет, а GLEW тупо не работает через FFI. Так что остановился на libGLESv2, т.к. альтернатив больше не нашёл.
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ответы на вопрос 1
SerafimArts
@SerafimArts Автор вопроса
Senior Notepad Reader
Вопрос решён, результат:
_p5gzal9hsu3cujnndggguh2zfe.gif

Короче, нужно было юзать нативный opengl, а функции, которых не хватает загружать через wglGetProcAddress, таким образом функция (например) компиляции шейдеров выглядит следующим образом:

$gl = ....;

$glCreateShader = $gl->cast('GLuint (*)(GLenum shaderType​)', $gl->wglGetProcAddress('glCreateShader'));

$glCreateShader(....);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы