mirror of
https://github.com/ppy/osu.git
synced 2025-01-06 07:42:55 +08:00
Add sample shaders and test case for ruleset-specific shaders
This commit is contained in:
parent
eabcbd1d42
commit
c933cbe89d
11
osu.Game.Tests/Resources/Shaders/sh_TestFragment.fs
Normal file
11
osu.Game.Tests/Resources/Shaders/sh_TestFragment.fs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include "sh_Utils.h"
|
||||||
|
|
||||||
|
varying mediump vec2 v_TexCoord;
|
||||||
|
varying mediump vec4 v_TexRect;
|
||||||
|
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
float hueValue = v_TexCoord.x / (v_TexRect[2] - v_TexRect[0]);
|
||||||
|
gl_FragColor = hsv2rgb(vec4(hueValue, 1, 1, 1));
|
||||||
|
}
|
||||||
|
|
31
osu.Game.Tests/Resources/Shaders/sh_TestVertex.vs
Normal file
31
osu.Game.Tests/Resources/Shaders/sh_TestVertex.vs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include "sh_Utils.h"
|
||||||
|
|
||||||
|
attribute highp vec2 m_Position;
|
||||||
|
attribute lowp vec4 m_Colour;
|
||||||
|
attribute mediump vec2 m_TexCoord;
|
||||||
|
attribute mediump vec4 m_TexRect;
|
||||||
|
attribute mediump vec2 m_BlendRange;
|
||||||
|
|
||||||
|
varying highp vec2 v_MaskingPosition;
|
||||||
|
varying lowp vec4 v_Colour;
|
||||||
|
varying mediump vec2 v_TexCoord;
|
||||||
|
varying mediump vec4 v_TexRect;
|
||||||
|
varying mediump vec2 v_BlendRange;
|
||||||
|
|
||||||
|
uniform highp mat4 g_ProjMatrix;
|
||||||
|
uniform highp mat3 g_ToMaskingSpace;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
v_Colour = m_Colour;
|
||||||
|
v_TexCoord = m_TexCoord;
|
||||||
|
v_TexRect = m_TexRect;
|
||||||
|
v_BlendRange = m_BlendRange;
|
||||||
|
|
||||||
|
gl_Position = gProjMatrix * vec4(m_Position, 1.0, 1.0);
|
||||||
|
}
|
||||||
|
|
@ -7,6 +7,7 @@ using NUnit.Framework;
|
|||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Audio.Sample;
|
using osu.Framework.Audio.Sample;
|
||||||
using osu.Framework.Configuration.Tracking;
|
using osu.Framework.Configuration.Tracking;
|
||||||
|
using osu.Framework.Graphics.Shaders;
|
||||||
using osu.Framework.Graphics.Textures;
|
using osu.Framework.Graphics.Textures;
|
||||||
using osu.Framework.IO.Stores;
|
using osu.Framework.IO.Stores;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
@ -45,6 +46,14 @@ namespace osu.Game.Tests.Testing
|
|||||||
Dependencies.Get<ISampleStore>().Get(@"test-sample") != null);
|
Dependencies.Get<ISampleStore>().Get(@"test-sample") != null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestRetrieveShader()
|
||||||
|
{
|
||||||
|
AddAssert("ruleset shaders retrieved", () =>
|
||||||
|
Dependencies.Get<ShaderManager>().LoadRaw(@"sh_TestVertex.vs") != null &&
|
||||||
|
Dependencies.Get<ShaderManager>().LoadRaw(@"sh_TestFragment.fs") != null);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestResolveConfigManager()
|
public void TestResolveConfigManager()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user