graphicsdriver/metal/ca: Add check by respondsToSelector (#767)

This commit is contained in:
Hajime Hoshi 2019-01-02 00:52:03 +09:00
parent a0a17330ee
commit 6350cb6bfd

View File

@ -48,8 +48,11 @@ const char *MetalLayer_SetMaximumDrawableCount(void *metalLayer,
uint_t maximumDrawableCount) { uint_t maximumDrawableCount) {
if (@available(macOS 10.13.2, *)) { if (@available(macOS 10.13.2, *)) {
@try { @try {
((CAMetalLayer *)metalLayer).maximumDrawableCount = if ([(CAMetalLayer *)metalLayer
(NSUInteger)maximumDrawableCount; respondsToSelector:@selector(maximumDrawableCount)]) {
((CAMetalLayer *)metalLayer).maximumDrawableCount =
(NSUInteger)maximumDrawableCount;
}
} @catch (NSException *exception) { } @catch (NSException *exception) {
return exception.reason.UTF8String; return exception.reason.UTF8String;
} }
@ -60,7 +63,10 @@ const char *MetalLayer_SetMaximumDrawableCount(void *metalLayer,
void MetalLayer_SetDisplaySyncEnabled(void *metalLayer, void MetalLayer_SetDisplaySyncEnabled(void *metalLayer,
BOOL displaySyncEnabled) { BOOL displaySyncEnabled) {
if (@available(macOS 10.13, *)) { if (@available(macOS 10.13, *)) {
((CAMetalLayer *)metalLayer).displaySyncEnabled = displaySyncEnabled; if ([(CAMetalLayer *)metalLayer
respondsToSelector:@selector(displaySyncEnabled)]) {
((CAMetalLayer *)metalLayer).displaySyncEnabled = displaySyncEnabled;
}
} }
} }