Tengo Ubuntu ejecutándose en VirtualBox. Las adiciones de invitados están instaladas y ahora el sistema operativo es capaz de acelerar el hardware. Tengo la biblioteca OpenGL en su lugar.
Ahora quiero ejecutar aplicaciones usando egl + opengles1.1 y 2.0. ¿Cómo los consigo en Ubuntu?
¿Hay alguna biblioteca de código abierto disponible?
Las bibliotecas deben usar las capacidades de aceleración de hardware proporcionadas por VirtualBox.
graphics
virtualbox
libraries
opengl
vboxuser
fuente
fuente
Respuestas:
GLFW, Mesa, Ubuntu 16.04 AMD64
No lo he probado dentro de Virtual Box, pero esto debería funcionar independientemente de que Mesa tiene una implementación de software.
Salida:
Fuente:
Las líneas de código clave son:
GLFW_INCLUDE_ES2
está documentado en: http://www.glfw.org/docs/latest/build_guide.html#build_macros y un vistazo rápido a la fuente muestra que se reenvía a GLES:Esta fuente parece estar en el subconjunto común de GLES y OpenGL (como gran parte de GLES), y también se compila con
-lGL
si eliminamos el#define GLFW_INCLUDE_ES2
.Si agregamos cosas que no están en GLES, como la representación inmediata
glBegin
, el enlace falla como se esperaba.Ver también: /programming/3809236/how-to-develop-opengl-es-gles-2-0-applications-on-linux/39356268#39356268
Créditos: genpfult hizo el código mucho más correcto.
BRAZO Mali OpenGL ES SDK
Contiene varios ejemplos interesantes de código abierto + sistema de ventanas (X11 + EGL).
El sistema de compilación admite una compilación cruzada fácil para SoC ARM / Mali, pero aún no lo he probado.
El componente clave incluido parece ser el "OpenGL ES Emulator" http://malideveloper.arm.com/resources/tools/opengl-es-emulator/ que "asigna las llamadas de la API de OpenGL ES 3.2 a la API de OpenGL". Pero eso no se envía con la fuente, solo precompilado.
Utiliza un EULA empresarial personalizado que parece ser permisivo, pero sí, pregúntele a su abogado.
Probado en SDK v2.4.4.
fuente
Como se hizo la pregunta, apareció un paquete que podría ayudar:
fuente
Puede buscar paquetes y contenidos de paquetes con
apt-cache
:El resultado dice que OpenGLES probablemente está en el paquete mesa-utils-extra . Mesa 3D tiene una página de proyecto para OpenGLES y escribe allí:
EGL también está integrado en Mesa:
Entonces necesita instalar
mesa-utils-extra
y probablemente tambiénlibegl1-mesa
.fuente
Pruebe el emulador ARM OpenGL ES 2.0 , yo mismo no he logrado hacer que OpenGL ES 2.0 funcione, pero 1.1 parece funcionar bien (demostración simple de App). Según tengo entendido, se supone que es acelerado por hardware ya que el emulador usa
GL
bibliotecas de plataforma y mesa3d es (aunque no estoy seguro) acelerado.También hay
libgles2-mesa
, pero desafortunadamente no pude hacerlo funcionar. Las muestras de es2gears / es2tri se bloquean, así como la aplicación simple vinculada a las librerías de mesa.fuente