Могу ли я использовать EGL в OSX?

Я пытаюсь использовать Каир библиотека в приложении C ++, использующая его ускорение GL в Mac. (Я провел те же тесты с его Quartz backend, но производительность разочаровала.) Он говорит, что поддерживает EGL и GLX. Для использования GLX требуется (установлен снаружи) XQuartz и открывает XWindow, поэтому я наклоняюсь к EGL:

Apple, страницы руководства по программированию скажи использовать NSOpenGL *, который этот Пейдж и другие говорят, что он использует CGL.

это (2012) страница говорит, что у Mac есть EAGL, и он похож только на EGL (я полагаю, он ссылается на IOS, а не на MAC, так как его ссылка на EAGL ссылается на страницы справки IOS).

Угол говорит, что поддерживает EGL, но это для Direct3D в Windows, как я понимаю (?)

GLFW Также говорят, что v3 поддерживает (в будущих выпусках?), но через GLX говорят (?).

Мали говорит, что у него есть симулятор для Mac, но я не знаю, ускорен ли он или только для его оборудования (он также говорит, что поддерживает только подмножество EGL на разных платформах).

Большинство ссылок относятся к мобильным, когда используется EGL. Я использую Mac OS 10.8 и XCode 4.6. Какова текущая ситуация / Как я могу (если смогу) использовать EGL в Mac (сейчас)?

5

Решение

да. cairo был портирован для использования nsopengl. Я покажу вам, как. Пример кода AMD, если вы заинтересованы. производительность намного быстрее, чем Quaetz GL.

0

Другие решения

Вот
https://github.com/SRA-SiliconValley/cairogles/

клон каир, касса ветка нсгл. Этот Каир — наш форк Каира 1.12.14, который имеет следующее улучшение по сравнению с Каиром вверх по течению.

  1. поддержка OpenGL ES 3.0 и поддержка расширения MSAA для угла OpenGL ES 2.0
  2. новый выпуклый тесселлятор для круга заполнения для msaa compositor
  3. новый API cairo — cairo_ounded_rectangle () — оптимизирован для композитора MSAA
  4. поддержка Gaussian Blur для четырех бэкэндов: GL / GLES, кварц, xcb и изображения
  5. поддержка тени и вставки для четырех бэкэндов: GL / GLES, кварц, xcv и изображения с кэшем shaow
  6. поддерживать более быстрый ход, когда ширина хода = 1 — мы называем линию роста волос
  7. добавить интеграцию для NSOpenGL
  8. различные исправления ошибок и оптимизации.

В Mac OSX у вас есть два варианта: GLX или NSOpenGL — они взаимоисключающие. Вы можете получить mesa glx из Macport.
1. Скомпилировать для NSOpenGL — ./configure —prefix = your_install_location —enable-gl = да —enable-nsgl = да —enable-glx = нет —enable-egl = нет

  1. Для компиляции для GLX — ./configure —prefix = your_install_location —enable-gl = yes —enable-glx = yes —enable-nsgl = no —enable-egl = no.

Если вы заинтересованы в egl (недоступно на mac, но в mesa 9.1+ на linux и в различных формах встроенной платформы есть egl) сделайте
./configure —prefix = your_install_location —enable-gl = нет —enable-egl = да —enable-glesv2 = да —enable-glesv3 = нет ===== это компилируется для драйверов gles2.

./ confgure —prefix = your_install_location —enable-gl = нет —enable-egl = да —enable-glesv2 = нет —enable-glesv3 = да ==== это компилируется для драйвера glesv3 (в mesa 9.1+ есть glesv3 )

Вы можете иметь CFLAGS = «- g» для отладки или CFLAGS = «- O2» для оптимизации.

В cairo gl / gles есть 3 компоновщика GL (пути рендеринга для бэкэнда GL / GLES). По умолчанию используется span compositor, который представляет собой программную симуляцию AA и работает медленно. Если ваш драйвер поддерживает MSAA, используйте msaa compositor. Чтобы использовать MSAA compositor, вы можете экспортировать CAIRO_GL_COMPOSITOR = msaa в терминал, или вы можете использовать setenv () в своей программе.

У меня есть пример кода, чтобы показать Каир для кварца, xcv, изображения, glx, gel или nsgl. Если вы заинтересованы, я могу отправить вам.

Любые сообщения об ошибках / патчи приветствуются. У меня пока нет времени заставить работать wgl (MS windows). Кроме того, было бы неплохо иметь d3d для cairo, у меня просто нет времени на это — в списке задач.

наслаждаться

0

Вы определенно можете использовать угол:

#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <EGL/egl.h>
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector