Make get_native_scale code more expandable

This commit is contained in:
Twinaphex 2015-04-21 12:57:35 +02:00
parent af00b958d5
commit 165b502948
1 changed files with 13 additions and 9 deletions

View File

@ -271,6 +271,18 @@ static bool cocoagl_gfx_ctx_set_video_mode(void *data, unsigned width, unsigned
return true; return true;
} }
static float cocoagl_gfx_ctx_get_scale_from_selector(RAScreen *screen, SEL selector)
{
float ret;
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:
[[screen class] instanceMethodSignatureForSelector:selector]];
[invocation setSelector:selector];
[invocation setTarget:screen];
[invocation invoke];
[invocation getReturnValue:&ret];
return ret;
}
float cocoagl_gfx_ctx_get_native_scale(void) float cocoagl_gfx_ctx_get_native_scale(void)
{ {
static float ret = 0.0f; static float ret = 0.0f;
@ -283,15 +295,7 @@ float cocoagl_gfx_ctx_get_native_scale(void)
return 0.0f; return 0.0f;
if ([screen respondsToSelector:selector]) if ([screen respondsToSelector:selector])
{ return cocoagl_gfx_ctx_get_scale_from_selector(screen, selector);
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:
[[screen class] instanceMethodSignatureForSelector:selector]];
[invocation setSelector:selector];
[invocation setTarget:screen];
[invocation invoke];
[invocation getReturnValue:&ret];
return ret;
}
ret = 1.0f; ret = 1.0f;
if ([screen respondsToSelector:@selector(scale)]) if ([screen respondsToSelector:@selector(scale)])