我想弄清楚CGL和OpenGL on Mac平台之间的关系。
更具体地说明背景。他们分享背景吗?如果有,怎么样?请给我一些相关示例的链接。
如果不是,那么在Core Animation应用程序中是否有两个使用OpenGL的上下文?
我对Mac使用OpenGL感到非常困惑。有人可以澄清一下吗?
答案 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。