繁体   English   中英

iPhone和Mac上共享的OpenGL代码

[英]OpenGL code shared on iPhone and Mac

我有一个用大量OpenGLES编写的iPhone项目,现在我想将应用程序移植到Mac / Cocoa。 我可以在Mac上使用OpenGLES,还是必须执行一堆#if语句?

据我所知,ES只是桌面版本的简化版本-任何有效的ES代码都是有效的标准GL代码(可能有一些调整)。 当然,在桌面上您还可以获得其他功能/特征,例如渲染三角形以外的形状。

OpenGLES中缺少的功能的替代列表

我有一个可在iOS和Windows上运行的共享OpenGL代码库。 像这样的部分很少,没什么大的:

// Page flip
#ifdef WIN32
    glFlush();
#else
    const GLenum discards[] = {GL_COLOR_ATTACHMENT0};
    glDiscardFramebufferEXT(GL_FRAMEBUFFER, 1, discards);   

    [context presentRenderbuffer:GL_RENDERBUFFER];
#endif

除了GL启动(不使用该框架),OS用户输入事件处理程序和着色器以外,该引擎在这两个平台上的工作方式相同。 我还使用了头文件中的ifdefs来防止Objective C感染其他代码库,因此纯C ++文件不会看到类型为“ id”或“ EAGLContext”的类成员。

OpenGL ES是OpenGL的子集-任何OpenGL ES应用程序都应可在OpenGL上运行(但OpenGL应用程序可能无法在OpenGL ES上运行)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM