diff --git a/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorCreator.cs b/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorCreator.cs index e37a5f9..773f7a1 100644 --- a/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorCreator.cs +++ b/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorCreator.cs @@ -52,14 +52,14 @@ public class MultipleMonitorCreator : MonoBehaviour var monitor = texture.monitor; // Set width / height - go.transform.localScale = new Vector3(monitor.widthMeter, go.transform.localScale.y, monitor.heightMeter); + go.transform.localScale = new Vector3(monitor.widthMeter, go.transform.localScale.y, monitor.heightMeter) * scale; // Set parent as this object go.transform.SetParent(transform); // Calc actual size considering mesh size var scaleX = go.GetComponent().sharedMesh.bounds.extents.x * 2f; - totalWidth_ += monitor.widthMeter * scaleX; + totalWidth_ += monitor.widthMeter * scale * scaleX; } } @@ -71,7 +71,7 @@ public class MultipleMonitorCreator : MonoBehaviour foreach (var go in monitors_) { var monitor = go.GetComponent().monitor; var halfScaleX = go.GetComponent().sharedMesh.bounds.extents.x; - var width = monitor.widthMeter; + var width = monitor.widthMeter * scale; var halfWidth = width * halfScaleX; x += halfWidth; go.transform.localPosition = new Vector3(x, 0f, 0f); diff --git a/Assets/uDesktopDuplication/Plugins/uDesktopDuplication.dll b/Assets/uDesktopDuplication/Plugins/uDesktopDuplication.dll index 1fdb19f..a0c4896 100644 Binary files a/Assets/uDesktopDuplication/Plugins/uDesktopDuplication.dll and b/Assets/uDesktopDuplication/Plugins/uDesktopDuplication.dll differ diff --git a/Assets/uDesktopDuplication/Scripts/Cursor.cs b/Assets/uDesktopDuplication/Scripts/Cursor.cs index 4e62b43..b362203 100644 --- a/Assets/uDesktopDuplication/Scripts/Cursor.cs +++ b/Assets/uDesktopDuplication/Scripts/Cursor.cs @@ -27,8 +27,8 @@ public class Cursor : MonoBehaviour if (monitor.isCursorVisible) { UpdatePosition(); UpdateTexture(); - UpdateMaterial(); } + UpdateMaterial(); } void UpdatePosition() @@ -60,8 +60,9 @@ public class Cursor : MonoBehaviour void UpdateMaterial() { - var x = monitor.isCursorVisible ? (float)monitor.cursorX / monitor.width : -9999f; - var y = monitor.isCursorVisible ? (float)monitor.cursorY / monitor.height : -9999f; + bool isVisible = monitor.isCursorVisible; + var x = isVisible ? (float)monitor.cursorX / monitor.width : -9999f; + var y = isVisible ? (float)monitor.cursorY / monitor.height : -9999f; var w = (float)monitor.cursorShapeWidth / monitor.width; var h = (float)monitor.cursorShapeHeight / monitor.height; uddTexture_.material.SetVector("_CursorPositionScale", new Vector4(x, y, w, h)); diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp index cc21615..d2f0035 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp @@ -35,10 +35,11 @@ void Cursor::UpdateBuffer(const DXGI_OUTDUPL_FRAME_INFO& frameInfo) x_ = frameInfo.PointerPosition.Position.x; y_ = frameInfo.PointerPosition.Position.y; + isVisible_ = frameInfo.PointerPosition.Visible != 0; + timestamp_ = frameInfo.LastMouseUpdateTime; + if (frameInfo.PointerPosition.Visible != 0) { GetMonitorManager()->SetCursorMonitorId(monitor_->GetId()); - timestamp_ = frameInfo.LastMouseUpdateTime; - isVisible_ = frameInfo.PointerPosition.Visible != 0; } if (frameInfo.PointerShapeBufferSize == 0)