BitBlt () эквивалент в Objective-C / Какао - PullRequest
3 голосов
/ 26 октября 2009

Несколько лет назад я сделал 2D-видео игру с прокруткой в ​​Visual Basic. Я перевожу его на Какао для Mac. Есть ли рамки, которые позволили бы мне использовать BitBlt ? Или есть эквивалент BitBlt без использования OpenGL? Спасибо!

Ответы [ 2 ]

2 голосов
/ 27 октября 2009

Как уже упоминал Мэтт, вы, вероятно, хотите CGContextDrawImage и CGContextSetBlendMode.

Сначала вам нужно создать CGImageRef из данных изображения. Вы делаете это с поставщиком данных. Если изображение уже загружено в память, используйте CGDataProviderCreateDirect. Этот поставщик данных будет параметром для CGImageCreate.

Затем, в методе drawRect: вашего представления Какао, вы захотите получить текущий контекст следующим образом: CGContextRef cgContext = [[NSGraphicsContext currentContext] graphicsPort];

Затем используйте CGContextDrawImage, чтобы нарисовать изображение.

Как уже упоминал Мэтт, вы можете контролировать смешивание с помощью CGContextSetBlendMode.

2 голосов
/ 26 октября 2009

Возможно, вам следует начать с Core Graphics

...