Eu tenho o Ubuntu rodando no VirtualBox. Adições de convidados estão instaladas e agora o sistema operacional é capaz de acelerar o hardware. Eu tenho a biblioteca OpenGL no lugar.
Agora eu quero executar aplicativos usando o egl + opengles1.1 e 2.0. Como faço para obtê-los no Ubuntu?
Existem bibliotecas de código aberto disponíveis?
As bibliotecas devem usar os recursos de aceleração de hardware fornecidos pelo VirtualBox.
graphics
virtualbox
libraries
opengl
vboxuser
fonte
fonte
Respostas:
GLFW, Mesa, Ubuntu 16.04 AMD64
Eu não tentei dentro do Virtual Box, mas isso deve funcionar independentemente, pois o Mesa possui uma implementação de software.
Resultado:
Fonte:
As principais linhas de código são:
GLFW_INCLUDE_ES2
está documentado em: http://www.glfw.org/docs/latest/build_guide.html#build_macros e uma rápida olhada na fonte mostra que ela encaminha para o GLES:Essa fonte parece estar no subconjunto comum do GLES e OpenGL (como grande parte do GLES) e também compila
-lGL
se removermos o arquivo#define GLFW_INCLUDE_ES2
.Se adicionarmos coisas que não estão no GLES como renderização imediata
glBegin
, o link falhará conforme o esperado.Consulte também: /programming/3809236/how-to-develop-opengl-es-gles-2-0-applications-on-linux/39356268#39356268
Créditos: genpfult tornou o código muito mais correto.
ARM Mali OpenGL ES SDK
Contém vários exemplos interessantes de código aberto + clichê do sistema de janelas (X11 + EGL).
O sistema de compilação suporta fácil compilação cruzada para SoCs ARM / Mali, mas ainda não testei isso.
O principal componente incluído parece ser o "OpenGL ES Emulator" http://malideveloper.arm.com/resources/tools/opengl-es-emulator/, que "mapeia as chamadas da API do OpenGL ES 3.2 para a API do OpenGL". Mas isso não é fornecido com a fonte, apenas pré-compilado.
Usa um EULA corporativo personalizado que parece permissivo, mas sim, pergunte ao seu advogado.
Testado no SDK v2.4.4.
fonte
Desde que a pergunta foi feita, um pacote apareceu e poderia ajudar:
fonte
Você pode procurar por pacotes e seu conteúdo com
apt-cache
:A saída diz que o OpenGLES provavelmente está no pacote mesa-utils-extra . O Mesa 3D tem uma página de projeto para o OpenGLES e escreve lá:
O EGL também está embutido no Mesa:
Então você precisa instalar
mesa-utils-extra
e provavelmente tambémlibegl1-mesa
.fonte
Tente o ARM OpenGL ES 2.0 Emulator , eu mesmo não consegui fazer o OpenGL ES 2.0 funcionar, mas o 1.1 parece funcionar bem (demo do simpleApp). Pelo que entendi, ele deveria ser acelerado por hardware, pois o emulador usa a plataforma
GL
bibliotecas de e o mesa3d é (não tenho certeza).Há também
libgles2-mesa
- mas infelizmente eu não consegui fazê-lo funcionar. As amostras es2gears / es2tri falham, bem como o simpleApp vinculado a bibliotecas de mesa.fonte