From 1c1381a7baa493899931bf0cc56d4c67f5c0a28e Mon Sep 17 00:00:00 2001 From: hecomi Date: Wed, 12 Sep 2018 00:04:33 +0900 Subject: [PATCH] consider clipPos and clipScale for raycast #23. --- Assets/uDesktopDuplication/Scripts/Texture.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Assets/uDesktopDuplication/Scripts/Texture.cs b/Assets/uDesktopDuplication/Scripts/Texture.cs index d3f65db..0bbdf9c 100644 --- a/Assets/uDesktopDuplication/Scripts/Texture.cs +++ b/Assets/uDesktopDuplication/Scripts/Texture.cs @@ -409,6 +409,19 @@ public class Texture : MonoBehaviour // Calculate coordinates. var coordX = toAngle / halfWidthAngle * 0.5f; var coordY = ly / halfHeight * 0.5f; + + // Zoom + if (useClip) { + coordX = clipPos.x + (0.5f + coordX) * clipScale.x; + coordX -= Mathf.Floor(coordX); + coordX -= 0.5f; + + coordY = (1f - clipPos.y) + (coordY - 0.5f) * clipScale.y; + coordY -= Mathf.Floor(coordY); + coordY -= 0.5f; + } + + // Desktop position int desktopX = monitor.left + (int)((coordX + 0.5f) * monitor.width); int desktopY = monitor.top + (int)((0.5f - coordY) * monitor.height);