modules/graphics/src/main/native-glass/mac/GlassScreen.m

Print this page

        

*** 54,64 **** if (screen != nil) { jmethodID screenInit = (*env)->GetMethodID(env, jScreenClass, "<init>", ! "(JIIIIIIIIIIIF)V"); GLASS_CHECK_EXCEPTION(env); // Note that NSDeviceResolution always reports 72 DPI, so we use Core Graphics API instead const CGDirectDisplayID displayID = [[[screen deviceDescription] objectForKey:@"NSScreenNumber"] intValue]; CGSize size = CGDisplayScreenSize(displayID); --- 54,64 ---- if (screen != nil) { jmethodID screenInit = (*env)->GetMethodID(env, jScreenClass, "<init>", ! "(JIIIIIIIIIIIIIIIFFFF)V"); GLASS_CHECK_EXCEPTION(env); // Note that NSDeviceResolution always reports 72 DPI, so we use Core Graphics API instead const CGDirectDisplayID displayID = [[[screen deviceDescription] objectForKey:@"NSScreenNumber"] intValue]; CGSize size = CGDisplayScreenSize(displayID);
*** 81,109 **** // Screens are usually create and released when an external monitor is added // or removed, therefore the memory leaked should never grow too much. [screen retain]; } jscreen = (jobject)(*env)->NewObject(env, jScreenClass, screenInit, ptr_to_jlong(screen), (jint)NSBitsPerPixelFromDepth([screen depth]), (jint)[screen frame].origin.x, (jint)(primaryFrame.size.height - [screen frame].size.height - [screen frame].origin.y), (jint)[screen frame].size.width, (jint)[screen frame].size.height, (jint)[screen visibleFrame].origin.x, (jint)(primaryFrame.size.height - [screen visibleFrame].size.height - [screen visibleFrame].origin.y), (jint)[screen visibleFrame].size.width, (jint)[screen visibleFrame].size.height, (jint)resolution.width, (jint)resolution.height, ! (jfloat)GetScreenScaleFactor(screen)); GLASS_CHECK_EXCEPTION(env); } return jscreen; --- 81,116 ---- // Screens are usually create and released when an external monitor is added // or removed, therefore the memory leaked should never grow too much. [screen retain]; } + jfloat scale = (jfloat)GetScreenScaleFactor(screen); jscreen = (jobject)(*env)->NewObject(env, jScreenClass, screenInit, ptr_to_jlong(screen), (jint)NSBitsPerPixelFromDepth([screen depth]), (jint)[screen frame].origin.x, (jint)(primaryFrame.size.height - [screen frame].size.height - [screen frame].origin.y), (jint)[screen frame].size.width, (jint)[screen frame].size.height, + (jint)[screen frame].origin.x, + (jint)(primaryFrame.size.height - [screen frame].size.height - [screen frame].origin.y), + (jint)[screen frame].size.width, + (jint)[screen frame].size.height, + (jint)[screen visibleFrame].origin.x, (jint)(primaryFrame.size.height - [screen visibleFrame].size.height - [screen visibleFrame].origin.y), (jint)[screen visibleFrame].size.width, (jint)[screen visibleFrame].size.height, (jint)resolution.width, (jint)resolution.height, ! 1.0f, 1.0f, ! scale, scale); GLASS_CHECK_EXCEPTION(env); } return jscreen;