[英]Can I use EGL in OSX?
我试图在C ++应用程序中使用Cairo库,利用它在Mac中的GL加速。 (我使用Quartz后端进行了相同的测试,但性能令人失望。)它说它支持EGL和GLX。 使用GLX需要(外部安装) XQuartz并打开一个XWindow,所以我倾向于EGL:
Apple的编程指南页面告诉我们使用NSOpenGL *, 这个页面和其他人说它使用CGL。
这个 (2012)页面说Mac有EAGL,它只与EGL类似(我想它指的是IOS,而不是MAC,因为它的EAGL参考链接到IOS帮助页面)。
Angle说它支持EGL但它适用于Windows中的Direct3D,据我所知(?)
据说GLFW v3支持(在未来的版本中?)但是通过GLX,它被称为(?)。
Mali表示它有一个适用于Mac的模拟器,但我不知道它是加速还是仅用于其硬件(它还说它只支持不同平台上的EGL子集)。
当使用EGL时,大多数链接指的是移动设备。 我使用的是Mac OS 10.8和XCode 4.6。 目前的情况是什么/我如何(如果可以的话)在Mac(现在)中使用EGL?
是。 cairo已被移植到使用nsopengl。 我会告诉你如何。 如果您有兴趣,请使用示例代码。 性能比quaetz gl快得多。
这是https://github.com/SRA-SiliconValley/cairogles/
clone cairo,checkout branch nsgl。 这个cairo是我们的cairo 1.12.14的分支,与上游cairo相比具有以下增强功能
在Mac OSX上,您有两种选择:GLX或NSOpenGL - 它们是互斥的。 你可以从macport获得mesa glx。 1.编译NSOpenGL - ./configure --prefix = your_install_location --enable-gl = yes --enable-nsgl = yes --enable-glx = no --enable-egl = no
如果你对egl感兴趣(在Mac上没有,但是linux上的mesa 9.1+以及各种嵌入式平台表格有egl)./configure --prefix = your_install_location --enable-gl = no --enable-egl = yes - -enable-glesv2 = yes --enable-glesv3 = no =====这为gles2驱动程序编译。
./confgure --prefix = your_install_location --enable-gl = no --enable-egl = yes --enable-glesv2 = no --enable-glesv3 = yes ====这为glesv3驱动程序编译(mesa 9.1+已经glesv3)
您可以使用CFLAGS =“ - g”进行调试,或者使用CFLAGS =“ - O2”进行优化。
cairo gl / gles有3个GL合成器(GL / GLES后端的渲染路径)。 默认的是span compositor,它是AA的软件模拟并且很慢。 如果您的驱动程序支持MSAA,请使用msaa compositor。 要使用MSAA合成器,可以在终端中导出CAIRO_GL_COMPOSITOR = msaa,也可以在程序中输出setenv()。
我有示例代码来显示石英,xcv,图像,glx,凝胶或nsgl的cairo。 如果您有兴趣,我可以寄给您。
欢迎任何错误报告/补丁。 我还没有时间让wgl(MS windows)工作。 另外,为cairo设置一个d3d后端会很好,我只是没有时间去做 - 在todo列表上。
请享用
你绝对可以使用角度:
#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <EGL/egl.h>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.