我正在尝试在C++应用程序中使用Cairo库,利用它在Mac中的GL加速。(我用它的Quartz后端做了同样的测试,但性能令人失望。)它说它支持EGL和GLX。使用GLX需要(外部安装的) XQuartz并打开一个XWindow,所以我倾向于使用EGL:
苹果的programming guide pages告诉使用NSOpenGL*,this页面和其他人说它使用CGL。
This (2012)的页面上说Mac有EAGL,它只是类似于EGL (我想它指的是IOS,而不是MAC,因为它的EAGL参考链接指向IOS帮助页面)。
Angle说它支持EGL,但它是针对windows中的Direct3D的,据我所知(?)
据说GLFW v3也支持(在未来的版本中?)但是通过GLX,它被称为(?)。
Mali说它有一个用于Mac的模拟器,但我不知道它是加速的,还是只适用于它的硬件(它还说它在不同的平台上只支持EGL的一个子集)。
当使用EGL时,大多数链接都是指移动设备。我使用的是MacOS10.8和XCode 4.6。当前的情况是什么/我如何(如果可以)在Mac中(现在)使用EGL?
发布于 2014-05-30 06:15:13
这就是https://github.com/SRA-SiliconValley/cairogles/
克隆cairo,签出分支nsgl。此cairo是cair1.12.14的分支,与上游cairo相比,它具有以下增强功能
的
在Mac上,你有两个选择: GLX或NSOpenGL --它们是互斥的。你可以从macport获得mesa glx。1.编译NSOpenGL - ./configure --prefix=your_install_location --enable-gl=yes --enable-nsgl=yes --enable-glx=no --enable-egl=no
为GLX编译前缀-./--
/configure --prefix=your_install_location --enable-gl=no --enable- egl =yes --enable-GLESSv2=yes--enable-GLESSV3= no ===== gles2驱动程序编译。
./confgure --prefix=您的安装位置--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合成器。要使用MSAA合成器,可以在终端中导出CAIRO_GL_COMPOSITOR=msaa,也可以在程序中设置you ()。
我有示例代码来显示cairo的石英,xcv,图像,glx,凝胶或nsgl。如果你感兴趣,我可以寄给你。
欢迎任何错误报告/补丁。我还没有时间让wgl (微软视窗)工作。另外,如果能有一个开罗的d3d后端就好了,我只是没有时间去做--在待办事项列表上。
尽情享受
发布于 2014-05-29 11:49:23
是。cairo已经移植到使用nsopengl。我会教你怎么做。amd示例代码,如果你感兴趣的话。性能比quaetz gl快得多。
发布于 2016-11-03 21:47:53
你绝对可以使用angle:
#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <EGL/egl.h>https://stackoverflow.com/questions/23836660
复制相似问题