Objective-C / Cocoa中的BitBlt()等价物

时间:2009-10-26 02:54:50

标签: objective-c cocoa macos graphics bitblt

几年前我在visual basic中制作了一个滚动的瓷砖2D视频游戏。我正在将它翻译为Mac的Cocoa。是否有允许我使用BitBlt的框架?或者在没有使用OpenGL的情况下是否相当于BitBlt?谢谢!

2 个答案:

答案 0 :(得分:2)

您应该从Core Graphics

开始

答案 1 :(得分:2)

正如马特所说,你可能想要CGContextDrawImageCGContextSetBlendMode

首先,您需要从图像数据中创建CGImageRef。您使用数据提供程序执行此操作。如果您已将图像加载到内存中,则应使用CGDataProviderCreateDirect。该数据提供者将是CGImageCreate的参数。

接下来,在Cocoa视图的drawRect:方法中,您需要获取当前上下文: CGContextRef cgContext = [[NSGraphicsContext currentContext] graphicsPort];

然后使用CGContextDrawImage绘制图像。

正如马特所提到的,你可以控制与CGContextSetBlendMode的混合。