我正在寻找 Mac OS X 的光栅图形框架。具体来说,我想要某种可以像像素矩阵一样操作(至少在概念上)的视图。我的程序将以编程方式生成像素数据。
QuickDraw 非常适合该描述,但已被弃用。据我所知,Core Graphics 中没有任何等价物。我错过了什么吗?
一个普通的 C 框架比 Objective-C 框架更可取,但我并不太挑剔。
我正在寻找 Mac OS X 的光栅图形框架。具体来说,我想要某种可以像像素矩阵一样操作(至少在概念上)的视图。我的程序将以编程方式生成像素数据。
QuickDraw 非常适合该描述,但已被弃用。据我所知,Core Graphics 中没有任何等价物。我错过了什么吗?
一个普通的 C 框架比 Objective-C 框架更可取,但我并不太挑剔。
QD 已被弃用,因为当前一代完全复合的 UI 和 GPU 硬件无法有效地实现它。出于这个原因,系统上没有像 QD 这样的东西,而且不会有。允许直接访问后备存储在最好的情况下会强制执行更多往返 GPU 的总线事务,在最坏的情况下可能会阻止纹理加载到卡本身,并且在某些情况下可能会导致软件回退。
很明显,有时人们需要对后备存储进行像素级访问是有原因的,所以有一些机制可以做到这一点,但没有真正方便的方法,如果你能找到避免它的方法,你应该这样做。如果无法避免,您可以使用 CoreGraphics 使用CGBitmapContextCreate创建位图上下文,您可以在其中访问后备存储并可以直接操作后备存储。使用起来并不简单,而且速度很慢。
将视图的宽度和高度单独分开,然后绘制宽度 x 高度的正方形呢?您可以只使用 NSPoint 并将其增加一,直到达到宽度 x 高度。
简单 Directmedia 层具有像素访问权限。因为它是一个移植库,所以它可能会被杀死,但整个 API 都是纯 C 语言。我不知道它用作底层 MacOS API 的用途。最好检查该网站,看看它是否适合您的目的。
或者,您可以使用OpenGL纹理。
最好的方法是Core Image。它专为处理像素而设计,而且速度非常快,因为它可以让您在显卡上进行工作。