|
|
|
@ -243,10 +243,11 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent |
|
|
|
- (void) drawFb: (AvnFramebuffer*) fb |
|
|
|
{ |
|
|
|
auto colorSpace = CGColorSpaceCreateDeviceRGB(); |
|
|
|
auto bctx = CGBitmapContextCreate(fb->Data, fb->Width, fb->Height, 8, fb->Stride, colorSpace, kCGBitmapByteOrder32Big | kCGImageAlphaPremultipliedLast); |
|
|
|
auto image = CGBitmapContextCreateImage(bctx); |
|
|
|
CGContextRelease(bctx); |
|
|
|
CGColorSpaceRelease(colorSpace); |
|
|
|
auto dataProvider = CGDataProviderCreateWithData(NULL, fb->Data, fb->Height*fb->Stride, NULL); |
|
|
|
|
|
|
|
|
|
|
|
auto image = CGImageCreate(fb->Width, fb->Height, 8, 32, fb->Stride, colorSpace, kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedLast, |
|
|
|
dataProvider, nullptr, false, kCGRenderingIntentDefault); |
|
|
|
|
|
|
|
auto ctx = [NSGraphicsContext currentContext]; |
|
|
|
|
|
|
|
@ -255,6 +256,8 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent |
|
|
|
|
|
|
|
CGContextDrawImage(cgc, CGRect{0,0, fb->Width/(fb->Dpi.X/96), fb->Height/(fb->Dpi.Y/96)}, image); |
|
|
|
CGImageRelease(image); |
|
|
|
CGColorSpaceRelease(colorSpace); |
|
|
|
CGDataProviderRelease(dataProvider); |
|
|
|
|
|
|
|
[ctx restoreGraphicsState]; |
|
|
|
|
|
|
|
|