I have manually created a CGBitmapContext:
bitmapContext = CGBitmapContextCreate( myImageData, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big );
And drawing a layer to it:
[self.myView.layer renderInContext:bitmapContext];
However, on Retina my layer renders only at half the original size.
Setting the contentScaleFactor
property on the UIView
doesn't change anything.
What's the right way to do this?
Of course the answer came to me the minute I asked the question. Simply do this:
float scale = self.myView.contentScaleFactor;
CGContextScaleCTM(context, scale, scale);
[self.myView.layer renderInContext:context];