Как нарисовать что-то с OpenGL ES в Linux?

Я начинаю разрабатывать OpenGL ES на ARM/Linux, и я хотел бы сделать что-то полноэкранное, но не знаю с чего начать.

Я не развивается на iPhone и Android. Это вопрос Linux/OpenGL ES.

Я знаю, что можно использовать фреймбуфер с OpenGL ES без какой-либо библиотеки, но я не нашел никаких ресурсов по этой теме, не могли бы вы мне помочь?


У меня нет кода, чтобы показать, как это сделать, но в основном вы используете устройство framebuffer как цель операций OpenGL | ES.

Ответ 1

Вы разрабатываете встроенную платформу в качестве целевой? Если это так, вы можете использовать программные реализации в своей хост-системе, а затем фактический драйвер на встроенном устройстве.

Существует небольшой проект поддержки OpenGLES 1.1 на linux, называемый dlges. Вы также можете попробовать mesa.

Я предполагаю, что сам драйвер может иметь заголовок для OpenGL, на который вы могли бы посмотреть, и посмотреть, поддерживает ли он вызовы OpenGLES. Кроме того, вы можете настроить указатели на функции, чтобы ваш OpenGL-код выглядел больше как OpenGL ES.

Удачи!

Ответ 2

ARM предлагает несколько графических процессоров, поддерживающих OpenGL 2.0. Вы можете найти примеры и эмулятор, который запускается на linux на сайте Mali Developer. Конечно, в основном для целевых ARM-графических процессоров, но я уверен, что он может быть использован для изучения возможностей программирования OpenGL ES.

Ответ 3

Не забывайте, что настольный Linux поставляется с OpenGL, а не с OpenGLES! Они похожи, но не совсем совместимы. Если вы хотите работать на OpenGLES на настольной платформе Linux, ARM или иначе, вам понадобится библиотека эмулятора OpenGLES. Извините, не могу порекомендовать, я сам ищу его.

OpenGLES просто обрабатывает процесс рисования материала в окне. Вам также нужна библиотека окон, которая обрабатывает процесс создания окна для рисования материала и библиотеки событий, которая обрабатывает входные события, возвращающиеся из окна.

SDL предоставит оба последних двух, а также группу других библиотек. Сам Khronos стандартизовали EGL как библиотеку окон и OpenKODE в качестве библиотеки событий... но я не знаю, где можно получить реализацию с открытым исходным кодом для Linux. (Я работаю в компании, которая делает EGL и OpenKODE для встроенных платформ, поэтому мне никогда не нужно было искать версию с открытым исходным кодом!)

Ответ 4

Здесь - это учебник, показывающий, как использовать SDL в сочетании с OpenGL ES. Это для платформы OpenPandora, но поскольку это запускает Linux, она должна применяться на рабочем столе, если вы можете получить правильные версии библиотек.

Использование SDL более или менее стандартно для такого рода программирования в Linux. Конечно, вы можете пройти более длинный маршрут и сами открыть окно, приложить контекст визуализации GL и т.д., Но обычно легче изучить соответствующие части SDL. Это также дает вам простой в использовании API: s для ввода данных, что почти всегда необходимо.