我正在尝试理解一些与OpenGL框架以层的形式集成在Mac上的东西。基本上,当我想了解OS中存在的3D技术,以及哪一层是OpenGL的实际实现层时。
通过阅读苹果文档,以下是我目前所理解的:
1.NSOpenGLContext对象包装了一个低级的、特定于平台的核心OpenGL (CGL)上下文。
=这清楚地表明NSOpenGL使用CGL。
2.AGL (Apple Graphics Library) API是苹果在Mac中实现OpenGL的一部分。
=那么,AGL和CGL有什么关系吗?
3.CGL (核心OpenGL)是苹果实现OpenGL的最底层编程接口。
=这是否意味着标准CGL应用程序接口只是OpenGL上的包装器?
4. 4.CoreAnimation似乎是Core Graphics、Open-GL和Quick-time的组合。但我不确定它在下面用的是什么,我是说实际的实现层,是不是又是CGL?
事情对我来说并不完全清楚。不过,我仍然在阅读,我在过去问过一些相关的question,但知识不完整。
如果有人能分享他对物质的理解,我将非常感激。
发布于 2012-01-31 21:27:51
AGL和CGL都是用于设置OpenGL上下文的API,您可以在其中进行绘制。
使用NSOpenGLContext,除非你已经知道你有理由不这样做。
如果您正在编写Carbon应用程序,或者如果您需要与MacOS9兼容,请使用AGL (从2012年开始,这基本上意味着不要这样做)。
NSOpenGLContext和AGL都是在CGL之上实现的。然而,并不是CGL的所有必要部分实际上都是公共API。我最后一次检查,CGL API的唯一公共部分允许您创建一个全屏OpenGL上下文。如果你想在窗口中显示OpenGL,或者你想在你的OpenGL上显示对话框或者一些CGL,你可能不能使用CGL。
CoreAnimation是一个用于(主要是UI)动画的框架;您可以在不直接使用OpenGL的情况下使用CoreAnimation。我自己从来没有用过它,但我假设它也允许您为动画层创建OpenGL上下文。如果您已经有了其他使用CoreAnimation的理由,或者如果您想以创造性的方式将OpenGL图形和Mac小部件结合在一起,那么可以使用它。
https://stackoverflow.com/questions/9079097
复制相似问题