LINUX.ORG.RU

Qt 4.*, заставить работать через OpenGL ES.


0

1

Есть стандартный пример hellogl_es2 в составе Qt. У меня в системе OpenGL 4.3 через блоб nVidia и OpenGL ES 2.0 и 3.0 через llvmpipe.

ldd ./hellogl_es2
libGL.so.1 => /usr/lib/nvidia-310/libGL.so.1 (0x00007faba88ab000)
ldd $(which es2gears)
libGLESv2.so.2 => /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2 (0x00007f10a00c9000)
libEGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1 (0x00007f109f868000)

причем es2gears запускается через софтовый рендеринг - ну хорошо.

Как видно, чтобы программа работала с OpenGL ES, она должна линковаться именно с libGLESv2.

Вопрос - как указать Qt чтобы программа работала через GLES? Требуется ли для этого пересборка Qt? На ПК для разработки я смогу скомпилировать с ES -opengl <api> Available values for <api>: es2 - Enable support for OpenGL ES 2.0

Я вам не скажу за всю Одессу... (в смысле, я не авторитетен в данном вопросе, и влезу в разговор, раз все молчат), но утверждение

Как видно, чтобы программа работала с OpenGL ES, она должна линковаться именно с libGLESv2.

ложно.

GLES - это подмножество GLX (+ сахарок). Программа, связанная с libGL при запуске создает контекст GLES и работает в нем не обращая внимания, что система предоставляет полный GLX.

Так что hellogl_es2 использует GLES, хоть и связано с GLX. Что бы сделать как es2gears, надо, очевидно, собирать программу с -lGLESv2. Делает ли это «configure -opengl es2»? Не знаю, но похоже на то, попробуй.

fopen ★★
()
Ответ на: комментарий от fopen

Да, всё верно. Добился таки чтобы присутствовала GLX и всё заработало через libGL. Благодарю за ликбез :)

I-Love-Microsoft ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.