更具体地说,关于上下文。他们是否共享上下文?如果是,如何?请给我一些相关示例的链接。
如果不是,那么在使用 OpenGL 的 Core Animation 应用程序中是否有两个上下文工作?
我对 Mac 使用 OpenGL 感到非常困惑。有人可以澄清吗?
CGL 设置适合 OpenGL 渲染的设备特定上下文。分别与 Windows 和 X 上的 wgl 和 xgl 进行比较。CGL 了解如何查询图形硬件的像素格式,然后如何设置和配置上下文(例如双缓冲或单缓冲、分辨率深度、模板、累积缓冲区等)。但它不提供在该上下文中绘制的函数。使用 CGL 创建上下文后,将其设为当前,然后您可以调用 OpenGL 在该上下文中进行渲染。
在 Core Graphics 中(不要将其与 CGL 混淆),上下文初始化和绘制到上下文中都是由同一个框架处理的。但是因为 OpenGL 是一个开放标准并且被设计为跨平台的,所以渲染功能和设备上下文功能已经被抽象到单独的框架中。
CGL 是 Mac 上 OpenGL 的低级接口。如果您正在编写 OpenGL Mac 应用程序,您可能不想使用它。我目前正在为 XCode 4 创建一个直观的 OpenGL Mac 应用程序模板,但同时您可以查看https://github.com/mk12/Pong-Ultimate,这是我使用 OpenGL 制作的一个 pong 克隆。它使用 NSOpenGL,一个更高级别的 Cocoa 接口到 OpenGL。
您可能还会发现 Apple 文档很有帮助:http: //developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_intro/opengl_intro.html。