几年前,我用 Visual Basic 制作了一款滚动平铺 2D 视频游戏。我正在将它翻译成适用于 Mac 的 Cocoa。有没有一个框架可以让我使用 BitBlt ?或者是否有不使用 OpenGL 的 BitBlt 等效项?谢谢!
最佳答案
正如 Matt 提到的,您可能需要 CGContextDrawImage
和 CGContextSetBlendMode
。
首先,您需要从图像数据创建一个CGImageRef
。您可以通过数据提供者来执行此操作。如果您已经将图像加载到内存中,那么您应该使用 CGDataProviderCreateDirect
。该数据提供者将成为 CGImageCreate
的参数。
接下来,在您的 Cocoa View 的 drawRect:
方法中,您需要像这样获取当前上下文:
CGContextRef cgContext = [[NSGraphicsContext currentContext] graphicsPort];
然后使用CGContextDrawImage
绘制图像。
正如 Matt 提到的,您可以使用 CGContextSetBlendMode
控制混合。
关于objective-c - Objective-C/Cocoa 中的 BitBlt() 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1622890/