GUI: detect UI scale factor when moving window
This commit is contained in:
parent
9caa2f38f4
commit
a882d7bcf2
6 changed files with 107 additions and 25 deletions
|
|
@ -20,7 +20,28 @@
|
|||
#include <Cocoa/Cocoa.h>
|
||||
#include "macstuff.h"
|
||||
|
||||
double getMacDPIScale() {
|
||||
CGFloat val=[[NSScreen mainScreen] backingScaleFactor];
|
||||
double getMacDPIScale(void* sysWin, unsigned char isUIKit) {
|
||||
NSScreen* screen=nil;
|
||||
if (sysWin!=NULL) {
|
||||
if (isUIKit) {
|
||||
UIWindow* win=(UIWindow*)sysWin;
|
||||
UIWindowScene* winScene=[win windowScene];
|
||||
if (winScene!=nil) {
|
||||
UIScreen* winScreen=[winScene screen];
|
||||
CGFloat ret=[winScreen scale];
|
||||
return (double)ret;
|
||||
}
|
||||
} else {
|
||||
NSWindow* win=(NSWindow*)sysWin;
|
||||
screen=[win screen];
|
||||
}
|
||||
}
|
||||
if (screen==nil) {
|
||||
screen=[NSScreen mainScreen];
|
||||
}
|
||||
if (screen==nil) {
|
||||
return 1.0;
|
||||
}
|
||||
CGFloat val=[screen backingScaleFactor];
|
||||
return (double)val;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue