Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在OSX中,什么是基本图形绘制层?_Macos_Opengl_Graphics_Drawing_Appkit - Fatal编程技术网

Macos 在OSX中,什么是基本图形绘制层?

Macos 在OSX中,什么是基本图形绘制层?,macos,opengl,graphics,drawing,appkit,Macos,Opengl,Graphics,Drawing,Appkit,我开始在OSX中开发GUI,我想知道,在系统中绘制图形的最底层是什么?似乎有这么多的高层抽象(AppKit、OpenGL、CG等),它们既漂亮又省时,但对我来说,在我理解底层之前是无法使用的(除非它的二进制或汇编,在这种情况下我会放弃)。你可能做得比看底层更糟糕。这是您最常使用的层,了解这一点将构成您进行任何进一步调查的基础 我开始在OSX中开发GUI,我想知道,在系统中绘制图形的最底层是什么 信不信由你,但自从MacOS X Tiger之后,整个图形堆栈都是基于OpenGL的。下面OpenGL

我开始在OSX中开发GUI,我想知道,在系统中绘制图形的最底层是什么?似乎有这么多的高层抽象(AppKit、OpenGL、CG等),它们既漂亮又省时,但对我来说,在我理解底层之前是无法使用的(除非它的二进制或汇编,在这种情况下我会放弃)。

你可能做得比看底层更糟糕。这是您最常使用的层,了解这一点将构成您进行任何进一步调查的基础

我开始在OSX中开发GUI,我想知道,在系统中绘制图形的最底层是什么

信不信由你,但自从MacOS X Tiger之后,整个图形堆栈都是基于OpenGL的。下面OpenGL只是GPU驱动程序,然后是裸机

似乎有这么多的高层抽象(AppKit、OpenGL、CG等),它们既漂亮又省时,但对我来说,在我理解底层之前是无法使用的(除非它的二进制或汇编,在这种情况下我放弃了)

为什么它们不适合你?你希望从增加的知识中获得什么?你使用的级别越低,你就必须越了解它的工作原理,才能有效地利用它。OpenGL本身的水平已经相当低了。OpenGL实现对您隐藏了一些血淋淋的细节,比如按需纹理数据从快速内存交换到常规内存等等,GLSL编译器也相当高级。但另一方面,为了有效地使用OpenGL,您应该以GPU本机使用的格式交付数据,着色器可以以二进制形式缓存,缓冲区对象为您提供DMA传输的API


如果你真的对最底层感兴趣,那你就得看看GPU的设计,也就是金属。AMD确实在他们的一些GPU(Google for OpenGPU)上发布了完整的编程文档。

是什么让这些其他接口无法使用?没有,我只是觉得不舒服,因为我对类似这样的东西很偏执that@roozbubu:那么这听起来像是一个你现在需要克服的问题。