Files
PojavLauncher_iOS/Natives/GameSurfaceView.m
T
khanhduytran0 dfab68b2d4 Fix[renderer]: let (slow version) Zink run on iOS 16
Backport of: Fix CGImageCreate returning NULL on iOS 16 (4c2f9e5)
2023-09-15 17:48:45 +07:00

38 lines
1.1 KiB
Objective-C

#import "GameSurfaceView.h"
#import "LauncherPreferences.h"
#import "PLProfiles.h"
#import "utils.h"
@implementation GameSurfaceView
- (void)displayLayer {
CGDataProviderRef bitmapProvider = CGDataProviderCreateWithData(NULL, gbuffer, windowWidth * windowHeight * 4, NULL);
CGImageRef bitmap = CGImageCreate(windowWidth, windowHeight, 8, 32, 4 * windowWidth, colorSpace, kCGImageAlphaNoneSkipLast | kCGBitmapByteOrderDefault, bitmapProvider, NULL, FALSE, kCGRenderingIntentDefault);
self.layer.contents = (__bridge id) bitmap;
CGImageRelease(bitmap);
CGDataProviderRelease(bitmapProvider);
//CGColorSpaceRelease(colorSpace);
}
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
self.layer.drawsAsynchronously = YES;
self.layer.opaque = YES;
if ([[PLProfiles resolveKeyForCurrentProfile:@"renderer"] hasPrefix:@"libOSMesa"]) {
colorSpace = CGColorSpaceCreateDeviceRGB();
}
return self;
}
+ (Class)layerClass {
if ([[PLProfiles resolveKeyForCurrentProfile:@"renderer"] hasPrefix:@"libOSMesa"]) {
return CALayer.class;
} else {
return CAMetalLayer.class;
}
}
@end