我可以在我的c++应用程序中使用干净的openGL版本吗?我想编写一些基本的包装程序,然后将c++中的代码与这个包装程序和应用程序连接起来。还是我必须只使用openGLES?用GLKit。描述我所有的变体。
发布于 2015-02-20 19:08:05
iOS只支持OpenGL ES。目前支持的设备完全是2.0和3.0,它们都是可编程管道;旧设备是1.1,是固定管道。
ES是集成的核心动画级。在使用GLKit之前,您需要创建一个图层--排序器可以显示的最简单的东西--并将其构建到视图层次结构中。CADisplayLink
是连接到设备虚拟水平同步的3.0+方式。
GLKit是分开的,目的是:
这取决于你是否使用它。
LLVM支持的语言之一是Objective++。这是C++和Objective代码的混合,它们都能够调用对方。您可以轻松地创建一个目标- C++文件,该文件为所有其他普通的C++代码公开一个普通的C++类,但在内部进行适当的调用,以连接到Objective世界。所以你可能会有几百行的目标-C处理操作系统的东西和揭露你关心的C++演员。
发布于 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上使用CAEAGLLayer和EAGLContext。GLKit只是这些类的一个有用的包装类。
在设置这些类之后,您可以使用OpenGL ES作为其他环境。
顺便说一句,这个项目https://code.google.com/p/gl-wes-v2/在OpenGL ES 2.0环境中提供了一些OpenGL 2.0 API。它似乎与iOS不兼容,但您可能可以使用项目中的一些代码。
https://stackoverflow.com/questions/28635194
复制相似问题