From 70cfad90a9e6bbdcaa12a39a65e9d4b1a7db3d53 Mon Sep 17 00:00:00 2001 From: hecomi Date: Sun, 5 Aug 2018 00:20:03 +0900 Subject: [PATCH] fix bug that caused darker screen #22. --- Assets/uDesktopDuplication/Scripts/Manager.cs | 6 ++++++ Assets/uDesktopDuplication/Scripts/Texture.cs | 5 ++++- Assets/uDesktopDuplication/Shaders/uDD_Common.cginc | 2 ++ Assets/uDesktopDuplication/Shaders/uDD_Standard.shader | 1 + Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader | 1 + .../uDesktopDuplication/Shaders/uDD_Unlit_BlackMask.shader | 1 + .../Shaders/uDD_Unlit_Displacement.shader | 1 + .../Shaders/uDD_Unlit_Transparent.shader | 1 + 8 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Assets/uDesktopDuplication/Scripts/Manager.cs b/Assets/uDesktopDuplication/Scripts/Manager.cs index de4c1ff..c576402 100644 --- a/Assets/uDesktopDuplication/Scripts/Manager.cs +++ b/Assets/uDesktopDuplication/Scripts/Manager.cs @@ -99,6 +99,12 @@ public class Manager : MonoBehaviour Lib.Initialize(); CreateMonitors(); + + #if UNITY_2018_1_OR_NEWER + Shader.DisableKeyword("USE_GAMMA_TO_LINEAR_SPACE"); + #else + Shader.EnableKeyword("USE_GAMMA_TO_LINEAR_SPACE"); + #endif } void OnApplicationQuit() diff --git a/Assets/uDesktopDuplication/Scripts/Texture.cs b/Assets/uDesktopDuplication/Scripts/Texture.cs index dff472b..d3f65db 100644 --- a/Assets/uDesktopDuplication/Scripts/Texture.cs +++ b/Assets/uDesktopDuplication/Scripts/Texture.cs @@ -283,13 +283,16 @@ public class Texture : MonoBehaviour monitor = Manager.GetMonitor(lastMonitorId_); } + int clipPositionScaleKey_ = Shader.PropertyToID("_ClipPositionScale"); void UpdateMaterial() { width = transform.localScale.x; + if (monitor != null) { rotation = monitor.rotation; } - material.SetVector("_ClipPositionScale", new Vector4(clipPos.x, clipPos.y, clipScale.x, clipScale.y)); + + material.SetVector(clipPositionScaleKey_, new Vector4(clipPos.x, clipPos.y, clipScale.x, clipScale.y)); } public Vector3 GetWorldPositionFromCoord(Vector2 coord) diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc b/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc index 03f264a..f0f8e5a 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc +++ b/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc @@ -58,9 +58,11 @@ inline float2 uddClipUV(float2 uv) inline void uddConvertToLinearIfNeeded(inout fixed3 rgb) { +#ifdef USE_GAMMA_TO_LINEAR_SPACE if (!IsGammaSpace()) { rgb = GammaToLinearSpace(rgb); } +#endif } inline fixed4 uddGetTexture(sampler2D tex, float2 uv) diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Standard.shader b/Assets/uDesktopDuplication/Shaders/uDD_Standard.shader index 0071bef..0f55f99 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Standard.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Standard.shader @@ -31,6 +31,7 @@ SubShader #pragma multi_compile ___ USE_CLIP #pragma multi_compile ___ BEND_ON #pragma multi_compile _FORWARD_Y _FORWARD_Z + #pragma multi_compile ___ USE_GAMMA_TO_LINEAR_SPACE #define SURFACE_SHADER #include "./uDD_Common.cginc" diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader b/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader index 0a015aa..e1981df 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader @@ -55,6 +55,7 @@ Pass #pragma multi_compile ___ USE_CLIP #pragma multi_compile ___ BEND_ON #pragma multi_compile _FORWARD_Y _FORWARD_Z + #pragma multi_compile ___ USE_GAMMA_TO_LINEAR_SPACE ENDCG } diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_BlackMask.shader b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_BlackMask.shader index fdeb14a..b4b2c49 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_BlackMask.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_BlackMask.shader @@ -61,6 +61,7 @@ Pass #pragma multi_compile ___ USE_CLIP #pragma multi_compile ___ BEND_ON #pragma multi_compile _FORWARD_Y _FORWARD_Z + #pragma multi_compile ___ USE_GAMMA_TO_LINEAR_SPACE ENDCG } diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Displacement.shader b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Displacement.shader index 8005cca..8705710 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Displacement.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Displacement.shader @@ -168,6 +168,7 @@ Pass #pragma multi_compile ___ USE_CLIP #pragma multi_compile ___ BEND_ON #pragma multi_compile _FORWARD_Y _FORWARD_Z + #pragma multi_compile ___ USE_GAMMA_TO_LINEAR_SPACE ENDCG } diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Transparent.shader b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Transparent.shader index c1e4132..0811f4d 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Transparent.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Transparent.shader @@ -57,6 +57,7 @@ Pass #pragma multi_compile ___ USE_CLIP #pragma multi_compile ___ BEND_ON #pragma multi_compile _FORWARD_Y _FORWARD_Z + #pragma multi_compile ___ USE_GAMMA_TO_LINEAR_SPACE ENDCG }