CGL与Mac上的OpenGL

时间:2011-08-29 14:34:21

标签: macos opengl core-animation cglayer

我想弄清楚CGLOpenGL on Mac平台之间的关系。

更具体地说明背景。他们分享背景吗?如果有,怎么样?请给我一些相关示例的链接。

如果不是,那么在Core Animation应用程序中是否有两个使用OpenGL的上下文?

我对Mac使用OpenGL感到非常困惑。有人可以澄清一下吗?

2 个答案:

答案 0 :(得分:3)

CGL设置适合OpenGL渲染的设备特定上下文。分别与Windows和X上的wgl和xgl进行比较。 CGL了解如何查询图形硬件的像素格式,以及如何设置和配置上下文(例如双缓冲或单缓冲,分辨率深度,模板,累积缓冲等)。但它不提供在该上下文中绘制的函数。使用CGL创建上下文后,将其设置为当前,然后可以调用OpenGL在该上下文中进行渲染。

在Core Graphics中(不要将它与CGL混淆),上下文初始化和绘制到上下文中的都是由同一个框架处理的。但由于OpenGL是一个开放标准,旨在实现跨平台,因此渲染功能和设备上下文功能已被抽象为单独的框架。

答案 1 :(得分:0)

CGL是Mac上OpenGL的低级接口。如果您正在编写OpenGL Mac应用程序,您可能不想使用它。我目前正在为XCode 4创建一个直观的OpenGL Mac应用程序模板,但与此同时你可以查看我使用OpenGL制作的pong克隆https://github.com/mk12/Pong-Ultimate。它使用NSOpenGL,一个更高级别的OpenGL Cocoa接口。

您可能还会发现Apple文档有用:http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_intro/opengl_intro.html