Я пытаюсь использовать Каир библиотека в приложении 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 (сейчас)?
да. cairo был портирован для использования nsopengl. Я покажу вам, как. Пример кода AMD, если вы заинтересованы. производительность намного быстрее, чем Quaetz GL.
Вот
https://github.com/SRA-SiliconValley/cairogles/
клон каир, касса ветка нсгл. Этот Каир — наш форк Каира 1.12.14, который имеет следующее улучшение по сравнению с Каиром вверх по течению.
В Mac OSX у вас есть два варианта: GLX или NSOpenGL — они взаимоисключающие. Вы можете получить mesa glx из Macport.
1. Скомпилировать для NSOpenGL — ./configure —prefix = your_install_location —enable-gl = да —enable-nsgl = да —enable-glx = нет —enable-egl = нет
Если вы заинтересованы в 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, у меня просто нет времени на это — в списке задач.
наслаждаться
Вы определенно можете использовать угол:
#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <EGL/egl.h>