From b51e924d411153f6ded13e92d011ed9aaee6f4ed Mon Sep 17 00:00:00 2001 From: TheOmyNomy Date: Thu, 12 Aug 2021 22:36:06 +1000 Subject: [PATCH 1/2] Add separate legacy cursor trail shader --- .../Shaders/sh_LegacyCursorTrail.vs | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 osu.Game.Resources/Shaders/sh_LegacyCursorTrail.vs diff --git a/osu.Game.Resources/Shaders/sh_LegacyCursorTrail.vs b/osu.Game.Resources/Shaders/sh_LegacyCursorTrail.vs new file mode 100644 index 0000000..d9e96d5 --- /dev/null +++ b/osu.Game.Resources/Shaders/sh_LegacyCursorTrail.vs @@ -0,0 +1,35 @@ +attribute vec2 m_Position; +attribute vec4 m_Colour; +attribute vec2 m_TexCoord; +attribute vec4 m_TexRect; +attribute float m_Time; + +varying vec2 v_DrawingPosition; +varying vec2 v_MaskingPosition; +varying vec4 v_Colour; +varying vec2 v_TexCoord; +varying vec4 v_TexRect; + +uniform mat4 g_ProjMatrix; +uniform mat3 g_ToMaskingSpace; +uniform mat3 g_ToDrawingSpace; + +uniform float g_FadeClock; + +void main(void) +{ + // Transform to position to masking space. + vec3 maskingPos = g_ToMaskingSpace * vec3(m_Position, 1.0); + v_MaskingPosition = maskingPos.xy / maskingPos.z; + + // Transform to position to masking space. + vec3 drawingPos = g_ToDrawingSpace * vec3(m_Position, 1.0); + v_DrawingPosition = drawingPos.xy / drawingPos.z; + + v_Colour = vec4(m_Colour.rgb, m_Colour.a * clamp(m_Time - g_FadeClock, 0.0, 1.0)); + + v_TexCoord = m_TexCoord; + v_TexRect = m_TexRect; + + gl_Position = g_ProjMatrix * vec4(m_Position, 1.0, 1.0); +} From 89139a7634feae140a353f83fcf76fe572c4f6f1 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Fri, 13 Aug 2021 10:10:22 +0900 Subject: [PATCH 2/2] Add fade exponent --- osu.Game.Resources/Shaders/sh_CursorTrail.vs | 3 +- .../Shaders/sh_LegacyCursorTrail.vs | 35 ------------------- 2 files changed, 2 insertions(+), 36 deletions(-) delete mode 100644 osu.Game.Resources/Shaders/sh_LegacyCursorTrail.vs diff --git a/osu.Game.Resources/Shaders/sh_CursorTrail.vs b/osu.Game.Resources/Shaders/sh_CursorTrail.vs index 3b03f9b..ba3865c 100644 --- a/osu.Game.Resources/Shaders/sh_CursorTrail.vs +++ b/osu.Game.Resources/Shaders/sh_CursorTrail.vs @@ -15,6 +15,7 @@ uniform mat3 g_ToMaskingSpace; uniform mat3 g_ToDrawingSpace; uniform float g_FadeClock; +uniform float g_FadeExponent; void main(void) { @@ -26,7 +27,7 @@ void main(void) vec3 drawingPos = g_ToDrawingSpace * vec3(m_Position, 1.0); v_DrawingPosition = drawingPos.xy / drawingPos.z; - v_Colour = vec4(m_Colour.rgb, m_Colour.a * pow(clamp(m_Time - g_FadeClock, 0.0, 1.0), 1.7)); + v_Colour = vec4(m_Colour.rgb, m_Colour.a * pow(clamp(m_Time - g_FadeClock, 0.0, 1.0), g_FadeExponent)); v_TexCoord = m_TexCoord; v_TexRect = m_TexRect; diff --git a/osu.Game.Resources/Shaders/sh_LegacyCursorTrail.vs b/osu.Game.Resources/Shaders/sh_LegacyCursorTrail.vs deleted file mode 100644 index d9e96d5..0000000 --- a/osu.Game.Resources/Shaders/sh_LegacyCursorTrail.vs +++ /dev/null @@ -1,35 +0,0 @@ -attribute vec2 m_Position; -attribute vec4 m_Colour; -attribute vec2 m_TexCoord; -attribute vec4 m_TexRect; -attribute float m_Time; - -varying vec2 v_DrawingPosition; -varying vec2 v_MaskingPosition; -varying vec4 v_Colour; -varying vec2 v_TexCoord; -varying vec4 v_TexRect; - -uniform mat4 g_ProjMatrix; -uniform mat3 g_ToMaskingSpace; -uniform mat3 g_ToDrawingSpace; - -uniform float g_FadeClock; - -void main(void) -{ - // Transform to position to masking space. - vec3 maskingPos = g_ToMaskingSpace * vec3(m_Position, 1.0); - v_MaskingPosition = maskingPos.xy / maskingPos.z; - - // Transform to position to masking space. - vec3 drawingPos = g_ToDrawingSpace * vec3(m_Position, 1.0); - v_DrawingPosition = drawingPos.xy / drawingPos.z; - - v_Colour = vec4(m_Colour.rgb, m_Colour.a * clamp(m_Time - g_FadeClock, 0.0, 1.0)); - - v_TexCoord = m_TexCoord; - v_TexRect = m_TexRect; - - gl_Position = g_ProjMatrix * vec4(m_Position, 1.0, 1.0); -}