У меня Ubuntu работает на VirtualBox. Добавлены гостевые дополнения, и теперь ОС поддерживает аппаратное ускорение. У меня есть библиотека OpenGL на месте.
Теперь я хочу запускать приложения, используя egl + opengles1.1 & 2.0. Как я могу получить их на Ubuntu?
Есть ли доступные библиотеки с открытым исходным кодом?
Библиотеки должны использовать предоставляемые VirtualBox возможности аппаратного ускорения.
graphics
virtualbox
libraries
opengl
vboxuser
источник
источник
Ответы:
GLFW, Mesa, Ubuntu 16.04 AMD64
Я не пробовал это внутри Virtual Box, но это должно работать независимо от того, как Mesa имеет программную реализацию.
Выход:
Источник:
Ключевые строки кода:
GLFW_INCLUDE_ES2
задокументировано по адресу: http://www.glfw.org/docs/latest/build_guide.html#build_macros, и быстрый просмотр источника показывает, что он перенаправляется в GLES:Этот источник, кажется, находится в общем подмножестве GLES и OpenGL (как и большая часть GLES), и также компилируется,
-lGL
если мы удалим#define GLFW_INCLUDE_ES2
.Если мы добавим вещи, которых нет в GLES, такие как немедленный рендеринг
glBegin
, связь завершится неудачно, как ожидалось.Смотрите также: /programming/3809236/how-to-develop-opengl-es-gles-2-0-applications-on-linux/39356268#39356268
Кредиты: genpfult сделал код намного более правильным.
ARM Mali OpenGL ES SDK
Содержит несколько интересных примеров с открытым исходным кодом + шаблон оконной системы (X11 + EGL).
Система сборки поддерживает простую кросс-компиляцию для ARM / Mali SoC, но я еще не проверял это.
Ключевым компонентом, по-видимому, является «Эмулятор OpenGL ES» http://malideveloper.arm.com/resources/tools/opengl-es-emulator/, который «отображает вызовы API OpenGL ES 3.2 в API OpenGL». Но это не поставляется с источником, только предварительно скомпилированным.
Использует пользовательское лицензионное соглашение, которое кажется разрешающим, но да, спросите своего адвоката.
Протестировано на SDK v2.4.4.
источник
Поскольку вопрос был задан, появился пакет, который может помочь:
источник
Вы можете искать пакеты и их содержимое с помощью
apt-cache
:Выходные данные говорят, что OpenGLES, вероятно, находится в пакете mesa-utils-extra . Mesa 3D имеет страницу проекта для OpenGLES и пишет там:
EGL также встроен в Mesa:
Так что вам нужно установить
mesa-utils-extra
и, вероятно, такжеlibegl1-mesa
.источник
Попробуйте ARM OpenGL ES 2.0 Emulator , мне самому не удалось заставить OpenGL ES 2.0 работать, но, похоже, 1.1 работает нормально (simpleApp demo). Как я понимаю, он должен быть аппаратно ускорен, так как эмулятор использует
GL
библиотеки платформ, а mesa3d (хотя и не уверен) ускорен.Там также
libgles2-mesa
- но, к сожалению, я не мог заставить это работать. Сбои образцов es2gears / es2tri, а также simpleApp, связанных с мезалибами.источник