Это делает именно то, что нужно, за исключением того, что это занимает около 400 миллисекунд, что на 350 миллисекунд слишком много:
- (void) updateCompositeImage { //blends together the background and the sprites
UIGraphicsBeginImageContext(CGSizeMake(480, 320));
[bgImageView.image drawInRect:CGRectMake(0, 0, 480, 320)];
for (int i=0;i<numSprites;i++) {
[spriteImage[spriteType[i]] drawInRect:spriteRect[i] blendMode:kCGBlendModeScreen alpha:spriteAlpha[i]];
}
compositeImageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
Изображения довольно маленькие, их всего три (цикл for повторяется только дважды)
Есть ли способ сделать это быстрее? Пока еще есть возможность использовать kCGBlendModeScreen и alpha?