Кроссплатформенная аппаратная библиотека OpenGL, возможно, с мультимедиа? - PullRequest
2 голосов
/ 20 ноября 2011

Я ищу возможность открывать контексты OpenGL и рисовать родные OpenGL в Windows, MacOS, Linux-дистрибутивах с X, Android и iOS

Я не хочу полагаться на "нативную" инфраструктуру устройствадля реального пользовательского интерфейса мне не нужно использовать нативные компоненты, все, что мне нужно, это контекст OpenGL, который можно рисовать в OpenGL.Многие из кроссплатформенных SDK, такие как Marmalade и MoSync, фокусируются на использовании собственных компонентов пользовательского интерфейса и тому подобного, все, что мне нужно, это контекст OpenGl для рисования, как я намереваюсь, абсолютно никакой нативной функциональности пользовательского интерфейса не требуется, однако, доступ кЕсли это возможно, необходимы встроенные аппаратные функции, такие как микрофон, камера и другие датчики, а также доступ к аудио / видео / сети.

Я не хочу использовать QT, я хочу сделать что-то ближе каппаратное обеспечение для работы на низком уровне.Основная идея заключается в создании облегченного кроссплатформенного аппаратно-ускоренного графического интерфейса пользователя, написанного на достаточно низком уровне, чтобы быть действительно аппаратным, без использования какой-либо собственной программной среды.Я знаю, что для Android мне, возможно, придется использовать java-оболочку для запуска нативного кода, но идея состоит в том, чтобы минимизировать эту обертку с минимальными изменениями, необходимыми для развертывания низкоуровневого и, следовательно, кросс-платформенного кода TRULY, то есть толькозависит от аппаратного обеспечения OpenGL и контекста OpenGL, чтобы он работал с wit.h

. Поэтому мне нужно минимальное минимальное решение, чтобы максимально избегать использования кросс-платформенных функций.

В то времяединственная библиотека, которая приходит мне в голову, - это SDL, но я не уверен, что она поддерживает свойства android и iOS, поэтому помимо рекомендаций библиотеки, больше информации о том, как SDL обрабатывает устройства android и iOS и их оборудование, также приветствуется.

Ответы [ 2 ]

4 голосов
/ 20 ноября 2011

Как насчет:

  • GLFW
  • SDL
  • GLUT (FreeGLUT или OpenGLUT)
  • GHOST-структура Blender?

По сути, они открывают окно, создают в нем контекст OpenGL, доставляют вам входные события и оставляют остальное на ваше усмотрение.

3 голосов
/ 20 ноября 2011

То, что вы хотите, - это не более чем настройка контекста OpenGL для конкретной платформы (которая довольно проста и хорошо документирована: учебник NeHe OpenGL предоставляет код для многих сред, которые делают именно это здесь (объяснение Специфично для Windows, прокрутите код вниз для разных ОС).

Если у вас есть контекст OpenGL, ничто не мешает вам создать полный графический интерфейс со всеми элементами OpenGL.

Если вы хотите, вы можете использовать Qt только для настройки контекста OpenGL (т.е. не использовать QWidgets или что-либо еще, кроме окна, показывающего вашу сцену OpenGL). Он берет на себя весь процесс установки, но только для этого Qt становится огромной зависимостью, поскольку он действительно заменяет не более 100 строк кода на платформу.

Что касается SDL + Android, вы проверили README ?

А для iOS проверьте тот же файл здесь .

...