From 34f188d09d8575484425b3f4728f1d84bd9f078e Mon Sep 17 00:00:00 2001 From: JustZht Date: Tue, 21 May 2019 17:02:16 +0800 Subject: [PATCH 1/3] Add Scale Factor Support to OSX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Basic support for NSScreen.backingScaleFactor. Notice this solution don’t subscribe to NSScreen change (didChangeScreenProfileNotification), thus won’t respond to the screen change. --- Runtime/Plugins/platform/osx.meta | 8 ++ .../platform/osx/NSScreenUtils.bundle.meta | 92 ++++++++++++++ .../NSScreenUtils.bundle/Contents/Info.plist | 44 +++++++ .../Contents/MacOS/NSScreenUtils | Bin 0 -> 27760 bytes .../Contents/_CodeSignature/CodeResources | 115 ++++++++++++++++++ Runtime/Plugins/platform/osx/NSScreenUtils.mm | 25 ++++ .../platform/osx/NSScreenUtils.mm.meta | 107 ++++++++++++++++ Runtime/engine/DisplayMetrics.cs | 10 ++ 8 files changed, 401 insertions(+) create mode 100644 Runtime/Plugins/platform/osx.meta create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle.meta create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist create mode 100755 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature/CodeResources create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.mm create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.mm.meta diff --git a/Runtime/Plugins/platform/osx.meta b/Runtime/Plugins/platform/osx.meta new file mode 100644 index 00000000..04943a79 --- /dev/null +++ b/Runtime/Plugins/platform/osx.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b500c0b9b52b448c1a6de52cc372d600 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle.meta new file mode 100644 index 00000000..5938f39d --- /dev/null +++ b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 649603fe670c342cda3430292a760c41 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 1 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 1 + Exclude Linux: 1 + Exclude Linux64: 1 + Exclude LinuxUniversal: 1 + Exclude OSXUniversal: 0 + Exclude WebGL: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist new file mode 100644 index 00000000..d9bd6bb3 --- /dev/null +++ b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist @@ -0,0 +1,44 @@ + + + + + BuildMachineOSBuild + 18F132 + CFBundleDevelopmentRegion + en + CFBundleExecutable + NSScreenUtils + CFBundleIdentifier + com.JustZht.Unity.Cocoa.NSScreenUtils + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + NSScreenUtils + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 10E1001 + DTPlatformVersion + GM + DTSDKBuild + 18E219 + DTSDKName + macosx10.14 + DTXcode + 1020 + DTXcodeBuild + 10E1001 + NSHumanReadableCopyright + Copyright © 2019 Justin Fincher. All rights reserved. + + diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils new file mode 100755 index 0000000000000000000000000000000000000000..afab8a58462e090da17f3797bde7d744b05f471c GIT binary patch literal 27760 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 WGC(pwGC(pwGC(pwGVuS(z<&Xi&zWEV literal 0 HcmV?d00001 diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature/CodeResources b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature/CodeResources new file mode 100644 index 00000000..d5d0fd74 --- /dev/null +++ b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature/CodeResources @@ -0,0 +1,115 @@ + + + + + files + + files2 + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.mm b/Runtime/Plugins/platform/osx/NSScreenUtils.mm new file mode 100644 index 00000000..92c96e5e --- /dev/null +++ b/Runtime/Plugins/platform/osx/NSScreenUtils.mm @@ -0,0 +1,25 @@ +// +// NSScreenUtils.m +// NSScreenUtils +// +// Created by Justin Fincher on 21/5/2019. +// Copyright © 2019 Justin Fincher. All rights reserved. +// + +#import +#import + +float OSXDeviceScaleFactor() +{ + NSArray *ar = [NSApp orderedWindows]; + NSWindow *window = [ar objectAtIndex:0]; + NSScreen *screen = window.screen; + if (!screen) { + screen = [NSScreen mainScreen]; + } + if (screen) + { + return screen.backingScaleFactor; + } + return 1; +} diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.mm.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.mm.meta new file mode 100644 index 00000000..93e4c8e9 --- /dev/null +++ b/Runtime/Plugins/platform/osx/NSScreenUtils.mm.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 8e71f2a7b60cc49f4a685c05a6457d87 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 1 + Exclude Linux: 1 + Exclude Linux64: 1 + Exclude LinuxUniversal: 1 + Exclude OSXUniversal: 1 + Exclude WebGL: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/engine/DisplayMetrics.cs b/Runtime/engine/DisplayMetrics.cs index dc845237..ce1b796c 100644 --- a/Runtime/engine/DisplayMetrics.cs +++ b/Runtime/engine/DisplayMetrics.cs @@ -68,6 +68,10 @@ public float devicePixelRatio { #if UNITY_IOS this._devicePixelRatio = IOSDeviceScaleFactor(); #endif + +#if UNITY_STANDALONE_OSX + this._devicePixelRatio = OSXDeviceScaleFactor(); +#endif if (this._devicePixelRatio <= 0) { this._devicePixelRatio = 1; @@ -188,5 +192,11 @@ static float AndroidDevicePixelRatio() { [DllImport("__Internal")] static extern viewMetrics IOSGetViewportPadding(); #endif + +#if UNITY_STANDALONE_OSX + [DllImport("NSScreenUtils")] + static extern float OSXDeviceScaleFactor(); +#endif + } } \ No newline at end of file From 17d72b402d16d638dd8cf29deb50da2282824279 Mon Sep 17 00:00:00 2001 From: JustZht Date: Fri, 24 May 2019 12:50:40 +0800 Subject: [PATCH 2/3] Add working onWindowDidChangeBackingProperties support for UIWidgets --- PluginSouce.meta | 8 + PluginSouce/osx.meta | 8 + PluginSouce/osx/NSScreenUtils.meta | 8 + .../osx/NSScreenUtils/NSScreenUtils.meta | 8 + .../NSScreenUtils.xcodeproj.meta | 8 + .../NSScreenUtils.xcodeproj/project.pbxproj | 329 ++++++++++++++++++ .../project.pbxproj.meta | 7 + .../project.xcworkspace.meta | 8 + .../contents.xcworkspacedata | 7 + .../contents.xcworkspacedata.meta | 7 + .../project.xcworkspace/xcshareddata.meta | 8 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../IDEWorkspaceChecks.plist.meta | 7 + .../project.xcworkspace/xcuserdata.meta | 8 + .../xcuserdata/fincher.xcuserdatad.meta | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 36706 bytes .../UserInterfaceState.xcuserstate.meta | 7 + .../NSScreenUtils.xcodeproj/xcuserdata.meta | 8 + .../xcuserdata/fincher.xcuserdatad.meta | 8 + .../fincher.xcuserdatad/xcschemes.meta | 8 + .../xcschemes/xcschememanagement.plist | 14 + .../xcschemes/xcschememanagement.plist.meta | 7 + .../NSScreenUtils/NSScreenUtils/Info.plist | 26 ++ .../NSScreenUtils/Info.plist.meta | 7 + .../NSScreenUtils/NSScreenUtils.h | 24 ++ .../NSScreenUtils/NSScreenUtils.h.meta | 27 ++ .../NSScreenUtils/NSScreenUtils.m | 15 + .../NSScreenUtils/NSScreenUtils.m.meta | 37 ++ .../NSScreenUtils/NSWindow+NSScreenUtils.h | 17 + .../NSWindow+NSScreenUtils.h.meta | 27 ++ .../NSScreenUtils/NSWindow+NSScreenUtils.m | 81 +++++ .../NSWindow+NSScreenUtils.m.meta | 37 ++ .../NSScreenUtils/PrefixHeader.pch | 17 + .../NSScreenUtils/PrefixHeader.pch.meta | 7 + .../NSScreenUtils/UIWidgetsMessageManager.h | 18 + .../UIWidgetsMessageManager.h.meta | 27 ++ .../NSScreenUtils/UIWidgetsMessageManager.m | 55 +++ .../UIWidgetsMessageManager.m.meta | 37 ++ .../platform/osx/NSScreenUtils.bundle.meta | 24 +- .../osx/NSScreenUtils.bundle/Contents.meta | 8 + .../Contents/Info.plist.meta | 7 + .../NSScreenUtils.bundle/Contents/MacOS.meta | 8 + .../Contents/MacOS/NSScreenUtils | Bin 27760 -> 38960 bytes .../Contents/MacOS/NSScreenUtils.meta | 7 + .../Contents/_CodeSignature.meta | 8 + .../_CodeSignature/CodeResources.meta | 7 + .../platform/osx/NSScreenUtils.mm.meta | 107 ------ Runtime/engine/DisplayMetrics.cs | 1 + Runtime/engine/UIWidgetsMessageManager.cs | 34 +- 49 files changed, 1039 insertions(+), 120 deletions(-) create mode 100644 PluginSouce.meta create mode 100644 PluginSouce/osx.meta create mode 100644 PluginSouce/osx/NSScreenUtils.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h.meta rename Runtime/Plugins/platform/osx/NSScreenUtils.mm => PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m (62%) create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h.meta create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m create mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m.meta create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents.meta create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist.meta create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS.meta create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils.meta create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature.meta create mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature/CodeResources.meta delete mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.mm.meta diff --git a/PluginSouce.meta b/PluginSouce.meta new file mode 100644 index 00000000..e8d11990 --- /dev/null +++ b/PluginSouce.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b0f43e0deba341778b06307813aa7df +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx.meta b/PluginSouce/osx.meta new file mode 100644 index 00000000..02ce6799 --- /dev/null +++ b/PluginSouce/osx.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d3cf69799f9e6448fa43b334eeed26c2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils.meta b/PluginSouce/osx/NSScreenUtils.meta new file mode 100644 index 00000000..2a901c83 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 30fb909ac9bce40f48bc5b5be9fce0c7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.meta new file mode 100644 index 00000000..bf9022e0 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7b51ed4cf0f74abc970789f8eac5788 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj.meta new file mode 100644 index 00000000..733305c2 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37f7b3d7fe8874417871ad060ce5903a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj new file mode 100644 index 00000000..c4495b82 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj @@ -0,0 +1,329 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 0DB63CA222978E91007AFA02 /* UIWidgetsMessageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DB63CA022978E91007AFA02 /* UIWidgetsMessageManager.m */; }; + 0DB63CB32297A761007AFA02 /* NSWindow+NSScreenUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DB63CB22297A761007AFA02 /* NSWindow+NSScreenUtils.m */; }; + 0DCC9CC92293F026000AA521 /* NSScreenUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DCC9CC82293F026000AA521 /* NSScreenUtils.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0DB63CA022978E91007AFA02 /* UIWidgetsMessageManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIWidgetsMessageManager.m; sourceTree = ""; }; + 0DB63CA122978E91007AFA02 /* UIWidgetsMessageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIWidgetsMessageManager.h; sourceTree = ""; }; + 0DB63CAE22979CA3007AFA02 /* PrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = ""; }; + 0DB63CAF22979D4C007AFA02 /* NSScreenUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSScreenUtils.h; sourceTree = ""; }; + 0DB63CB12297A761007AFA02 /* NSWindow+NSScreenUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSWindow+NSScreenUtils.h"; sourceTree = ""; }; + 0DB63CB22297A761007AFA02 /* NSWindow+NSScreenUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSWindow+NSScreenUtils.m"; sourceTree = ""; }; + 0DCC9CBF2293F015000AA521 /* NSScreenUtils.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NSScreenUtils.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 0DCC9CC22293F015000AA521 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0DCC9CC82293F026000AA521 /* NSScreenUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSScreenUtils.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0DCC9CBC2293F015000AA521 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0DB63CA322979543007AFA02 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; + 0DCC9CB62293F015000AA521 = { + isa = PBXGroup; + children = ( + 0DCC9CC12293F015000AA521 /* NSScreenUtils */, + 0DCC9CC02293F015000AA521 /* Products */, + 0DB63CA322979543007AFA02 /* Frameworks */, + ); + sourceTree = ""; + }; + 0DCC9CC02293F015000AA521 /* Products */ = { + isa = PBXGroup; + children = ( + 0DCC9CBF2293F015000AA521 /* NSScreenUtils.bundle */, + ); + name = Products; + sourceTree = ""; + }; + 0DCC9CC12293F015000AA521 /* NSScreenUtils */ = { + isa = PBXGroup; + children = ( + 0DCC9CC22293F015000AA521 /* Info.plist */, + 0DB63CAE22979CA3007AFA02 /* PrefixHeader.pch */, + 0DB63CA122978E91007AFA02 /* UIWidgetsMessageManager.h */, + 0DB63CA022978E91007AFA02 /* UIWidgetsMessageManager.m */, + 0DB63CAF22979D4C007AFA02 /* NSScreenUtils.h */, + 0DCC9CC82293F026000AA521 /* NSScreenUtils.m */, + 0DB63CB12297A761007AFA02 /* NSWindow+NSScreenUtils.h */, + 0DB63CB22297A761007AFA02 /* NSWindow+NSScreenUtils.m */, + ); + path = NSScreenUtils; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0DCC9CBE2293F015000AA521 /* NSScreenUtils */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0DCC9CC52293F015000AA521 /* Build configuration list for PBXNativeTarget "NSScreenUtils" */; + buildPhases = ( + 0DCC9CBB2293F015000AA521 /* Sources */, + 0DCC9CBC2293F015000AA521 /* Frameworks */, + 0DCC9CBD2293F015000AA521 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = NSScreenUtils; + productName = NSScreenUtils; + productReference = 0DCC9CBF2293F015000AA521 /* NSScreenUtils.bundle */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0DCC9CB72293F015000AA521 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = "Justin Fincher"; + TargetAttributes = { + 0DCC9CBE2293F015000AA521 = { + CreatedOnToolsVersion = 10.2.1; + }; + }; + }; + buildConfigurationList = 0DCC9CBA2293F015000AA521 /* Build configuration list for PBXProject "NSScreenUtils" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 0DCC9CB62293F015000AA521; + productRefGroup = 0DCC9CC02293F015000AA521 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 0DCC9CBE2293F015000AA521 /* NSScreenUtils */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 0DCC9CBD2293F015000AA521 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0DCC9CBB2293F015000AA521 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0DCC9CC92293F026000AA521 /* NSScreenUtils.m in Sources */, + 0DB63CB32297A761007AFA02 /* NSWindow+NSScreenUtils.m in Sources */, + 0DB63CA222978E91007AFA02 /* UIWidgetsMessageManager.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 0DCC9CC32293F015000AA521 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 0DCC9CC42293F015000AA521 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + }; + name = Release; + }; + 0DCC9CC62293F015000AA521 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 9QJ8M25J77; + GCC_PREFIX_HEADER = NSScreenUtils/PrefixHeader.pch; + INFOPLIST_FILE = NSScreenUtils/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + MACOSX_DEPLOYMENT_TARGET = 10.12; + PRODUCT_BUNDLE_IDENTIFIER = com.JustZht.Unity.Cocoa.NSScreenUtils; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 0DCC9CC72293F015000AA521 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 9QJ8M25J77; + GCC_PREFIX_HEADER = NSScreenUtils/PrefixHeader.pch; + INFOPLIST_FILE = NSScreenUtils/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + MACOSX_DEPLOYMENT_TARGET = 10.12; + PRODUCT_BUNDLE_IDENTIFIER = com.JustZht.Unity.Cocoa.NSScreenUtils; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0DCC9CBA2293F015000AA521 /* Build configuration list for PBXProject "NSScreenUtils" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0DCC9CC32293F015000AA521 /* Debug */, + 0DCC9CC42293F015000AA521 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0DCC9CC52293F015000AA521 /* Build configuration list for PBXNativeTarget "NSScreenUtils" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0DCC9CC62293F015000AA521 /* Debug */, + 0DCC9CC72293F015000AA521 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0DCC9CB72293F015000AA521 /* Project object */; +} diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj.meta new file mode 100644 index 00000000..4c9b8135 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1e5036e0db0244eefa916cce9b72e3d2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace.meta new file mode 100644 index 00000000..0dcc1f18 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35daa91b0e18d462fbd13f835b3fa260 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..e77081c0 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata.meta new file mode 100644 index 00000000..25a16191 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b0d6ad5043b124862b852124195ef1aa +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata.meta new file mode 100644 index 00000000..5b1e7db7 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d5e7b5890f89c402bb8a283a126e7997 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.meta new file mode 100644 index 00000000..eb555265 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8618229f3a68a49ae8bc7fd561751fdd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata.meta new file mode 100644 index 00000000..cc08b526 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 702d41e0512454162952a526f02a5bc9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad.meta new file mode 100644 index 00000000..76ef9a19 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ee7fbc115e4f34a2193cfffd8f856eec +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..294280bad15ee63afaa29fc105d2d5f185eef04d GIT binary patch literal 36706 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 literal 0 HcmV?d00001 diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate.meta new file mode 100644 index 00000000..91a0142a --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1fbb6dc5384a94ee0b341ce9b10f4604 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata.meta new file mode 100644 index 00000000..10a7f3cd --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b2aa9101905314d2593331b170d5613c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad.meta new file mode 100644 index 00000000..ee85bc86 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d65a0a84ac1dd434e907fb437e166daf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes.meta new file mode 100644 index 00000000..38d76822 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 871009a9902b04c13ae41c4f44fd644b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..bcf83a2f --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + NSScreenUtils.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist.meta new file mode 100644 index 00000000..a328b059 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b9dd7c706e01a45b5bb46c20adc3a31c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist new file mode 100644 index 00000000..4186e91e --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + NSHumanReadableCopyright + Copyright © 2019 Justin Fincher. All rights reserved. + NSPrincipalClass + + + diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist.meta new file mode 100644 index 00000000..4e2e3080 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 074212a30c39e4aac9b138699431bece +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h new file mode 100644 index 00000000..d270db25 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h @@ -0,0 +1,24 @@ +// +// NSScreenUtils.h +// NSScreenUtils +// +// Created by Justin Fincher on 24/5/2019. +// Copyright © 2019 Justin Fincher. All rights reserved. +// + +#ifndef NSScreenUtils_h +#define NSScreenUtils_h + +typedef void (* UnityOSXCallback)(const char *name,const char *method,const char *arg); + +#ifdef __cplusplus +extern "C" { +#endif + void LinkUnityOSXCallback(UnityOSXCallback callback); + void UnityOSXSendMessage(const char *name,const char *method,const char *arg); +#ifdef __cplusplus +} +#endif + + +#endif /* NSScreenUtils_h */ diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h.meta new file mode 100644 index 00000000..c8ebbb6f --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: e9ef1660ddc204da9b9555665bd2a892 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.mm b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m similarity index 62% rename from Runtime/Plugins/platform/osx/NSScreenUtils.mm rename to PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m index 92c96e5e..9d9aae6a 100644 --- a/Runtime/Plugins/platform/osx/NSScreenUtils.mm +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m @@ -8,6 +8,21 @@ #import #import +#import "NSScreenUtils.h" + +static UnityOSXCallback callback = NULL; + +void LinkUnityOSXCallback(UnityOSXCallback externalCallback) +{ + callback = externalCallback; +} + +void UnityOSXSendMessage(const char *name,const char *method,const char *arg) +{ + if (callback) { + callback(name,method,arg); + } +} float OSXDeviceScaleFactor() { diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m.meta new file mode 100644 index 00000000..1d199c9d --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 3ee51eff1426a4915902e82cd080ca2c +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h new file mode 100644 index 00000000..e0631c35 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h @@ -0,0 +1,17 @@ +// +// NSWindow+NSScreenUtils.h +// NSScreenUtils +// +// Created by Justin Fincher on 24/5/2019. +// Copyright © 2019 Justin Fincher. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSWindow (NSScreenUtils) + +@end + +NS_ASSUME_NONNULL_END diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h.meta new file mode 100644 index 00000000..4feedc1d --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: efacb2d7d645146a7b93b71bc30f7526 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m new file mode 100644 index 00000000..6846686d --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m @@ -0,0 +1,81 @@ +// +// NSWindow+NSScreenUtils.m +// NSScreenUtils +// +// Created by Justin Fincher on 24/5/2019. +// Copyright © 2019 Justin Fincher. All rights reserved. +// + +#import "NSWindow+NSScreenUtils.h" +#import +#import "UIWidgetsMessageManager.h" + +@implementation NSWindow (NSScreenUtils) + ++ (void)load { + NSLog(@"NSWindow + NSScreenUtils Load"); + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^ + { + NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier]; + if ([bundleIdentifier isEqualToString:@"com.unity3d.UnityEditor5.x"]) { + } + else + { + [UIWidgetsMessageManager getInstance]; + NSLog(@"NSWindow + NSScreenUtils Enabled for %@",bundleIdentifier); + [self exchangeClassMethodMethod:@selector(initWithContentRect:styleMask:backing:defer:) with:@selector(utils_initWithContentRect:styleMask:backing:defer:)]; + [self exchangeClassMethodMethod:@selector(initWithContentRect:styleMask:backing:defer:screen:) with:@selector(utils_initWithContentRect:styleMask:backing:defer:screen:)]; + } + }); +} + ++ (void)exchangeClassMethodMethod:(SEL)originalSelector with:(SEL)swizzledSelector +{ + Class class = object_getClass((id)self); + Method originalMethod = class_getClassMethod(class, originalSelector); + Method swizzledMethod = class_getClassMethod(class, swizzledSelector); + BOOL didAddMethod = class_addMethod(class, + originalSelector, + method_getImplementation(swizzledMethod), + method_getTypeEncoding(swizzledMethod)); + + if (didAddMethod) { + class_replaceMethod(class, + swizzledSelector, + method_getImplementation(originalMethod), + method_getTypeEncoding(originalMethod)); + } else { + method_exchangeImplementations(originalMethod, swizzledMethod); + } +} + +#pragma mark - Method Swizzling + +- (instancetype)utils_initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)style backing:(NSBackingStoreType)backingStoreType defer:(BOOL)flag screen:(NSScreen *)screen +{ + NSWindow * instance = [self utils_initWithContentRect:contentRect styleMask:style backing:backingStoreType defer:flag screen:screen]; + if (instance) { + NSLog(@"utils_initWithContentRect:styleMask:backing:defer:screen:"); + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onWindowDidChangeBackingProperties:) name:NSWindowDidChangeBackingPropertiesNotification object:nil]; + } + return instance; +} +- (instancetype)utils_initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)style backing:(NSBackingStoreType)backingStoreType defer:(BOOL)flag +{ + NSWindow * instance = [self utils_initWithContentRect:contentRect styleMask:style backing:backingStoreType defer:flag]; + if (instance) { + NSLog(@"utils_initWithContentRect:styleMask:backing:defer:"); + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onWindowDidChangeBackingProperties:) name:NSWindowDidChangeBackingPropertiesNotification object:nil]; + } + return instance; +} + +#pragma mark - Callback + +- (void)onWindowDidChangeBackingProperties:(NSNotification *)notification +{ + NSLog(@"onWindowDidChangeBackingProperties"); + [[UIWidgetsMessageManager getInstance] UIWidgetsMethodMessage:@"ViewportMatricsChanged" :@"UIWidgetViewController.keyboardChanged" :[NSArray array]]; +} +@end diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m.meta new file mode 100644 index 00000000..8d9884d9 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: ab049ac2dac6f45e8b91a121cdc93f7a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch new file mode 100644 index 00000000..a6ea9b7e --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch @@ -0,0 +1,17 @@ +// +// PrefixHeader.pch +// NSScreenUtils +// +// Created by Justin Fincher on 24/5/2019. +// Copyright © 2019 Justin Fincher. All rights reserved. +// + +#ifndef PrefixHeader_pch +#define PrefixHeader_pch + +// Include any system framework and library headers here that should be included in all compilation units. +// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. + + + +#endif /* PrefixHeader_pch */ diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch.meta new file mode 100644 index 00000000..ff80e479 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5790e4027ed5b4a9684a1726e55fd796 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h new file mode 100644 index 00000000..ec824e89 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h @@ -0,0 +1,18 @@ +#import + +@interface UIWidgetsMessageManager : NSObject + +@property (nonatomic, retain) NSString *someProperty; + ++ (id) getInstance; +- (void) UIWidgetsMethodMessage:(NSString *)channel :(NSString*) method :(NSArray *)args; + +#ifdef __cplusplus +extern "C" { +#endif + void UIWidgetsMessageSetObjectName(const char *name); +#ifdef __cplusplus +} +#endif + +@end diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h.meta new file mode 100644 index 00000000..a2956b77 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 678202a350b04494d9d2da7cb36646f0 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m new file mode 100644 index 00000000..a8441a37 --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m @@ -0,0 +1,55 @@ +#include "UIWidgetsMessageManager.h" + +static NSString *unityObjectName = NULL; + +@interface UIWidgetsMessageManager() + +@end + +void UnityOSXSendMessage(const char *name,const char *method,const char *arg); + +@implementation UIWidgetsMessageManager + +#pragma mark Singleton Methods + ++ (id)getInstance { + static UIWidgetsMessageManager *sharedMyManager = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedMyManager = [[self alloc] init]; + }); + return sharedMyManager; +} + +- (id)init { + if (self = [super init]) + { + + } + return self; +} + +#pragma mark Message + +void UIWidgetsMessageSetObjectName(const char *name) +{ + NSLog(@"UIWidgetsMessageSetObjectName %@",[NSString stringWithUTF8String:name]); + unityObjectName = [NSString stringWithUTF8String:name]; +} + +- (void)UIWidgetsMethodMessage:(NSString *)channel :(NSString *)method :(NSArray *)args +{ + NSError *error; + NSDictionary* dict = @{ + @"channel": channel, + @"method": method, + @"args": args + }; + + NSData* data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error]; + NSString* text = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + UnityOSXSendMessage([unityObjectName UTF8String], "OnUIWidgetsMethodMessage", [text UTF8String]); +} + +@end + diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m.meta b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m.meta new file mode 100644 index 00000000..c0439fca --- /dev/null +++ b/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: a412088e1a3814b2691385ca5029ae84 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle.meta index 5938f39d..4071bf7b 100644 --- a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle.meta +++ b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle.meta @@ -19,13 +19,13 @@ PluginImporter: settings: Exclude Android: 1 Exclude Editor: 1 - Exclude Linux: 1 - Exclude Linux64: 1 - Exclude LinuxUniversal: 1 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 Exclude OSXUniversal: 0 Exclude WebGL: 1 - Exclude Win: 1 - Exclude Win64: 1 + Exclude Win: 0 + Exclude Win64: 0 - first: Android: Android second: @@ -60,15 +60,21 @@ PluginImporter: - first: Standalone: Linux second: - enabled: 0 + enabled: 1 settings: CPU: x86 - first: Standalone: Linux64 second: - enabled: 0 + enabled: 1 settings: CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU - first: Standalone: OSXUniversal second: @@ -78,13 +84,13 @@ PluginImporter: - first: Standalone: Win second: - enabled: 0 + enabled: 1 settings: CPU: AnyCPU - first: Standalone: Win64 second: - enabled: 0 + enabled: 1 settings: CPU: AnyCPU userData: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents.meta new file mode 100644 index 00000000..b038cae7 --- /dev/null +++ b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50538da1f1eb943219a01c4a98807612 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist.meta new file mode 100644 index 00000000..76c9a2d5 --- /dev/null +++ b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 44853496ea9bb4c2cb86a943e22fd5ef +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS.meta new file mode 100644 index 00000000..199f30c4 --- /dev/null +++ b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d73aeb6d25e8242a292c6fd818f70d4e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils index afab8a58462e090da17f3797bde7d744b05f471c..2211a84ad306250a47d74f6d21e1b9b3386b829c 100755 GIT binary patch literal 38960 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
nt#mR4?*_5gkNXy?<} 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 T4R|!*(SSz-9u54rYT$nWBc9=j delta 2361 zcmah~2~d+q6yA_+hQM{%)qpcaQMup;qSWwfq`8OU+JAIS)zy03(-rIe<`~TU! z+v)B_R$SLW&oftqSZsul8z>L-vD|OpK$Y|FEPrvOzAmjvXVU zBnOuylb}Oj^I*Dm_Gkw&kVbg_LgZjRXH;a&kdg$yT$0T1iu;^L@yAmpIVvIqGretg z5%@}IG=>Qx2@jujNf8zgNh0{=^1$X{gIlCgK=ZPxrMM!C!DJcqJnfDMgiInb5-@ki z4QvI$RB8nXkwZ8H7Jdk>5h9ym1prGxUQpl{DCh}eG9@3>ehEo;;79JDuH?v_t>J*k z?Zflk-9&uJ;c!=Wf^=6xc}?{7uX_`KCjccm$lJrNWNdGe-NtIEcOTD+ivkas)*@hL zd5vPS93r8h_V`GI%<`6;s0deV@^m&X>lVq^INyVU@-^^F41hl54IMWAP2y_ku)2U1 z|Jra|-XOaxUqdu;kO|rNZIp8ribLEAanQtTj`&wJ-p0f&@?}dch`T~W;2P)i5KRaA zK?mJH>FezAY73ME?YHsOBw){7PWpmrEReU>kvEZrw|fN}YasN1>mz&8A-fDABtFz| zOulvsl<2aGUtlZ2;V*qsuUYyYeP}XLu@Z4h!`rpNDY}Au8qK-@?+93+P+BfLe$k38>>GUq<~O zQ@ftpE!-9#%_ikIvPh%VBhy7#qg_~Le~EIcLRwLQOm6s&c(_NlnJfmO${2ilY!F^Dj%O4( zrl~UM^jd{MuUk}vC=KqRa+)G9O}n^6tyQR1<=S+W8fYkpjm#lX$Nm7j9#jMBkS-X! zjIRJ*z-A%#folbXLryFX9z1VyO+mf~AhbL1ci z#9)$Umo#_+|2fVbf)@|L^#~=9gy-LtVL%{%0`!<9XaLD%5jocrDubzB1hLe7J zb&Pc6*|@1i@e{)$^4a)9)rkKmb*kx?f??=pL3o_g#4 ziAkpGd$z@W;U}FnR{yxiY??E1UBQ8zbXjL=>jh1VX_Mmogu#hFw27KC`@O0xnOBQYsQxJZRM=w(XF4T^_S{&9*2)UV?FsZZ_dy6dPN3?@c2bmrm+pyw9 z-;&QB?OYvK?SAV~Xz7^dS)GX)O_s|$6#Iqop-D@V4;(); } -#if UNITY_IOS || UNITY_ANDROID || UNITY_WEBGL +#if UNITY_IOS || UNITY_ANDROID || UNITY_WEBGL || UNITY_STANDALONE_OSX string _lastObjectName; #endif +#if UNITY_STANDALONE_OSX + public delegate void UnityOSXCallbackDelegate(IntPtr name, IntPtr method, IntPtr arg); +#endif + + void Awake() { +#if UNITY_STANDALONE_OSX + LinkUnityOSXCallback((namePtr, methodPtr, argPtr) => { + string name = Marshal.PtrToStringAuto(namePtr); + string method = Marshal.PtrToStringAuto(methodPtr); + string arg = Marshal.PtrToStringAuto(argPtr); + + GameObject foundGameObject = GameObject.Find(name); + if (foundGameObject != null) { + foundGameObject.SendMessage(method,arg); + } + }); +#endif + } + void OnEnable() { D.assert(_instance == null, () => "Only one instance of UIWidgetsMessageManager should exists"); _instance = this; @@ -48,7 +68,7 @@ void Update() { } void UpdateNameIfNeed() { -#if UNITY_IOS || UNITY_ANDROID || UNITY_WEBGL +#if UNITY_IOS || UNITY_ANDROID || UNITY_WEBGL || UNITY_STANDALONE_OSX var name = this.gameObject.name; if (name != this._lastObjectName) { @@ -93,7 +113,6 @@ void OnUIWidgetsMethodMessage(string message) { [DllImport("__Internal")] static extern void UIWidgetsMessageSetObjectName(string objectName); #elif UNITY_ANDROID - static void UIWidgetsMessageSetObjectName(string objectName) { using ( AndroidJavaClass managerClass = new AndroidJavaClass("com.unity.uiwidgets.plugin.UIWidgetsMessageManager") @@ -105,7 +124,14 @@ static void UIWidgetsMessageSetObjectName(string objectName) { } } } +#elif UNITY_STANDALONE_OSX + [DllImport("NSScreenUtils")] + static extern void UIWidgetsMessageSetObjectName(string objectName); + + [DllImport("NSScreenUtils")] + static extern void LinkUnityOSXCallback( + [MarshalAs(UnmanagedType.FunctionPtr)] UnityOSXCallbackDelegate osxCallbackDelegate); #endif - + } } \ No newline at end of file From 7e82c2f75bbd8bd1313fb822cb0ad3725ee21c12 Mon Sep 17 00:00:00 2001 From: JustZht Date: Fri, 24 May 2019 17:05:40 +0800 Subject: [PATCH 3/3] Add comments on how macOS NSScreenUtil plugin works --- PluginSouce.meta | 8 ------- PluginSouce/osx.meta | 8 ------- PluginSouce/osx/NSScreenUtils.meta | 8 ------- .../UserInterfaceState.xcuserstate | Bin 36706 -> 0 bytes .../osx/.NSScreenUtils}/NSScreenUtils.meta | 0 .../NSScreenUtils.xcodeproj.meta | 0 .../NSScreenUtils.xcodeproj/project.pbxproj | 0 .../project.pbxproj.meta | 0 .../project.xcworkspace.meta | 0 .../contents.xcworkspacedata | 0 .../contents.xcworkspacedata.meta | 0 .../project.xcworkspace/xcshareddata.meta | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../IDEWorkspaceChecks.plist.meta | 0 .../project.xcworkspace/xcuserdata.meta | 0 .../xcuserdata/fincher.xcuserdatad.meta | 0 .../UserInterfaceState.xcuserstate | Bin 0 -> 40213 bytes .../UserInterfaceState.xcuserstate.meta | 0 .../NSScreenUtils.xcodeproj/xcuserdata.meta | 0 .../xcuserdata/fincher.xcuserdatad.meta | 0 .../fincher.xcuserdatad/xcschemes.meta | 0 .../xcschemes/xcschememanagement.plist | 0 .../xcschemes/xcschememanagement.plist.meta | 0 .../.NSScreenUtils}/NSScreenUtils/Info.plist | 0 .../NSScreenUtils/Info.plist.meta | 0 .../NSScreenUtils/NSScreenUtils.h | 15 +++++++++++++ .../NSScreenUtils/NSScreenUtils.h.meta | 0 .../NSScreenUtils/NSScreenUtils.m | 7 ++++++ .../NSScreenUtils/NSScreenUtils.m.meta | 0 .../NSScreenUtils/NSWindow+NSScreenUtils.h | 4 ++++ .../NSWindow+NSScreenUtils.h.meta | 0 .../NSScreenUtils/NSWindow+NSScreenUtils.m | 12 +++++++++++ .../NSWindow+NSScreenUtils.m.meta | 0 .../NSScreenUtils/PrefixHeader.pch | 0 .../NSScreenUtils/PrefixHeader.pch.meta | 0 .../NSScreenUtils/UIWidgetsMessageManager.h | 20 ++++++++++++++++++ .../UIWidgetsMessageManager.h.meta | 0 .../NSScreenUtils/UIWidgetsMessageManager.m | 0 .../UIWidgetsMessageManager.m.meta | 0 .../osx/NSScreenUtils.bundle/Contents.meta | 8 ------- .../Contents/Info.plist.meta | 7 ------ .../NSScreenUtils.bundle/Contents/MacOS.meta | 8 ------- .../Contents/MacOS/NSScreenUtils | Bin 38960 -> 39024 bytes .../Contents/MacOS/NSScreenUtils.meta | 7 ------ .../Contents/_CodeSignature.meta | 8 ------- .../_CodeSignature/CodeResources.meta | 7 ------ Runtime/engine/DisplayMetrics.cs | 1 + Runtime/engine/UIWidgetsMessageManager.cs | 5 +++++ 48 files changed, 64 insertions(+), 69 deletions(-) delete mode 100644 PluginSouce.meta delete mode 100644 PluginSouce/osx.meta delete mode 100644 PluginSouce/osx/NSScreenUtils.meta delete mode 100644 PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.pbxproj (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.pbxproj.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.xcworkspace.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad.meta (100%) create mode 100644 Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/xcuserdata.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/Info.plist (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/Info.plist.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/NSScreenUtils.h (57%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/NSScreenUtils.h.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/NSScreenUtils.m (90%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/NSScreenUtils.m.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/NSWindow+NSScreenUtils.h (79%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/NSWindow+NSScreenUtils.h.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/NSWindow+NSScreenUtils.m (93%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/NSWindow+NSScreenUtils.m.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/PrefixHeader.pch (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/PrefixHeader.pch.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/UIWidgetsMessageManager.h (50%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/UIWidgetsMessageManager.h.meta (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/UIWidgetsMessageManager.m (100%) rename {PluginSouce/osx/NSScreenUtils => Runtime/Plugins/platform/osx/.NSScreenUtils}/NSScreenUtils/UIWidgetsMessageManager.m.meta (100%) delete mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents.meta delete mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist.meta delete mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS.meta delete mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils.meta delete mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature.meta delete mode 100644 Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature/CodeResources.meta diff --git a/PluginSouce.meta b/PluginSouce.meta deleted file mode 100644 index e8d11990..00000000 --- a/PluginSouce.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1b0f43e0deba341778b06307813aa7df -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/PluginSouce/osx.meta b/PluginSouce/osx.meta deleted file mode 100644 index 02ce6799..00000000 --- a/PluginSouce/osx.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d3cf69799f9e6448fa43b334eeed26c2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils.meta b/PluginSouce/osx/NSScreenUtils.meta deleted file mode 100644 index 2a901c83..00000000 --- a/PluginSouce/osx/NSScreenUtils.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 30fb909ac9bce40f48bc5b5be9fce0c7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate b/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 294280bad15ee63afaa29fc105d2d5f185eef04d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36706 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 diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.pbxproj.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/contents.xcworkspacedata.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad.meta diff --git a/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..26fd03157f3cd04640f265d832041cbae499706b GIT binary patch literal 40213 zcmdSC30zgh`#*kW&VE(AARs%JeZ6omJ18it;sPj(Ya+r0Q8w=dck7Iqm2GBfmYIU6 zS*Dq(S(av&m1e1_En1qHnJtzrR+hhK&f&6z_UZfjf4<+BfAPY(=ggUT<~`3m^UTci zJTs}GrrOqMGJU`x1~V+fF+3ya#^}b54xDbW+N$g8MhDhUnqnz$w2cWYvzAY;hTBDf zjr9#q3|hEmizEJn5gCc;!#Fc8Oav3j7?~(0nlUkECWeV+;+S|QlgVPTnH**iGnkpp zC=6llX6|F|XBIOLGs~Fe%;U^TW;L^hX=T&CC{N8}kD5BD0Hmg?W|P$GpxQ zVBTU5G4C=*n4`=I<|Ok8bBZ~`oMp~4Uou}amzeLF%gj&A&j=xmSi~V7$w-eJkrV2J zTv1=-h78CL`J*5djKWYPN zLvzqvG!Na27NPsl{pbPoFj|2gLyx1CXf0|*>(Ey8Jlcj{K-e*?0sVi3@QNF2-Z}!FS+=_-_0VUW}i> ztMHR}HC}^T@iTZEegSXCui<_8b-W+Hf#1gO<0JSe{uqCPPvNidMf^3sgulU;@vrzg z%dm*;#X7LPSv~8>y0BiXHygwTvoUNe8^^}832X|R&StPf*rDt&b~HPN9m|em$FmdJ zDt0p4z)oYW?CtCwtilp@KD&^8fPIi%&OXYnU|ZRB?0R+s`xLv0-NwGa?q*+M-)7%o z53+~YciAKChwMk}S@v`GJNA3_GW!GjBl`>cC&zOFCvtr_XU>Il<@$1-oIe-NMR1W^ z5|_-SaQ(Rc+(2#+H<&BnMsOp!30x^Rkt^dSag|&xSI14~W^i|KcXA83d$@bKN4TZj zGHyBdD7TV(l56JHaa*|OxUJmt+zxIR_Y${{dy_lB9pnyiA95dYA9J5@r?}JHr`+e< z*W4xU8}1kGSMDnJ8}~c+2X~$C&Fgtb-ihzSJM%8QJMYc=@!`CYH}SE20-wzH=hOK? z{9rzpFXW5(V!nhQ%a`&K`7*wmpTbY&Yxo9!A-{;fkAH|?%rE7a@sIJ3^H1`t`L%p2 z{}jKGf0p0OKhJODckwUrukvs52lzw$`}}eK6aF*)Jb#J*p8uKugTF5DLJy(0;3BvR zUV=dg79xabAy!BhQiV(*R~Rl73MImLVWLneGzg7ClQ2t|E!-~LA>1V_6c!1Kg@=VD z!lS|}p;=fjY!IFjHVe-SJB1g8UBVt=ukf01TsR?|6h0I_57m4?Y_lpmR4~h?oi^Ye~DO`$>%uOBIqu znkLPZW=Zp;+oe0CJEaBElhSHwjnpi)NNc55X`QrQ+8{k8ZIm`iTcoYhPU%JIW$86( zpY)b=R5~VoARU)ZNGGMU(&y4S>09YL>3f-%1zD6OS(bHj54oq@OLmZ*Wf$2~_L76; z5IIy1la2BKd7zvwXULgymYgl;$b;lUxkxUSOXN}VIC+vhMV=}*$ z`5}3+yi{HxKOwJ@pOjnVwelAEIeDx6yu3}`Bkz@8llRH5%Wuo?$nVR?<%(k z{Ehsr{Db_fd{zEaC+Z}ftm~t5*171sbs;*VE>@SQ>!%x_8>q|DqEmV(J(XS?89&CK z319-5ASRdzVM3WO#X;#!(02s=KrlnF55c|!`w{G~j0Wm5td_E=4fWM^jkfgi#_H*1 zjh2d1y+@X%vaG45F}tF=vEEwP2zPBc_15B%!))W#WR}A6$(C9RWT1T=*;JQhu{BoL zl{La}TBGovKSb{rF! z{!I8fCXq>El9?2ypQ2YB6(^;S;=GPYWzv`d%s?hxaUrOHAPYfH5_E!sWE@>yUtx)Y zh8$Ym7}YiZr~*q>nXSoISl?tVw`4-PQhmrjrl-1ymPe^RQA?@*jxDg(QyrwRseuCW z_j0^CK}v`crbH-4 zC0a2nu}Zv>s3a@>lvHJalCEUZ>?bkhOa)_MDw!%~GE>b=VWu)QOf6H#)H4mtG{(x< zm`0|Fna<2$W-8gr7^PCNDt9Q0lt-0y$~NUy@Oa_qyuy4{b?sd7MQSBI zO7+YC&ng-9Pt_~1S}Ln&4z`q4SgcVE<&!(p`jASiSE+uKo!0aQ(AUdVL1NR|VQ|x= z=ophZIm#RrQ)$-jMU^!)L}%95QK@2U13tYVH(G--7w%gtLE=VrDQu})m`|yGrM<9Q zq4m2!*OlPMRDunq`k^-=xPC@mO?_F#-x;b)mR*@Gsdo#rk$f2`7+QmS8lldkdK7exPv^G!Q+=VA9VmFWJrv?9_) z0DYknoK~t|_kV`+zYzB~!@3KDTvSOP`2Q2qyP*D^N_xgE&)Z$_zM>MHRjOZgE3wKA z<^|fa&M(X#On58vD|40kjrm>4Q3ff4mE2b58uKUf7js=1q7*12l#z5Hz@xBzmftp! zwyBE{>XJu5_lM=y`kESb^(3mkveIUORSv&@OjT1|2kQr3-O|wYhn)JFit4(mqjW6_ z2}o*2qB2y;*S_nJ)QWnbp73!{hAG40lc(hCL-eA)hdPx+&d3F(!*nfWRts`w76uGt zw14`*wsipHj=UJB7UY3El|rSc1$iSMrC2FZMio~=*|rH4ZL3$qEOk|lFhiw;1R!aR zlJ7Wpj#f$t3LT$Um{ko+N%eJQRwycjS*SextVQ88m7NMB zih=e(Q79UjkXae4j8n!dx3!{J6o=wbf-*rVQzj~tZmsr6rR|ZXl-k=Powi53_5;*v zKlyqlV9#X@b$e}xpy3+k!vOR07LyU^)63?XTR9?xX` z*?^ux8`0B>q7Y@ia%U^rq++v0S)gKb_pOD^4vNiAhMoo=Wg+x5`pMV3 z+bg*by`kZ;`<) z+8rc*k^L2K><=JeAMA?_*iTunY*3z3Hn!pb9EgK(u=2FBS=pjIcWZ%Uq##8p&)7jS zQ;=eCEd3~(lxNjXzCKysCtzSy8%Tck8u!NoG?3B&q^%UBbO7o3?jSjAw!e~thf)c~KQYFW*`ql~9mIDZA_-jin%s1A5`3yaWP>e)9F6 z_DW8|77dpQz-2e|FkA&a?3M1guuJT()Zl3pms(th>v4m!N7<{qrtE9QRuz{f<#iR8 zH*YOm=2BedDf{iXC=?e0xWGqw12CbVe7%FclK0^IG+Y(|E(fS^&If+!uKn24Ka7`C zP?q3F@KU@?d0Tl$Ij9_J#gD3>Jg&T}g7V(21xhmorA0Yx2W1_A(p@*SS8)^GqCv75 zAbFp5p{)SPk?yR*HP~O-fnTPm?8GnPUHB#CnDT*gTshH-cdMxEQBJC;d~$1{@+L*) zfbyXom3Jts9K?s{NBKzkSpDSdo%P6G&13k4hRkt5<`hNdLqO(qcVyU9`zxpM=M`EN#!}_VXum-^82P#@_tPk5k31K5CD4}c^8_q^3 zSCpTWpOs%)S)&SyN%>U;<@Z|)ltcoy> zHh}U6fWi(2X1R6)W|?DuWjH&M;*!Vavjyx3BI?R_+**c|yz(UL4r{j*jx7%N` zu`?+^jcgM;ot;6DOpuPC9t8DlWoM}n%_XRp29f^Og6K{P(Eo zzNjIzlOp6rl|465_PWm$?C8A8zE08E!|r8YWA_o{Ly#{)27>%r+5IX59U#bGW1yg0 z3!K9goc9O{u!D1yf)fki#Ih$~t}sz~mY_iBV#Do~{g^$ip>v9&6MXYg-2TEj_A83c z7wmcVOZEamp#+5y6i!e?D|=Bz=Np0|HFTnGEp)C>bbcbpXh-K)KnG^zOX;i}X5+Kf zS$V#_rhjorg@$7&G|>PJ$124HnQqXv653wkB(4|0!^xbE>%sLTD2AX|g5p5mZsi;( zJe(teMN?HkC*4x;aBct(=T1;!8$6sBz{C87;^_yL+$X9ZJ3L$f7p%b(MBz!M@Ptx$ zQo66FQ%gv6b0yp; zf(8*Zn4nyOhO}~HxUs-P;|Ur{&~Q3r=G|H-l~a_Ug2U`6!Q%1_W>*2)N(IB%>s-%S zHK3+Zpz?v6ZnBnae_Mt(>~k3uwU#%th%elE#e+z!q;;5arbi% z5Clph@YU$G&}SEO57S;dhM=*OlYGEBwX|SZZedYrc2;gt{>ak8>|xoNMY;KTr9-pF zl0SJ7MS<{l$x96`5fcb?!@ts!WGqlSxP@B_+g)utT7{Oz zwOk9=$}9x?O!#8wob}w(6p9VpQ`|;^N(q8qR7RoL#63%)m_$&;zk=dF*7HANrPXj7 zt@8^6mABVY55*aWMF=vT0?M>ic$~ zhRQGd6Zf0Gr7`4ZREVD;$g1Rjz@6j1;LbBWxG%X2+*jPiG3{IIW2lL>t+A}OVVr#@ z8myoRY9gqSAR9ps+^Xyrkp9}x!z(_Td&u6AzU6+PBH=skd+stp(+PrkLKB7 zXFG$+Nd{o<28*?^+5$`+c++>Ys%>CcKTFFZpi{E8*JqWK)ii-&LFZJNV1ZHA0PZGT zOPXcK1fQ0wdaGJwXI$-h<$=L{r>s=8cvo&!GvAjWm@~rw(S!HkJ$bJ&;9X#Av_e-P z=&n+I7`0!w7@&*RRT+$iVeqF3OpE8v9h8|_S}-y@CwFw|;Oz9Q?2+mi!u#;P;LXx8 zil{lQh1&+zy1!8Ut`+akty<3q@PT{~AIyjFFcrF+pnC|qm!L%i-AB;VIe3o zS47JRpi1D)bXPUm{4?#GWxmSBCnN@bsCh-=k zK7rKNWPS@@$%D*zoS>ByDyQy*ca_*TOk&Txmak*N*Q}v>n5uv9(|DM$Y~-!Hjc??e z`04x%ekMPQhmmD9K`?<_OVB!kHV_0#=`#euLd}+q{9Jw>e>;B%ukeJQ&)>;|pxa8& zE`oLww1*&AoqCg?Lj=K^&#^8lAAhf=My)B;$ILX&q>7fYroIXstdepP%o*`<3C67S zOp`G#)0}L~NY02g#w5k2=j6mDn9^f&I_YElgIY!{-7+#K#F>(lz*#cWl%8XZi-}Dz zCMCzF8)K7_76rrM9ZkPTSl1)=J?o{*c@YeY*IG3UYgCuj97D)F+Dpc zJu53KJ;xN6*g2yWT1M-;Wt5cz4xH)93C8TK>~v#XY)qyxDI*@PGGk-2a}qM+5;9?- zrrjZpU!`UARJV*WGP5%h6TulYDJv$<7-x#hFeaH2fTHxA?8Jje%CnHfI}?vXhgI*|Fw?jKu6@ zvpFNl&igO$JE*YRPSEqs{7!Ox zdHn1Ae*TS8z1}jjp{%Z=2>elP<<{zk#xdZkYMEJ3);O7<7ZpY#2#Va%jr4!j1^Bo4 zx0xRJ2>%X$uvG5|(^q@mn!P0y-|3#J>gaibc51`OyZmABa%_L4g@2D(*!hN*>Ii?d zRPPEi>P{Y_cFkZde~kZtjxslS{?Eh93I4+l#6KeFC1tdRDz!`EPZRX=jZl4%hfM|z zxE27;-h5y3u;y!TK9J3?*faZvX7(*XuihxLM>;ZV?UdOs{MC-kej{kFJu|BM@}T;@ zcB9NzbY!-^BQrq|r1s1NnV{F(G81}2WJjWJQCsES!|tCPGJW@@B z>KDR&bU8%0AH@p~3J-yJ1|`4UpT7WRmU&G;jFq6z=>+^NLFaB!_MxjFhwi-E5}?VC zM}(!|>d?6|e;=3E3d@A$bVT~cRR1_G2`hxhI~rgmLFesV`bi2hXu@B12Dt@5ZWSIP z=qrll1r^I%i@(*Sq`s#o?y-xRjRF{P+c^wm<=6HKZlM(ffpn>J1-C&3x6=xKODp(| zTEYMG&Oz&N@R2v%uG#DGlCYa`Y8GB5==)~j6@o4+qizEwg)YHp%O73mLH5`72?rUc zr-avq{lXix7G^hg)fB*1S5hm!R%V$qVTnFiC_q1<4v#w z6hTDEz>! zS||J{ToHZ}einWqm?yX=!MzD~BG?61x$Lz6Cj3ch|6TY)xJIx*ut>19R`^S}E<&&y znP45kJt*zL-3aMIYJs)7-U>lIO7#){oG=68fD~F9%B*D&83$JT{yDW)hN`Rw43xA@ z$a2OIgc-vPd0Lc3*w61)ALdW7w{S@*Ah?&>6eA49>at!N3Zjb$N@2IR&;-#_^ipaG z))VZgj2@YClS2K(pc}n@Obii2!72y$A=p_N-A1>n6pE2TRKBC@-IMI0^$=z`SSX(V zFGK3-{Y0s^-ow)?I3yxIAu-7>IW;?H(BRzs!jiGKRn=Li&z{#7d`Z^z=-JBw!kn~0 zsl`BnUAOc`SQ(uJjBbOVO9q7H4_3-yl>|i?fTuDSS&`Hwc{M zp}2sqngbz3ASJ95*ISQ!`}i7ke*OW0LGYxodbS11t<0$@tFlqAHj6gttGB{KDw_fZ z25T+qc#j@}Fo}x$gs8%tyuu>O%tm7dxXc~Zg@!?d1P`s0j`ur}?xx6;+(=X0T4PkS z7RG6#1&C0i*t)A>JRc|`_fD+p2uEG97j-`xB9s9ywrzE|# z94U=zo=2T@DgB#iJS102OiP3nV%`YqB-g*Qy+(-pnvDnI?l-&q8=4-w!5NPti@S8B|*Y zldLS*8P3hjgnU&oua^}s#ph_fu3;M7QfFBCj*gQV#&L2PD5@B^tG2GuI%s72n9*a# z8pKl>9M0A&X*qmzCQZ(hCZPQ3k97!Zb$g{QH*^5bhHG9W&CrIzRar*L(#qJEYqS zpIH^Q@>+&L{TW95s=UG4$S^W>j|rI3*g&rb!?p9&qLGMDO_kQ1Vz^F&>klV44W`#| z48yw4o?J8vu6^KoNZq8oe7H`5>&fM|%&~AC3fC=@ExELv05kTT>c-q6xQ6oB@2vGB zY5H)6;rdrtva+@NT;uO(?3Y&dG)A z9Jro2**cishx!VyHq@wm2ABxftW6_n-Jy7D!`(@L$!CYO0#T3PDfp&+Tu} zcN!p7Jp>S|hQMKi)O@s@D&T#ZPRpYn@}b{ozF(>L%G=6|g7Pwb)v8|MPc%wosOM8#jQll*s zXs(0Muw^Q3YRw_gr-_S&Pd{!Lm&%#c(yWkT7GqTJ_gC-POYNvRt=q-+Ql|l}oonA2 zFFS^>0bY%ea}CsxhFhcf*npaAK=;(Pw`r@`+Xd>m*rO@5p<(%hBXTFKhtwJshWXag z>hkvMrrwrOd3uITRzHJ1K>7erO90j=@n7iAJF`T%6@7s)FlYZA*?X@!;=UyCt ztmlEbm350f8X6|7pZkZUq2noS2g}`gzvMCVBTdhlzA?3$Hkq!NKJ7?hI%)dWbllVo zPcE^Ku-hRR?Jo8u_7G!$Z!dwl@hn@Qfv%7wQ~Zk-(=tetJ%=*U2=tgxWnucMnj8JtUiswb^lpV<-kX`{ znVrmT<~8O`<{pmLAH;ekI-2Ns{JGS9YSgM#Ln0o2jgf6nw^e^ zLYVB^a21{gfw33h2k{Erf;ZtE5Cr=mJ`VnFm+;RJ=(-2%%KEWJHi^w-^C66Nr5d_= z5rnI5VK;*eIKUob&#>RHzd;D$vk;}wJaiRE_xJldtVU5p=SEU}3FN7)1k;Y1O(tK&T^tALUgciOa z{UPh+AUQ?Omn-C15d61Qeo1~$J}>{FbA-^nsk$QF6dlp6&~4Vep*y9!(xXQY{~pOb zM)aueq4ZeM#9Q^hbV_!hYE)~99BB)a5(DlU2nN}Q1A5K6ME0?y}b9f-tYDP2Er}` z>ofIb`rGv@^}F;Z^*=lIaWp&TJJveh@A$Oi+m2s3iB7>z*-jNs3!K(Ez3z0b58Ef8 zPiCL;K6mzM?ej*T^Ui{Eh;y#<6zBV#pLIU$eA&gxCC;V9Wv0tYmsecQxU#OnuDPx? zt`E6B?|Q=Z_rBhJ)B9Tb-rIL`-=lqhb@Ox^=w@+S z>z!MkyD|6jki;SLhU_2Ob74K1gX$3Ej5JnV?SUKX$k>-(eM;<8bQ&?K~bm1>W8AT5jeNr4++*G`;q<6{ql8q(5 zj>;OfWYn3_(WB>$J~+l>O!b%-$BJW1#;zax^SJDB%f_7_A3uKK_!GB<+&1&Jwe<(Dc3RxGW!Xi2p!v0SK3 ztz1(1RaI)$BUKkC5171s@;B9))sI*IFlF$R)l+_*nm={J)ax~)YPQr$wG(T1)j8Eo zt=nJkQ$Mr*NJB)!!iF=`Ql>4NcG)`Ay55Ftx7l87bcPA$p{CHLyPD2UPn*7S`qddF zGq%lioLM*X(5&!T_s+U7J7@N~IozD`Is4}N%_Vcs&P$)yd^@^*((U{12)JXx9p@pI z(^Eu8rjmE(o8~W>|I?kL?tE#1_X1_Xxw{74^~^$th1P{9@9uZ^>U+3*s_!{`Z|uE~ z-TT*~ibe0-XS#3seb??UzyF;F%nz)1;QE7=4<3Ff;h`rN3ybR(pLlq{!%r=7Trzvf zxkrXSvSX=X>7u1SEh}C2_VT#ps~^=p+Vtp|6~k7%_*md$iyyo8_~gfrugqAv9;qpZ0qCp=amLECq6tm{^XetD?a?{qneL?_;~uqe|(~V62IuQ{`B%s zy*_REEbOx_XA;i5ayIMiq0b9H|Kwcxxl3QzzPNUN!I!Wc zkNf)krG`s?e6#Rd$8VqbF7&$>z90Dgq06H$pZ~%7!}TBUzv6yn!%uNP?fbdl=TCpB z{pF8e7hQF~`qXbpza98})bAJmm~lJX@dC304ib48juP1eTF7DMBhWxDg7)zzL<*B3C|EDl8~H%6E->vxS!gKAhoe9W z;V6(XXdJ|fDn(_We=LE+Jr1Bl5cTGL2zB!jI)y$(XV5ux9uD@n2*-H%LEw@gIJhGo zr-AN~hezS@a5P6f9L_NpA~Gz;EAeK$6%OB^M{gVhpZhQI70^FiST{Ic!-qAn{%izm zf}=Ik*nw;Yo5kj`Bb;Ax-s8OA`Ka>==hM!gJAd!|qw{qa&ZVbIZx?5mFqcS|beBRH z7sqKD8%Ek+sDGD#F1LYEf_*7GS_FH8^}_F>S&R{`iE(1Qx-H;Ja9`LNAlQvy_w~YG z_>h<^ra-uXL$FJrd`z$h!CqjzteP+T|MQ|gUEzd%mw!$K3uH_TEx@cw4eDcf4UItsqUV9U%nzzHVpn<-*}2)^Fx&1SKXU_;whqFBcS z@w6Hoek3T&r4S;1sAv%@#VR!fdIe~0wy-YDHUO9LKmKf$7?Y!VH+ zP6HdlvOgFB=454Mfc<1vY_c&f&J<$=D@-`a!kmy3XU;IkW@Kkhps$0ST>T8ykV4yu z({4a!8D-W{Www%P8{K3bRoytb5R9p7EbydMAKJNK?TymB!ja$uQg5Xp1l7ojR8W`d zeeM0sauZ6`V-VU(t*@_{RA$Y!m#S@2cBZKPksZ<{B3Kb@5FZhjip#|1;-lgU@iBs9 z2#zHYE@qq#kNfIJtgCUfJ~ODs6v}-fI7v4u^GUsdDRV4eB0@b}OS(G$*s5zRskY4MD2EEYyFJ4l?h)5Gqh*L&EgjEIf7FN?niKc zf>Q}jTPHp*ZWCV+w~IRn9zgJDf~yFgLGVmkNrP(5Y(F%ky$Vq<95%IWhMU@x*aKdw zj8&W))sdVwCvXHz^Hom`&-Pd7Q5+q~a)80WXwq(3-u}RDGvA$#T$`=QVzXEERq;*Q zzZU`KFRJS4tLFj%2MhZ(He z5x~U=f=iUql;_)c8V)6ami2-gg_*-C$2Qq=RNH!}RdyX^V<4O!5|gdkmRc%u8!ffA zA~-1mf`!6u?NAfDX-xN5X(!2=1;;~Fm$#jUFvwcp)Bv5T-Ss777Cq$vG!05b+o>s9 z0hDjrvFbuVh6T>Au(TJaCGX@%8E=Y@G$hBzw>t-lABrD?5r_B@!MV-iCj?@7!Ra@& zNOkwymaf*xj`wHcSr}==GXxK97C$F=m@@jt`{7@Tm%xioydZuhUKGD3csRj%1m_c6 zKyRu)>P@&$|0|;ly5=()cA6@H;cR0&%((1C{32fMp!hd}M=JJ6AmTOguMYaI6I|GC zS1)0SqmM2E70nV)a8bu2Nz%b139Jr^o5c$%IncIUysn}qHPuzrSlURCdP|P&BuHS| zFshvd$whMQV$d(SOTN$@B@f9{@{+tIILK!V!D9&?NAP%pZ(AoBBtOYt3XlQ`ox*g%rTerdi*;53Sb)@mHI5bfnSDI8XI~_N9cimn zER{&3BoK>J2%buC4Z*eGnl6o##!I(>`4z4sxSl|4H##IVSS>cXn_gE{SPs5$nUm}5 z)jsP5o}P`_Wwu#G^|^59Of_hga6*iAmg)gIPNjs}(9koNoYZfHFfPEJyynFTwnflp z8D)*-lc|KHh6(E1u+>*raYCw;s-($MwKRq4Ax)KP_}7_vQoYnLrVP%)0c)7LsxfMo zMHXxAm|B`iCLE?S7G#a3LZx!7`dB4};3k5nNpSEXZX|g62auyxvPq3n6EhDDl3>tr z0poeFy{v9*^QzOhYBV5NOBL!Ox}r-kn7|TjEy*t&40cMYIxEeV=KQT5S{>lU7HKZE z5A0IO_J@DF-%)wGU#?}XNJMi%Z-+>Iy9KR0dFi@3GRV60aa8Y>eHVwB2jVvdy+uJHARA1H04h)VV};*n>?lf(Yo|QJQ zA-K(vzg2op_1w3&(eu&^wBv6h_?~8IJHhu-1pS(zOHy|@i`8nWXmcQ)l|2)VAfkte z=4RQ{*^#tME5@GJZV9~Ro26F>zOPx@L-74HFGnzZZP&=uAzyp$W_Ojgj*fRfX$nNoc;U|_?*E;(J6eh1e!=?CdY>5BA|^t1Gf z^s97Lf+75If>#p!1i`Baev;tT1VbA)6Wp>9ddW4$kGd?&jErO~!^9W5##%75qMpn6 zFu|aQoFn)f+B|y7hU#f^a43+bV^g;nt#+ydGW3wTiZW{jRh?<#Hs?dVbBT7OtoFUI z2@L5gEMq&psP6-Bw4JY~mY`*CXuH*MRvsLTrwt0)QCO5`=<#o8=feR*sWla`r62 zn+e`R@N)!jCHQ%Qw{4IU;7ww3zH{TWcCULY9y`KtuKL-0O=55nrj=&DriL8Jr7rJ-pO z454iYPr_k##&V*KV{up+jnd>N{CYQ45UUahr}u)GaT+(*AD8GlCBgyqDm& z3ErbjEY(N1&sDoLdR9HnGOB%@qJ2WF)p`b!*2*(sqZ3qs*9hKE@EgG1@;v!=s6ao| zQzm0OiY!)%0ftpz^7FcCE2^zy{QZzIRo#&n$aiT|(GKR-v@kWBg0gCBi@Z>ExBwA# z(==_wh+hFWfl87`dFgdKh2W+_Z@#JC>^c=Y#?i1IUoh{>OPF~IESS8dz(Ln=%%QwY zUVdXQju!b*O3sb^+O;$e`yRnC+#ezMXsi6R{0u%MgM>RqARaF0ez1Z)dYGkBUFsP#lA1=);eM

P=lI{(w=l7{*Q* zTs%w4tkqNyf|6mGq3UlV%Vub^eh@HSpSB5hb@~80bC-we>u~gGhruqWbFN*IsJT;V zY$tZV3=22S@*4zy)C^JMCaSs>%*br@HEpXGw959>2jzF$RWTVxe29sxHO3KcRf~L7 z1`JOT{8@*_C7+OCRim56C4a*B$)^cEO_i2Ul~L`02MnC6bXHa5&*d*~^!^2SA65{~ z(D%=R%Sn4XK?Ys4Ciy%0`z~`}`A7LDTH`AOf6*-eOfYyf-Bg{Ff1~yKT?R$xOM=0Z z*6ueU|E0q>pi9Rxemb7u3zV*}fG+4M+OQWeuzF(Wis^JZhZ|+kTR5z9B=~Dpxw>SZ z+}jlwO`99PSIy}IovW^|&W-7zb7$u1Jaupes1x1z(m0jsH1zmYm_t-q>Z+UC!VIZv zTr(TBCvFYaYU*^Nk=W@G!9UY^DYK zVW~dgUzE_IE26poo1`E=IwY$(Aqm33nN2Z?Fd?L_&AL(4i-o`XH!qgqdH>dn#Y>bl z|CHXYeZ51#fg=WdS<(g!%mi1KVVVOA47eskY!d9fC7BG#Ny!Ei{HR~dV7me*yLNt@ z7}xo6Od>oEjL(TR!8S^)F*YU!4hoMmnIM2ddaN-aE-5QJCc$h@%t$VQeUX%yxPMRp zpl@|XRvXi_sl8p3q5VhO*Eyzlbn4^m(sr=<=ozqBR6ip(3+C1^gc;3j@16EM-3Oi;V#ktvaG)PFrNIIRi)RkLWJiOZdKaTnM>J0(Gbc^$E zhpo5x`71pYeM?{v_@(q!JdTBi>BA%7P)~4^(au-aII*}mH_N_m3ES?SA5nK1&Ao;m z!=9d;nUj@mf+!*oPb4leE6bQ^Ho>o$?3nD>cvD%;1{RImZ^0 z7o{UME|U7pD7_)yxWuHSEE8;nsS!P5;*yh$Sy?ej#)Rzng!GIYh*y%41^L2m8Rf_% z)4XHJDf)i>Q$fMB9~7%qL~E(Gtux=Q&pOkfrl6iWiYtiBIdc+WeLf+chCI}WPmWKR zH}B@%!OcBA18Sv}rj^{1?nQ~p%1(t7v)yU7Zgb|C6JsGNU}Cp?J>iksy^IiBkrvuk zvv}Iq+}wu@1-ps%8Q-jyAzl+qGZQN(B_&&8D=HGqaN;NgA?RWU@tNK!zhK13!lL4m zQDDhAZv1W3F-P^wshnInWok`rU1h^GE9jV=AOen2od{t>gf5{y&^8R|28g%)R!$R~ z%ch>j-7d{?v&O=^upw!MjT=BB*VZW!{R+gvu6l89ZWgdM;om35Y(0V*OzgPsbP?(9<*ff$g zItN)BR7!y4+=`j)O{Y17D@ftNAB~k{S>a^xO%oLCIIy?ULsmTXjN^*NznPYlFymoQ z{&6s2eTzBATt#}+7tBRMz)aO{Fj4@9A{FQ^bPswMtw3wgGiWn<4m}ShBRj!V^<}gV zodzS-pWr;8t8m;+BsSxLI1>-S!@y9a08B&{;QR0fFbz3~-^K6Yi}VZvFidq<%|Zg% zU^bmCWh>Ze5Jvq@b{QC>zr!A7zXX$1M=(hZh3LIW+)!>5n552w0HT|@UEDtI2$-ZE z=T34TaUXM^aHqIWxzE5v^&EE|q6U7=UE;pwzE{-@rrm7BrhT{n=D<%_3x3gs?~drk z>BbkU(|pwg#~mDTBA9q^c^Lqv#{-06LXl7^R0>lekVC!DC`=b-ftl+PVHda{eN$ZyM_3xgT$ z5&4*WT>eo0ME+DhD}NzhkiV9{k$=-6T`yg4FtF{TdqMY#?k(LB-AOR6J+J#w_ml1y z-PIls_jt0$njS4ZT6_G}6C5;q_U`G}b4$OOi{r%OICrm!U3KTp3sF%DD=zn_XXaeZ_T; z>uY_>`!@8o_HFDt-Obf4z%9}(%FW~!;}++Z>NdbF-7V8C+ij3r1sL0Ic6-)hwKEAIEYuXbPWzRi8N`>XDI-S@fgcYoLYJ@+H-$J~#*pLGAp z!^0!Z<2H{Eiana+F$G0Bed;H+>yT>(;zdRXF?8$lhc@FZN3Z}r1crN!`;rY1d zTF*_Mn?0Wc)8H38cX;mce9iN)=P}RYo+mv|d4B47#`AN}A3T5ZLS8zro?Z@KdM_t0 zPcLsTUoSte0Iwjg46n&v_j^6#^@7(@&4Hd`-ncWPY)lxkCTrx7%T_*g!;t$q=Dgb zhEJAHj!(YN2%kcqVxLhyV|=FjJmIs~=QE$Ld@lKX>+`+ORbS-G`trV_uk72yx0kQ0 zubXd>Z@6!yZ_R z0ULT491MDclflyvXb3ih8o~{chA2?hVhsHZsfHnje8UJsp<%RPtYN%if}z&XV3=oE zXt>9)$Z)^mLBpel#|$eCs|>3R&4yPEU-(IWA$}&mSig9`M8AQ4xqd_ahWq9Fjqoe< zEA|`ZH_>mBU%g+W-*ms3e)Ih9@FRYA`YrKW=GWr)jNh|H|Cs+u z|EK+*^?%9#b^kZ~5BR_Bf6)H}{}cWn`hVjIw-+!?ql@a4e0f%^jY z2fi72Jn+N7^MT(5UJm>*@Tb6E0|B%3t;E?DLb4YARd`MzQa!5(Y+>kXPdqUm{IT-S8$a^6l zhMWyK7ji!2LdeCCOCjHe{2p>W6os;(Qm8JpXQ)G{cW8KMY-oIFVrX(`ztF7EoY29c zLqdmz=7mlTeK>S`=m(*vL(hbM9{NS-x1qm;UJd;{^jhd&VN4hf>mBAC<{IV}<{jo6 z<`)(a784d9mJv2IYN8!5g zKH;w6ZsDHc-r>ICe&JE!v0!eW6rLJBAUq>HE4(ngB)mMlCcHk}8r~E>Gn|Ak2wxa} zPxyV|4}?D*{(ksR5q%=OB77tKBLX9gV4j~8(Jvx3Vqio@L{`Lzh?0oW5#u5zMofyZ zL{vpgkC+v)Fyf(zB@xRaRz$3fXpPtqu`yy(#FmJy5r-pwigb%ij2sx58JQC~IC4bf z*vRpb6Cx)@PKvCEtc`XN>2J=ZzPPUmL%PlB1%d3Ztx1bE0mKB2jln-5<3q>d~mj zqE<$&idr4DDQaufwx}IZFGsx+wKr;C)RCwUqRvKr9rbP0<)|xBzeHV+#?f4~5G_ad zhz^a;i?)JG!sF4aqSr*XL_ZV#LiCR47o%T_-W~mF^ug%&qmM=(kN!CNRP<-jXQMAi zUokNz+0@h2+vH?&G5MJMOaZ1KQ>ZE2G{{tIdKldKcA0jY_LyEXy<<9NI$`?AbjtLZ z>8$CT>9Xl()32uAP1nuH%$WtVi`mT_WR5aJyl!)%ImMi5&N1hjhnn-u1?F1wBj%mv z6Xws%pPSE{FPJZze>4AK{?mLt2F0*3J!9Nsd}0hS0WqQAG!Y4Y*{Lx@V)A1~#uUel zjkzsmV$7tN`j}}kwwUQLdtwg79FBQE=2&b^?5tQN_RiRavG>L}Vg33Ul`5*8%fovGfy5(;rxVX4o=f~P@nRB5T9ou?(vwNeNv%m6k~Sx8O?n||XVR{uy-5d> zzDbsnU6Xy2{gZ=|Lz3f?)04B32PF?l9-dr~T$nsDc~Y_^xhlCjxhA^r8=c1WkpJJ%C?l3QeICvl=4x^sg%!BK2JHH@>R;ElUXd|?%$)oL;sZinf-J6KiYpy|GoVW^uN&m&s1G% zuT*_%pH$aWx75_sp{b)&OH(JMT2d#c)~8xin^I?{&Q9H!`e7PM)1~!F)2BJ51*8S1 zg{4KNMW@Y3Q_>ztTavacZAIEDa9CNJwl3|Zw71g!Url%Z7e)OCa9lz8N|K~$0*Xg| zqX_RCRAzUsU3PY6vpk|u(`06McIVtVcJ`Rr@kmVNOJycsHAT(ROw$SzG>nRGhko&^ z;)Q312O#1V3M$`yJoUE013DO8en4JWjC+~_zEZont%sDJMakTw2Ze{EszDV z*ewyuyOx!fV#|A$8q0A@o#m9}tTov>&^pLE#5&CSy0y?sSv^*twamK9`lWTR^&4xW zwawaYeGGO1Xas~p1&{}d9nOJ7NQP7>3N41-fr_9F&?aazv<2D*ZHLOC{m=oZ3aW;FgpNQ* zq2o{;)Ck>#Zb7ZkUFgpk(n)|5;UqX2?hU8G>F^Nvd3X|>15bsg!4?>TUx8nPXTkY! z0X!F`U>as%4qgH;gO|r>&nmbC{s}$?*TJXZdiVl-3BCb0!?)nuNCJ|G^hA=7Zm5NI9|}sYDJSRY)~b ziyTAhkkd##avr&g+(4R<7Bn7BKzpExXcC%?4nzl`L(!4w7<4>33C%&Lq6lh7F%(A^ zpoKAPHZjrN=N*1TnTC3&TJ-{w{2UC6uV z=<4X^_?zP?$J35vM~Y*BV~}HrV~k_GW1=J5G1YO{QRn#G(crl5XmYeTS{)A^j~ty? zSF8`#59^PmVd+>2R*G%IwqrZ7-Pm62YpfbOik-(=u-n)@tPN|&9y_}@TCV_?h^XI6@pHju9t_v&1!`g}6=JBie{3F`gCgN^tdX^>n4W zGF&5Eqg~@%6J66>fD3dXE}M&R%`W`Cu%YlyVJ8_!b|-s~J;`2VZ*mYhlpIE8keOr_ zIf5KT&LA~%3weY*NnRkYk&WbCvYqUtdQs0%snkGf5H*wBK7M)KQ(DUd8bRq4gy>yTc(>iU^OXy|va(X3QOn*vO&`0P?-em9d-qGG^Ub`3b z65i?F8Q$661>Qoh+w1kRUcu}4uJQijz2@!k4e-6>o8-&!P4iiNkPr3c`JBEteRF;D zeG7e*kM=P>-Y5D@-zMKaUp}%{S zHlHnE=dtrymK9iuRoNgLW~?l1yNj)453mQ>D)umYiapDoXD_i=*sJVq z_8!~DwzH49E?gX!%4KmVCv!`<_qf&EN8CTT4cta<5BD8c#U0|RxmxZRSI3>^>bdh= zBiF<=b1mF0?h)6?$MN0y9{f{$e?EmzRtrPw}DnNbK~-`MdcC`*Z!X{Dpqa|AGHgf2IGFzgdcxlBB1lXQWgqO-h$C zq%3K&G)2mltP(7t5-s^9Nm8XH(lY5?X_ZtWy)SK(c1z{be(8WzB~?qc(n;xzbWXY` zU6pP~O;U^0Dm{^V%7f%Fa*k}133<9aL!K?qmFLTE%cSg<71@wi${)yUxd z1yxcNb+cNb9#iYp3+iR{irT7n2I2zU13dyg1HEFbv2S2lAR~|&7#;4Ll4y3Uq35T6e9N)?0g4>!+n?Y1$-hj%I3`wC&nXZMU{Z ztI&SXYP6rV-?SrIt#(ektX>7M7m>HZL#DY|i4l+SL=nu-lPlI0u z_XR702ZM)#)xp}}+2Ez%m0&~gdMG}W6v_&X4!J@Fp?RVCp@ktKB!!fa7Frfs9a^Pr^EH(Kf>3-jp63- zt?=z|d!$<=Ir3s;d}Lb05`iLUBro!6WM*V`BtPS zTJ$(QS?{Cw(^K>Tdb*yWXXzvLG5UDjs@ru;C-mw1>-wAe9Q~~r1oi5YZt6w)3cXl= zPhYFA(>Lgw^v(KC{Tsbn|3UvzuhEa|C-pP>IsKx3S--D8G2)E`Bhg4QQjH-oMw(${ z8l#PI#sp)skz>FHZoFa4Hx?R{K^uZ08LAO9!bY+2k@1;v&^Tq>G42~}M!WGi`doBy zG$T4T_D()O`gW9zdZNCl8C?=x7JWCmDprwS8%vIFj(!r0g71j#izTBE#468+qqVWv z?}=EZ_K)b*SemuX>}DpIiDpmp@8*kUra9akX-+b8%xNZI+D*|^%`$U`dDN^kI~Mg_ glwOotG_Yu7(YT`Q|Ls2G{+dtC`Ty4QuURzZzf+*DTL1t6 literal 0 HcmV?d00001 diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/project.xcworkspace/xcuserdata/fincher.xcuserdatad/UserInterfaceState.xcuserstate.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils.xcodeproj/xcuserdata/fincher.xcuserdatad/xcschemes/xcschememanagement.plist.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/Info.plist similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/Info.plist diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/Info.plist.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/Info.plist.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/Info.plist.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.h similarity index 57% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.h index d270db25..b188408f 100644 --- a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h +++ b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.h @@ -14,7 +14,22 @@ typedef void (* UnityOSXCallback)(const char *name,const char *method,const char #ifdef __cplusplus extern "C" { #endif + + /** + Set Custom Objective-C to C# Callback + + @param callback callback block + */ void LinkUnityOSXCallback(UnityOSXCallback callback); + + + /** + A UnitySendMessage clone method for OSX, if there is an offical implementation of UnitySendMessage in Unity standalone player you can replace this with the offical method. + + @param name GameObject name + @param method Method name + @param arg Argument + */ void UnityOSXSendMessage(const char *name,const char *method,const char *arg); #ifdef __cplusplus } diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.h.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.h.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.h.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.m similarity index 90% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.m index 9d9aae6a..f8b3c5f8 100644 --- a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m +++ b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.m @@ -10,6 +10,7 @@ #import #import "NSScreenUtils.h" + static UnityOSXCallback callback = NULL; void LinkUnityOSXCallback(UnityOSXCallback externalCallback) @@ -24,6 +25,12 @@ void UnityOSXSendMessage(const char *name,const char *method,const char *arg) } } + +/** + Get Screen Scale Factor using NSScreen.backingScaleFactor + + @return scale + */ float OSXDeviceScaleFactor() { NSArray *ar = [NSApp orderedWindows]; diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.m.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSScreenUtils.m.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSScreenUtils.m.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h similarity index 79% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h index e0631c35..2e2d1911 100644 --- a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h +++ b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h @@ -10,6 +10,10 @@ NS_ASSUME_NONNULL_BEGIN + +/** + A NSWindow category class for injecting NSScreen notification + */ @interface NSWindow (NSScreenUtils) @end diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.h.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m similarity index 93% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m index 6846686d..1352e46b 100644 --- a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m +++ b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m @@ -12,6 +12,10 @@ @implementation NSWindow (NSScreenUtils) + +/** + Using method swizzling to inject notification on library load. Notice this bundle should be marked as 'Load on Start' in Unity inspector panel + */ + (void)load { NSLog(@"NSWindow + NSScreenUtils Load"); static dispatch_once_t onceToken; @@ -30,6 +34,13 @@ + (void)load { }); } + +/** + Swizzling Helper + + @param originalSelector original method + @param swizzledSelector replace method + */ + (void)exchangeClassMethodMethod:(SEL)originalSelector with:(SEL)swizzledSelector { Class class = object_getClass((id)self); @@ -73,6 +84,7 @@ - (instancetype)utils_initWithContentRect:(NSRect)contentRect styleMask:(NSWindo #pragma mark - Callback + - (void)onWindowDidChangeBackingProperties:(NSNotification *)notification { NSLog(@"onWindowDidChangeBackingProperties"); diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/NSWindow+NSScreenUtils.m.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/PrefixHeader.pch similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/PrefixHeader.pch diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/PrefixHeader.pch.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/PrefixHeader.pch.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/PrefixHeader.pch.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h similarity index 50% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h index ec824e89..034d606b 100644 --- a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h +++ b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h @@ -4,12 +4,32 @@ @property (nonatomic, retain) NSString *someProperty; +/** + Get Instance of UIWidgetsMessageManager Singleton + + @return instance + */ + (id) getInstance; + + +/** + Send Message From Objective-C to C# & UIWidgets + + @param channel Channel Name + @param method Method Name + @param args Arg Array + */ - (void) UIWidgetsMethodMessage:(NSString *)channel :(NSString*) method :(NSArray *)args; #ifdef __cplusplus extern "C" { #endif + + /** + Set Object Name From C# to Objective-C, the value will be stored within UIWidgetsMessageManager + + @param name Object name + */ void UIWidgetsMessageSetObjectName(const char *name); #ifdef __cplusplus } diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.h.meta diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m diff --git a/PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m.meta b/Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m.meta similarity index 100% rename from PluginSouce/osx/NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m.meta rename to Runtime/Plugins/platform/osx/.NSScreenUtils/NSScreenUtils/UIWidgetsMessageManager.m.meta diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents.meta deleted file mode 100644 index b038cae7..00000000 --- a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 50538da1f1eb943219a01c4a98807612 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist.meta deleted file mode 100644 index 76c9a2d5..00000000 --- a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/Info.plist.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 44853496ea9bb4c2cb86a943e22fd5ef -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS.meta deleted file mode 100644 index 199f30c4..00000000 --- a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d73aeb6d25e8242a292c6fd818f70d4e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils index 2211a84ad306250a47d74f6d21e1b9b3386b829c..cedc70fb597cf0f4c911e354551302153c1c882c 100755 GIT binary patch delta 1501 zcmajb4NOy46ae7&DvXv6sIG$%{u-lz;`)F=f7qZ1!phI2S`e&^QQOi!pg+(SXeBF} z2pe__*%h>A%LvxfVfPCQ?py&Bh$sWm%Q`x-Fwct z_Z^3WvgDvR98^>XPE+?#!hL`@O~PmrhM!VQ#^-b}y{4w~BepoJXwxWackZAoH%A?H zLl8Og@6!%lv<5}$znIN;t)lQ{!%#yfaw@=FtN^uwO&kH*3~&yHb^{v+i#q52WS=Y0 zPwT_*BKn*LE3m^j;By6(H6FmsO`rsNfL{3Fd4PM|1XK_BJOMfkOgsU_mkN4$Z2uf8 zg0P74N6`!&>W?5I(98*os)u^~PmV)B?FMIGAX-#|-FyN139!L<6NAmb}LjPkCwCj3#p~Qhw(uJhoCar?k_p>xY zdBZ`k4ycRt7&)+6=wP%4L41gA$n%65qywQ{^(@l4q!|n%|0L;#wS@1H9$WXw7K9HE zay3|;Pa$a?lPIu}9wXgDn&nIEFRa$TMA+Ax=y!v35@{A3iR&qW4)&@+##k<8BS?d5 z!4E-}Ho6uN2Ts&X?}v^o;+&L#(J!lxlTYjs`cFu5k+xio zY4ueY8=Tyx2~?Vj^kyk;QkzT5^<@gZ7RM`8@=BB1D3b$KstnjtoX<>hs!}^C&&+^r zq)w3bojWMZdL6Zc_N-xj(lGKZ#e`(xy?E9{n1Cp03 zyw2Z!U>&v;Ts)#K(uED}$PG?TY&=o5;U~9;Q|o)Ke^!rdQnZBJTKp}j`rN5rY1W|O z<6<*tunx3_=_u>2?XiQr@fQoe+7M4sMW(N`(85&qWJ|-t#gE4AHwEgeORY)c?#*|Y z6O&DCvYO1{h4iEBiK)6Rc-~u-OVgTNbm1QxU%jnO7qECGUzqZ98+Y Vz+>5G)Jf59b*`0%!~i?${tw(_xJ>{6 delta 1434 zcmeycfoTH>aWEQ8-pCQn^nh*n3Fg8C(wkx$(H8!Ob6H|SDD)}-DI1*3rKxsoBYe% z4(J6-3wy@a$(0uNOqbaw@3PR76yjiDP=II$ljcCanj`~5z~qHy>W1z>9GR`yIcI44J0*)j4?o@r&zXgc{OkW8E` zX{{gG#f579UNrt=G(Imd$Ux4EP=i<~2jwR~`PNW=2GIH9^+7-$A26U{0aOI#Uw{VK z5+GlWv4MesA7a{GC|>}|zX?^Z0OgDDK+O|?sLzD*CkR6L+oAjmLSTM9!#Ah^EPP~v z7K0pAAOg`42IXIX^2?xn1u=;HYAFAJ1cZMX%6|am|A(mu1_=mg@Bux<+rV%^0mKVo zVDJSAh%+#JPz4D9lN^xG2UP3<4X-XJKLE;~1?9uScQup`3*Qrbo4IT!u?ysv=jG%l zrWETJ=a&{Gr|M6B?~*5zkzA0Gl~Ie z$b0wn)M1&7{x|<7uMBW-D9fHdHS6W+{&2>HZj9AS&z)QJ`7>Mn-0INS4>ii=n@TnO zRD7#l?sMBNi4SwR{J?WX#oA>v?BA|!>EGjcQPcXvX3fAn0do^$OGEQ01AR75tu~Lg z@4SqhEQU%f3jB$0GR?oG%n^L?^-~#>sYcV5D!(oksS6PuZ|2XP|4L%=xkNd_ig=P< zOS>3(6eotH8AW-O2bl##RHmeR8hU$r8>D8NOcqMEs;~QX&APX4F8m!h=|EKEQiI3V_Z*BF``94{5RaXf`t2_n&p+yyEpPZPDKsTSJ3G z%&&jlwr;h)ekE)Di9qkF-NgpR7q7kF8x;Ma^kjkb-m0Z#OR`N5ORg83^07_eL|FQP zJiV8Ftp+EX-skDt>1W^h-Ba>^>+3~(r%%ymSflSgX+hT6rHN%32Rs)RO<2U+{`R)D zlV!cTSDNHf_D@?^mPOTBUTXLLyDHz4V=e#x=aatG>=AQ2-pJ_J8O4;ebaP;eyvgJR GjI01t_?P?u diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils.meta deleted file mode 100644 index b5d2f691..00000000 --- a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/MacOS/NSScreenUtils.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 76f8e960d5e8a47938b62c164c0a6321 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature.meta deleted file mode 100644 index 295ba05f..00000000 --- a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1daf4d292d82445c08ffa7f32f089597 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature/CodeResources.meta b/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature/CodeResources.meta deleted file mode 100644 index 353b734b..00000000 --- a/Runtime/Plugins/platform/osx/NSScreenUtils.bundle/Contents/_CodeSignature/CodeResources.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8f2fd8684f01c4c10812023e82db18a1 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/engine/DisplayMetrics.cs b/Runtime/engine/DisplayMetrics.cs index 30e1cd04..ab0e71cc 100644 --- a/Runtime/engine/DisplayMetrics.cs +++ b/Runtime/engine/DisplayMetrics.cs @@ -48,6 +48,7 @@ public void OnGUI() { public void Update() { //view metrics marks dirty this._viewMetrics = null; + //mark devicePixelRatio dirty this._devicePixelRatio = -1; } diff --git a/Runtime/engine/UIWidgetsMessageManager.cs b/Runtime/engine/UIWidgetsMessageManager.cs index e2eaefe5..ed1e7411 100644 --- a/Runtime/engine/UIWidgetsMessageManager.cs +++ b/Runtime/engine/UIWidgetsMessageManager.cs @@ -39,6 +39,7 @@ internal static void ensureUIWidgetsMessageManagerIfNeeded() { void Awake() { #if UNITY_STANDALONE_OSX + // Call native code to construct a UnitySendMessage clone for macOS player. If there is an official way to call UnitySendMessage in macOS plugin please replace this. LinkUnityOSXCallback((namePtr, methodPtr, argPtr) => { string name = Marshal.PtrToStringAuto(namePtr); string method = Marshal.PtrToStringAuto(methodPtr); @@ -128,6 +129,10 @@ static void UIWidgetsMessageSetObjectName(string objectName) { [DllImport("NSScreenUtils")] static extern void UIWidgetsMessageSetObjectName(string objectName); + ///

+ /// Call this method to connect native SendMessage function to the osxCallbackDelegate delegate + /// + /// Native message handler [DllImport("NSScreenUtils")] static extern void LinkUnityOSXCallback( [MarshalAs(UnmanagedType.FunctionPtr)] UnityOSXCallbackDelegate osxCallbackDelegate);