From 9ed8bb8d5b6975323c2e28f7f05f0cdb118b12f4 Mon Sep 17 00:00:00 2001 From: hecomi Date: Wed, 9 Nov 2016 00:02:43 +0900 Subject: [PATCH] fix mouse cursor mono mask bug. --- .../Examples/Scenes/Multiple Monitors.unity | Bin 14856 -> 14856 bytes .../Plugins/uDesktopDuplication.dll | Bin 35328 -> 35328 bytes Assets/uDesktopDuplication/Scripts/Cursor.cs | 5 ++--- .../Shaders/uDD_Common.cginc | 4 ++-- .../Shaders/uDD_Unlit.shader | 1 + .../uDesktopDuplication/Cursor.cpp | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Assets/uDesktopDuplication/Examples/Scenes/Multiple Monitors.unity b/Assets/uDesktopDuplication/Examples/Scenes/Multiple Monitors.unity index 7be8a9b6a5658195a8b59ad939375e6b71c4cbe2..59c50ed1e08cbb30b4bd61ab0faba8967cc8a53d 100644 GIT binary patch delta 21 ccmeAu=_uKdVZn0t%o*Fsg(eD{dn{@g0d0#3I{*Lx delta 21 ccmeAu=_uKdVZp+{&|p8g&_rQ#k3|h509IlLSO5S3 diff --git a/Assets/uDesktopDuplication/Plugins/uDesktopDuplication.dll b/Assets/uDesktopDuplication/Plugins/uDesktopDuplication.dll index d8e02659e9e67374735870d461ebd0c0fec5f019..c111ccd46cb609ff0998e1b7b4e1a03ebc8226ed 100644 GIT binary patch delta 4722 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 x4bC~f8s_}o textures_ = new Dictionary(); - [SerializeField] Vector2 modelScale = Vector2.one; void Start() { diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc b/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc index 86bde2a..36fcf44 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc +++ b/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc @@ -74,8 +74,8 @@ inline fixed4 uddGetCursorTexture(float2 uv) uv.x = (uv.x - _CursorX) / _CursorWidth; uv.y = (uv.y - _CursorY) / _CursorHeight; fixed4 c = tex2D(_CursorTex, uv); - fixed a = c.a * step(0, uv.x) * step(0, uv.y) * step(uv.x, 1) * step(uv.y, 1); - c *= step(0.01, a); + fixed a = step(0, uv.x) * step(0, uv.y) * step(uv.x, 1) * step(uv.y, 1); + c.a *= step(0.01, a); return c; } diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader b/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader index d07900b..55ca19d 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader @@ -5,6 +5,7 @@ Properties { _Color ("Color", Color) = (1, 1, 1, 1) _MainTex ("Texture", 2D) = "white" {} + _CursorTex ("Cursor Texture", 2D) = "white" {} [KeywordEnum(Off, Y, Z)] _Bend("Bending", Int) = 0 [PowerSlider(10.0)]_Radius ("Radius", Range(1, 100)) = 30 [KeywordEnum(Off, Front, Back)] _Cull("Culling", Int) = 2 diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp index 3b223b5..6ecbcbc 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp @@ -165,8 +165,8 @@ void Cursor::UpdateTexture() const int i = row * w + col; const BYTE andMask = apiBuffer_[col / 8 + row * p] & mask; const BYTE xorMask = apiBuffer_[col / 8 + (row + h) * p] & mask; - const UINT andMask32 = andMask ? 0xFFFFFFFF : 0xFF000000; - const UINT xorMask32 = xorMask ? 0x00FFFFFF : 0x00000000; + const UINT andMask32 = andMask ? 0xFFFFFFFF : 0x00000000; + const UINT xorMask32 = xorMask ? 0xFFFFFFFF : 0x00000000; output32[i] = (desktop32[row * desktopPitch + col] & andMask32) ^ xorMask32; mask = (mask == 0x01) ? 0x80 : (mask >> 1); }