首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >清洁C++ OpenGL for iOS

清洁C++ OpenGL for iOS
EN

Stack Overflow用户
提问于 2015-02-20 17:52:00
回答 2查看 1.3K关注 0票数 1

我可以在我的c++应用程序中使用干净的openGL版本吗?我想编写一些基本的包装程序,然后将c++中的代码与这个包装程序和应用程序连接起来。还是我必须只使用openGLES?用GLKit。描述我所有的变体。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-20 19:08:05

iOS只支持OpenGL ES。目前支持的设备完全是2.0和3.0,它们都是可编程管道;旧设备是1.1,是固定管道。

ES是集成的核心动画级。在使用GLKit之前,您需要创建一个图层--排序器可以显示的最简单的东西--并将其构建到视图层次结构中。CADisplayLink是连接到设备虚拟水平同步的3.0+方式。

GLKit是分开的,目的是:

  • 提供简单的视图级包装,创建并绑定一个GL上下文、一个层、一个视图和一个显示链接;
  • 提供相当于旧的固定功能管道的着色器,这样ES 2.0+就可以像1.1一样容易地用于相同的目的。

这取决于你是否使用它。

LLVM支持的语言之一是Objective++。这是C++和Objective代码的混合,它们都能够调用对方。您可以轻松地创建一个目标- C++文件,该文件为所有其他普通的C++代码公开一个普通的C++类,但在内部进行适当的调用,以连接到Objective世界。所以你可能会有几百行的目标-C处理操作系统的东西和揭露你关心的C++演员。

票数 3
EN

Stack Overflow用户

发布于 2015-02-20 19:38:06

iOS根本不支持OpenGL。必须将OpenGL ES用于iOS设备。

您可以在每个iOS设备上使用iOS es1.1和2.0 (实际上,在iPhone 3G上只能使用OpenGL es1.1,但是最近的iOS根本不支持iPhone 3G )。

此外,您还可以在苹果OpenGL A7和A8 GPU设备上使用iPhone ES 3.0,比如iPhone 6。

有关更多详细信息,请参阅苹果文件

您只需要在iOS上使用CAEAGLLayerEAGLContext。GLKit只是这些类的一个有用的包装类。

在设置这些类之后,您可以使用OpenGL ES作为其他环境。

顺便说一句,这个项目https://code.google.com/p/gl-wes-v2/在OpenGL ES 2.0环境中提供了一些OpenGL 2.0 API。它似乎与iOS不兼容,但您可能可以使用项目中的一些代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28635194

复制
相关文章

相似问题

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