首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在OSX中使用EGL吗?

我可以在OSX中使用EGL吗?
EN

Stack Overflow用户
提问于 2014-05-24 03:00:24
回答 3查看 6K关注 0票数 8

我正在尝试在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?

EN

回答 3

Stack Overflow用户

发布于 2014-05-30 06:15:13

这就是https://github.com/SRA-SiliconValley/cairogles/

克隆cairo,签出分支nsgl。此cairo是cair1.12.14的分支,与上游cairo相比,它具有以下增强功能

  1. 支持OpenGL ES 3.0,并支持OpenGL ES 2.0角度MSAA扩展
  2. 用于填充圆的新凸面细分工具
  3. 新的cairo API - cairo_rounded_rectangle() -它针对四个后端的msaa compositor
  4. support高斯模糊进行了优化: GL/GLES,石英,xcb和图像
  5. 支持放置阴影和嵌入四个后端: GL/GLES,石英,使用shaow cache
  6. support的xcv和图像在笔划宽度=1时笔划速度更快-我们将微妙的笔划称为NSOpenGL
  7. various错误修复和optimization.

  • 添加集成

在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编译前缀-./--

  1. =您的安装位置--启用-gl=yes --enable-glx=yes --enable-nsgl=no --enable-egl=no.

/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后端就好了,我只是没有时间去做--在待办事项列表上。

尽情享受

票数 1
EN

Stack Overflow用户

发布于 2014-05-29 11:49:23

是。cairo已经移植到使用nsopengl。我会教你怎么做。amd示例代码,如果你感兴趣的话。性能比quaetz gl快得多。

票数 0
EN

Stack Overflow用户

发布于 2016-11-03 21:47:53

你绝对可以使用angle:

代码语言:javascript
复制
#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <EGL/egl.h>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23836660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档