在与一些同事的讨论中,我们想知道为
Android或iPhone开发的OpenGL工作是否可以有效地互换,因为它们都支持规范.
或者是在两个平台之间共享OpenGL的现实更多的是一个怪癖,调整的情况,并不像人们希望的那么容易.
解决方法
OpenGL实现通常由两部分组成:
1.平台特定部分.这通常与创建和显示曲面有关.
2. OpenGL API.对于OpenGL的具体实现,这部分在所有平台上是相同的,在Android的情况下,OpenGLES 1.0.
1.平台特定部分.这通常与创建和显示曲面有关.
2. OpenGL API.对于OpenGL的具体实现,这部分在所有平台上是相同的,在Android的情况下,OpenGLES 1.0.
这意味着您的大部分OpenGL代码应该易于移植.
在C中,你可能有glLoadIdentity();
在Android上的Java中,类似gl.glLoadIdentity();
因此,对于大部分代码,您可以剪切和粘贴,然后搜索和替换“gl”之类的前缀.
现在为了有趣的部分:你真的需要小心你正在编码的版本.用于桌面的OpenGL具有OpenGLES中不存在的API.还有一些特定于每个平台的OpenGL数据类型.此外,您还需要处理1.0(例如Android)1.1(例如iPhone)2.0(例如iPhone GS). API的差异通常与额外的硬件功能有关,因此您不能编写一些简单的包装代码来模拟1.0 / 1.1中的2.0功能.