diff --git a/Assets/uDesktopDuplication/Examples/Scenes/Zoom.unity b/Assets/uDesktopDuplication/Examples/Scenes/Zoom.unity index 5652157..062e422 100644 --- a/Assets/uDesktopDuplication/Examples/Scenes/Zoom.unity +++ b/Assets/uDesktopDuplication/Examples/Scenes/Zoom.unity @@ -113,84 +113,32 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1001 &10684088 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalPosition.x - value: 7.1 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalPosition.y - value: -2.91 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalPosition.z - value: 9.52 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 1000012642892690, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_Name - value: Loupe - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalScale.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalScale.z - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 114000012274256594, guid: de6f36e446e5e8a48bf61fe198985bb4, - type: 2} - propertyPath: useZoom - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalScale.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - m_IsPrefabAsset: 0 ---- !u!1 &106183784 stripped +--- !u!1 &284170807 GameObject: + m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 1000012642892690, guid: de6f36e446e5e8a48bf61fe198985bb4, type: 2} - m_PrefabInternal: {fileID: 10684088} ---- !u!114 &106183785 + m_PrefabInternal: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 284170812} + - component: {fileID: 284170811} + - component: {fileID: 284170810} + - component: {fileID: 284170809} + - component: {fileID: 284170808} + m_Layer: 0 + m_Name: Loupe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &284170808 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 106183784} + m_GameObject: {fileID: 284170807} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: efd9499cdb931b945947a2cd47909676, type: 3} @@ -198,6 +146,80 @@ MonoBehaviour: m_EditorClassIdentifier: zoom: 10 aspect: 1 +--- !u!114 &284170809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 284170807} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bb54a34570e4747429b1c5b66c69d356, type: 3} + m_Name: + m_EditorClassIdentifier: + invertX_: 0 + invertY_: 0 + useClip_: 0 + clipPos: {x: 0, y: 0} + clipScale: {x: 0.2, y: 0.2} +--- !u!23 &284170810 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 23000011974915108, guid: de6f36e446e5e8a48bf61fe198985bb4, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 284170807} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_Materials: + - {fileID: 2100000, guid: c181d333a7bee7a44b94c0f4e02c4bd4, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &284170811 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 33000012841683532, guid: de6f36e446e5e8a48bf61fe198985bb4, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 284170807} + m_Mesh: {fileID: 4300002, guid: d6b30b913257fee4d8246bf7a2620fcd, type: 3} +--- !u!4 &284170812 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 4000011474108562, guid: de6f36e446e5e8a48bf61fe198985bb4, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 284170807} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 7.1, y: -2.91, z: 9.52} + m_LocalScale: {x: 0.5, y: 0.5, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &691659230 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/uDesktopDuplication/Examples/Scripts/GazePointAnalyzer.cs b/Assets/uDesktopDuplication/Examples/Scripts/GazePointAnalyzer.cs index 15c60a2..848fa30 100644 --- a/Assets/uDesktopDuplication/Examples/Scripts/GazePointAnalyzer.cs +++ b/Assets/uDesktopDuplication/Examples/Scripts/GazePointAnalyzer.cs @@ -1,5 +1,4 @@ using UnityEngine; -using MeshForwardDirection = uDesktopDuplication.Texture.MeshForwardDirection; [RequireComponent(typeof(uDesktopDuplication.Texture))] public class GazePointAnalyzer : MonoBehaviour diff --git a/Assets/uDesktopDuplication/Examples/Scripts/Loupe.cs b/Assets/uDesktopDuplication/Examples/Scripts/Loupe.cs index 933deaa..871307e 100644 --- a/Assets/uDesktopDuplication/Examples/Scripts/Loupe.cs +++ b/Assets/uDesktopDuplication/Examples/Scripts/Loupe.cs @@ -27,11 +27,13 @@ public class Loupe : MonoBehaviour } var monitor = uddTexture_.monitor; + var hotspotX = uDesktopDuplication.Lib.GetCursorHotSpotX(); + var hotspotY = uDesktopDuplication.Lib.GetCursorHotSpotY(); var x = monitor.isCursorVisible ? - (float)monitor.cursorX / monitor.width : + (float)(monitor.cursorX + hotspotX) / monitor.width : (float)monitor.systemCursorX / monitor.width; var y = monitor.isCursorVisible ? - (float)monitor.cursorY / monitor.height : + (float)(monitor.cursorY + hotspotY) / monitor.height : (float)monitor.systemCursorY / monitor.height; var w = 1f / zoom; var h = w / aspect * monitor.aspect; diff --git a/Assets/uDesktopDuplication/Plugins/x86/uDesktopDuplication.dll b/Assets/uDesktopDuplication/Plugins/x86/uDesktopDuplication.dll index 12ed839..4641b84 100644 Binary files a/Assets/uDesktopDuplication/Plugins/x86/uDesktopDuplication.dll and b/Assets/uDesktopDuplication/Plugins/x86/uDesktopDuplication.dll differ diff --git a/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll b/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll index a363da1..04d026d 100644 Binary files a/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll and b/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll differ diff --git a/Assets/uDesktopDuplication/Scripts/Lib.cs b/Assets/uDesktopDuplication/Scripts/Lib.cs index a9f6a1f..6ad47ef 100644 --- a/Assets/uDesktopDuplication/Scripts/Lib.cs +++ b/Assets/uDesktopDuplication/Scripts/Lib.cs @@ -141,7 +141,7 @@ public static class Lib [DllImport("uDesktopDuplication")] public static extern bool IsPrimary(int id); [DllImport("uDesktopDuplication")] - public static extern bool IsCursorVisible(int id); + public static extern bool IsCursorVisible(); [DllImport("uDesktopDuplication")] public static extern int GetCursorX(); [DllImport("uDesktopDuplication")] @@ -155,7 +155,11 @@ public static class Lib [DllImport("uDesktopDuplication")] public static extern CursorShapeType GetCursorShapeType(); [DllImport("uDesktopDuplication")] - public static extern void GetCursorTexture(int id, System.IntPtr ptr); + public static extern void GetCursorTexture(IntPtr ptr); + [DllImport("uDesktopDuplication")] + public static extern int GetCursorHotSpotX(); + [DllImport("uDesktopDuplication")] + public static extern int GetCursorHotSpotY(); [DllImport("uDesktopDuplication")] public static extern int SetTexturePtr(int id, IntPtr ptr); [DllImport("uDesktopDuplication")] @@ -167,7 +171,7 @@ public static class Lib [DllImport("uDesktopDuplication", EntryPoint = "GetDirtyRects")] private static extern IntPtr GetDirtyRects_Internal(int id); [DllImport("uDesktopDuplication", EntryPoint = "GetPixels")] - private static extern bool GetPixels_Internal(int id, System.IntPtr ptr, int x, int y, int width, int height); + private static extern bool GetPixels_Internal(int id, IntPtr ptr, int x, int y, int width, int height); [DllImport("uDesktopDuplication")] public static extern IntPtr GetBuffer(int id); [DllImport("uDesktopDuplication")] diff --git a/Assets/uDesktopDuplication/Scripts/Monitor.cs b/Assets/uDesktopDuplication/Scripts/Monitor.cs index 99d0f58..ae70650 100644 --- a/Assets/uDesktopDuplication/Scripts/Monitor.cs +++ b/Assets/uDesktopDuplication/Scripts/Monitor.cs @@ -172,7 +172,7 @@ public class Monitor public bool isCursorVisible { - get { return Lib.IsCursorVisible(id); } + get { return Lib.IsCursorVisible(); } } public int cursorX @@ -301,7 +301,7 @@ public class Monitor public void GetCursorTexture(System.IntPtr ptr) { - Lib.GetCursorTexture(id, ptr); + Lib.GetCursorTexture(ptr); } public void CreateTextureIfNeeded() diff --git a/Assets/uDesktopDuplication/Scripts/Texture.cs b/Assets/uDesktopDuplication/Scripts/Texture.cs index e28ed1c..ad592dd 100644 --- a/Assets/uDesktopDuplication/Scripts/Texture.cs +++ b/Assets/uDesktopDuplication/Scripts/Texture.cs @@ -3,6 +3,7 @@ namespace uDesktopDuplication { +[RequireComponent(typeof(Renderer))] [AddComponentMenu("uDesktopDuplication/Texture")] public class Texture : MonoBehaviour { diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp index c00f1b0..e05e748 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp @@ -464,4 +464,16 @@ int Cursor::GetPitch() const int Cursor::GetType() const { return shapeInfo_.Type; +} + + +int Cursor::GetHotSpotX() const +{ + return shapeInfo_.HotSpot.x; +} + + +int Cursor::GetHotSpotY() const +{ + return shapeInfo_.HotSpot.y; } \ No newline at end of file diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.h b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.h index 1640152..3857b9c 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.h +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.h @@ -30,6 +30,8 @@ public: int GetHeight() const; int GetPitch() const; int GetType() const; + int GetHotSpotX() const; + int GetHotSpotY() const; private: bool isVisible_ = false; diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp index c7cd400..06f7b6d 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp @@ -340,6 +340,18 @@ extern "C" return g_manager->GetCursor()->GetType(); } + UNITY_INTERFACE_EXPORT int UNITY_INTERFACE_API GetCursorHotSpotX() + { + if (!g_manager) return -1; + return g_manager->GetCursor()->GetHotSpotX(); + } + + UNITY_INTERFACE_EXPORT int UNITY_INTERFACE_API GetCursorHotSpotY() + { + if (!g_manager) return -1; + return g_manager->GetCursor()->GetHotSpotY(); + } + UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API GetCursorTexture(ID3D11Texture2D* texture) { if (!g_manager) return; diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset index 86c047f..6a5b726 100644 --- a/ProjectSettings/QualitySettings.asset +++ b/ProjectSettings/QualitySettings.asset @@ -29,6 +29,12 @@ QualitySettings: vSyncCount: 0 lodBias: 0.3 maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 particleRaycastBudget: 4 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 @@ -57,6 +63,12 @@ QualitySettings: vSyncCount: 0 lodBias: 0.4 maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 particleRaycastBudget: 16 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 @@ -85,6 +97,12 @@ QualitySettings: vSyncCount: 1 lodBias: 0.7 maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 particleRaycastBudget: 64 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 @@ -113,6 +131,12 @@ QualitySettings: vSyncCount: 1 lodBias: 1 maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 particleRaycastBudget: 256 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 @@ -141,6 +165,12 @@ QualitySettings: vSyncCount: 1 lodBias: 1.5 maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 particleRaycastBudget: 1024 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 @@ -169,25 +199,15 @@ QualitySettings: vSyncCount: 1 lodBias: 2 maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 particleRaycastBudget: 4096 asyncUploadTimeSlice: 2 asyncUploadBufferSize: 4 resolutionScalingFixedDPIFactor: 1 excludedTargetPlatforms: [] - m_PerPlatformDefaultQuality: - Android: 2 - Nintendo 3DS: 5 - Nintendo Switch: 5 - PS4: 5 - PSM: 5 - PSP2: 2 - Samsung TV: 2 - Standalone: 5 - Tizen: 2 - Web: 5 - WebGL: 3 - WiiU: 5 - Windows Store Apps: 5 - XboxOne: 5 - iPhone: 2 - tvOS: 2 + m_PerPlatformDefaultQuality: {} diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset index 1cc5485..1be4600 100644 --- a/ProjectSettings/UnityConnectSettings.asset +++ b/ProjectSettings/UnityConnectSettings.asset @@ -3,13 +3,14 @@ --- !u!310 &1 UnityConnectSettings: m_ObjectHideFlags: 0 - m_Enabled: 0 + m_Enabled: 1 m_TestMode: 0 m_TestEventUrl: m_TestConfigUrl: m_TestInitMode: 0 CrashReportingSettings: m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes + m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate m_Enabled: 0 m_CaptureEditorExceptions: 1 UnityPurchasingSettings: @@ -25,7 +26,6 @@ UnityConnectSettings: m_Enabled: 0 m_InitializeOnStartup: 1 m_TestMode: 0 - m_EnabledPlatforms: 4294967295 m_IosGameId: m_AndroidGameId: m_GameIds: {}