objective-c – CGL vs AGL vs OpenGL vs NSOpenGL vs CoreAnima
我试图通过层的形式了解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小部件,请使用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |