diff --git a/osu.Game.Rulesets.Tau.Tests/osu.Game.Rulesets.Tau.Tests.csproj b/osu.Game.Rulesets.Tau.Tests/osu.Game.Rulesets.Tau.Tests.csproj index dcbe9f10..5554f751 100644 --- a/osu.Game.Rulesets.Tau.Tests/osu.Game.Rulesets.Tau.Tests.csproj +++ b/osu.Game.Rulesets.Tau.Tests/osu.Game.Rulesets.Tau.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/osu.Game.Rulesets.Tau/Resources/Shaders/sh_VisualizerFade.fs b/osu.Game.Rulesets.Tau/Resources/Shaders/sh_VisualizerFade.fs index 9de6930a..598f5dbd 100644 --- a/osu.Game.Rulesets.Tau/Resources/Shaders/sh_VisualizerFade.fs +++ b/osu.Game.Rulesets.Tau/Resources/Shaders/sh_VisualizerFade.fs @@ -2,7 +2,7 @@ #include "sh_Masking.h" #include "sh_TextureWrapping.h" -layout(location = 5) in highp vec2 v_Position; +layout(location = 7) in highp vec2 v_Position; layout(location = 2) in mediump vec2 v_TexCoord; layout(std140, set = 1, binding = 0) uniform m_visualizerParameters { diff --git a/osu.Game.Rulesets.Tau/Resources/Shaders/sh_VisualizerPositionAndColour.vs b/osu.Game.Rulesets.Tau/Resources/Shaders/sh_VisualizerPositionAndColour.vs index 45663a68..b00bf36b 100644 --- a/osu.Game.Rulesets.Tau/Resources/Shaders/sh_VisualizerPositionAndColour.vs +++ b/osu.Game.Rulesets.Tau/Resources/Shaders/sh_VisualizerPositionAndColour.vs @@ -1,29 +1,35 @@ #include "sh_Utils.h" +#include "Internal/sh_MaskingInfo.h" layout(location = 0) in highp vec2 m_Position; layout(location = 1) in lowp vec4 m_Colour; layout(location = 2) in mediump vec2 m_TexCoord; layout(location = 3) in mediump vec4 m_TexRect; layout(location = 4) in mediump vec2 m_BlendRange; +layout(location = 6) in int m_MaskingIndex; layout(location = 0) out highp vec2 v_MaskingPosition; layout(location = 1) out lowp vec4 v_Colour; layout(location = 2) out mediump vec2 v_TexCoord; layout(location = 3) out mediump vec4 v_TexRect; layout(location = 4) out mediump vec2 v_BlendRange; -layout(location = 5) out highp vec2 v_Position; +layout(location = 5) flat out int v_MaskingIndex; +layout(location = 6) out highp vec2 v_ScissorPosition; +layout(location = 7) out highp vec2 v_Position; + void main(void) { - // Transform from screen space to masking space. - highp vec3 maskingPos = g_ToMaskingSpace * vec3(m_Position, 1.0); - v_MaskingPosition = maskingPos.xy / maskingPos.z; + // Transform from screen space to scissor space. + highp vec4 scissorPos = g_MaskingInfo.ToScissorSpace * vec4(m_Position, 1.0, 0.0); + v_ScissorPosition = scissorPos.xy / scissorPos.z; v_Colour = m_Colour; v_TexCoord = m_TexCoord; v_TexRect = m_TexRect; v_BlendRange = m_BlendRange; v_Position = m_Position; + v_MaskingIndex = m_MaskingIndex; gl_Position = g_ProjMatrix * vec4(m_Position, 1.0, 1.0); -} \ No newline at end of file +} diff --git a/osu.Game.Rulesets.Tau/osu.Game.Rulesets.Tau.csproj b/osu.Game.Rulesets.Tau/osu.Game.Rulesets.Tau.csproj index d35d0824..8421c8b5 100644 --- a/osu.Game.Rulesets.Tau/osu.Game.Rulesets.Tau.csproj +++ b/osu.Game.Rulesets.Tau/osu.Game.Rulesets.Tau.csproj @@ -35,7 +35,7 @@ - +