加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – CGL vs AGL vs OpenGL vs NSOpenGL vs CoreAnima

发布时间:2020-12-16 09:40:14 所属栏目:百科 来源:网络整理
导读:我试图通过层的形式了解Mac上与OpenGL框架集成相关的一些事情.基本上当我想要了解OS X中存在的3D技术以及哪个层是OpenGL的实际实现层时. 从阅读苹果文档,以下是我目前所理解的: 1.NSOpenGLContext对象包含一个低级,特定于平台的Core OpenGL(CGL)上下文. =这
我试图通过层的形式了解Mac上与OpenGL框架集成相关的一些事情.基本上当我想要了解OS X中存在的3D技术以及哪个层是OpenGL的实际实现层时.

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

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

=这清楚表明NSOpenGL使用了CGL.

2. AGL(Apple Graphics Library)API是Mac OS X中Apple实现OpenGL的一部分.

那么,AGL和CGL是否以任何方式相关?

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

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

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

事情对我来说并不完全清楚.我仍然在阅读,我在过去曾问过一些相关的question,但知识不全.

如果有人可以分享他对事情的理解,我将非常感激.

解决方法

NSOpenGLContext,AGL和CGL都是用于设置可以绘制的OpenGL上下文的API.

除非您已经知道没有理由,否则请使用NSOpenGLContext.

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读