gpt4 book ai didi

objective-c - CGL vs AGL vs OpenGL vs NSOpenGL vs CoreAnimation(CALayer)

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:18 26 4
gpt4 key购买 nike

我试图了解 Mac 上与层形式的 OpenGL 框架集成相关的一些事情。基本上当我想了解 OS X 中的 3D 技术以及哪一层是 OpenGL 的实际实现层时。

通过阅读苹果文档,以下是我目前的理解:

1.NSOpenGLContext 对象包装了一个低级的、特定于平台的 Core OpenGL (CGL) 上下文。

= 这表明 NSOpenGL 使用了 CGL。

2.AGL(Apple 图形库)API 是 Apple 在 Mac OS X 中实现 OpenGL 的一部分。

= 那么,AGL 和 CGL 有任何关联吗?

3.CGL (Core OpenGL) 是 Apple 实现 OpenGL 的最低级编程接口(interface)。

= 这是否意味着标准 OpenGL API 只是对 CGL 的包装?

4.CoreAnimation 似乎是Core Graphics、Open-GL 和Quick-time 的组合。但是我不确定它在它下面使用什么,我的意思是实际的实现层,它又是 CGL 吗?

我还不是很清楚。不过我还在阅读,我问了一些相关的问题 question过去但知识不完整。

如果有人能分享他对物质的理解,我将不胜感激。

最佳答案

NSOpenGLContext、AGL 和 CGL 都是用于设置您可以在其中绘制的 OpenGL 上下文的 API。

使用 NSOpenGLContext 除非你已经知道你有理由不这样做。

如果您正在编写 Carbon 应用程序或需要与 Mac OS 9 兼容(截至 2012 年,这基本上意味着:不要),请使用 AGL。

AGL 和 NSOpenGLContext 都是在 CGL 之上实现的。然而,并非 CGL 的所有必要部分实际上都是公共(public) API。上次我检查时,CGL API 的唯一公共(public)部分允许您创建全屏 OpenGL 上下文。如果您希望在窗口中使用 OpenGL,或者希望在 OpenGL 之上显示对话框或某些 NSView,您可能无法使用 CGL。

CoreAnimation 是一个用于(主要是 UI)动画的框架;您可以在不直接使用 OpenGL 的情况下使用 CoreAnimation。我自己从未使用过它,但我认为它还允许您为动画层创建 OpenGL 上下文。如果您已经有其他理由使用 CoreAnimation,或者如果您想以创造性的方式组合 OpenGL 图形和 Mac GUI 小部件,请使用它。

关于objective-c - CGL vs AGL vs OpenGL vs NSOpenGL vs CoreAnimation(CALayer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9079097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com