diff --git a/gfx/drivers_context/cocoa_gl_ctx.m b/gfx/drivers_context/cocoa_gl_ctx.m index d796e848e0..58831b135f 100644 --- a/gfx/drivers_context/cocoa_gl_ctx.m +++ b/gfx/drivers_context/cocoa_gl_ctx.m @@ -310,7 +310,7 @@ static bool cocoagl_gfx_ctx_set_video_mode(void *data, return true; } -void get_float_from_selector(RAScreen *screen, SEL selector, float *ret) +static float cocoagl_gfx_ctx_get_scale_from_selector(RAScreen *screen, SEL selector, float *ret) { NSInvocation *invocation = [NSInvocation invocationWithMethodSignature: [[screen class] instanceMethodSignatureForSelector:selector]]; @@ -318,6 +318,7 @@ void get_float_from_selector(RAScreen *screen, SEL selector, float *ret) [invocation setTarget:screen]; [invocation invoke]; [invocation getReturnValue:ret]; + return *ret; } float cocoagl_gfx_ctx_get_native_scale(void) @@ -336,10 +337,7 @@ float cocoagl_gfx_ctx_get_native_scale(void) return 0.0f; if ([screen respondsToSelector:selector]) - { - get_float_from_selector(screen, selector, &ret); - return ret; - } + return cocoagl_gfx_ctx_get_scale_from_selector(screen, selector, &ret); ret = 1.0f; if ([screen respondsToSelector:@selector(scale)]) diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index 4326a1bece..560330b77a 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -33,8 +33,7 @@ static id apple_platform; -extern void *get_chosen_screen(void); -extern void get_float_from_selector(RAScreen *screen, SEL selector, float *ret); +void *get_chosen_screen(void); void apple_rarch_exited(void) { @@ -108,14 +107,13 @@ void apple_rarch_exited(void) { NSPoint pos; NSPoint mouse_pos; - float backing_scale_factor = 1.0f; + CGFloat backing_scale_factor = 1.0f; #if __has_feature(objc_arc) RAScreen *screen = (__bridge RAScreen*)get_chosen_screen(); #else RAScreen *screen = (RAScreen*)get_chosen_screen(); #endif - SEL selector = NSSelectorFromString(BOXSTRING("backingScaleFactor")); apple = (cocoa_input_data_t*)input_driver_get_data(); if (!apple) @@ -127,8 +125,9 @@ void apple_rarch_exited(void) apple->mouse_rel_x = event.deltaX; apple->mouse_rel_y = event.deltaY; - if ([screen respondsToSelector:selector]) - get_float_from_selector(screen, selector, &backing_scale_factor); +#if MAC_OS_X_VERSION_10_7 + backing_scale_factor = screen.backingScaleFactor; +#endif /* Absolute */ pos = [[CocoaView get] convertPoint:[event locationInWindow] fromView:nil];