add custom shader support classes (based off the "standard" shader types)
This commit is contained in:
parent
b48a13757b
commit
d53ed4147e
|
@ -126,6 +126,10 @@
|
||||||
<Compile Include="Support\StringExtensions.cs" />
|
<Compile Include="Support\StringExtensions.cs" />
|
||||||
<Compile Include="Graphics\ImageFormat.cs" />
|
<Compile Include="Graphics\ImageFormat.cs" />
|
||||||
<Compile Include="Graphics\IPlatformBitmap.cs" />
|
<Compile Include="Graphics\IPlatformBitmap.cs" />
|
||||||
|
<Compile Include="Graphics\CustomShaders\CustomSpriteShader.cs" />
|
||||||
|
<Compile Include="Graphics\CustomShaders\CustomStandardShader.cs" />
|
||||||
|
<Compile Include="Graphics\CustomShaders\CustomVertexLerpShader.cs" />
|
||||||
|
<Compile Include="Graphics\CustomShaders\CustomVertexSkinningShader.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -138,6 +142,7 @@
|
||||||
<Folder Include="Resources\Shaders\" />
|
<Folder Include="Resources\Shaders\" />
|
||||||
<Folder Include="Graphics\BuiltinShaders\" />
|
<Folder Include="Graphics\BuiltinShaders\" />
|
||||||
<Folder Include="Support\" />
|
<Folder Include="Support\" />
|
||||||
|
<Folder Include="Graphics\CustomShaders\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Resources\Fonts\Vera.ttf" />
|
<EmbeddedResource Include="Resources\Fonts\Vera.ttf" />
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Blarg.GameFramework.Graphics.CustomShaders
|
||||||
|
{
|
||||||
|
public class CustomSpriteShader : SpriteShader
|
||||||
|
{
|
||||||
|
public CustomSpriteShader(GraphicsDevice graphicsDevice, string vertexShaderSource, string fragmentShaderSource)
|
||||||
|
: base(graphicsDevice, vertexShaderSource, fragmentShaderSource)
|
||||||
|
{
|
||||||
|
if (!HasUniform(ModelViewMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ModelViewMatrixUniformName));
|
||||||
|
if (!HasUniform(ProjectionMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ProjectionMatrixUniformName));
|
||||||
|
if (!HasUniform(TextureHasAlphaOnlyUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", TextureHasAlphaOnlyUniformName));
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomSpriteShader(GraphicsDevice graphicsDevice, TextReader vertexShaderSourceReader, TextReader fragmentShaderSourceReader)
|
||||||
|
: base(graphicsDevice, vertexShaderSourceReader, fragmentShaderSourceReader)
|
||||||
|
{
|
||||||
|
if (!HasUniform(ModelViewMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ModelViewMatrixUniformName));
|
||||||
|
if (!HasUniform(ProjectionMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ProjectionMatrixUniformName));
|
||||||
|
if (!HasUniform(TextureHasAlphaOnlyUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", TextureHasAlphaOnlyUniformName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Blarg.GameFramework.Graphics.CustomShaders
|
||||||
|
{
|
||||||
|
public class CustomStandardShader : StandardShader
|
||||||
|
{
|
||||||
|
public CustomStandardShader(GraphicsDevice graphicsDevice, string vertexShaderSource, string fragmentShaderSource)
|
||||||
|
: base(graphicsDevice, vertexShaderSource, fragmentShaderSource)
|
||||||
|
{
|
||||||
|
if (!HasUniform(ModelViewMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ModelViewMatrixUniformName));
|
||||||
|
if (!HasUniform(ProjectionMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ProjectionMatrixUniformName));
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomStandardShader(GraphicsDevice graphicsDevice, TextReader vertexShaderSourceReader, TextReader fragmentShaderSourceReader)
|
||||||
|
: base(graphicsDevice, vertexShaderSourceReader, fragmentShaderSourceReader)
|
||||||
|
{
|
||||||
|
if (!HasUniform(ModelViewMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ModelViewMatrixUniformName));
|
||||||
|
if (!HasUniform(ProjectionMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ProjectionMatrixUniformName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Blarg.GameFramework.Graphics.CustomShaders
|
||||||
|
{
|
||||||
|
public class CustomVertexLerpShader : VertexLerpShader
|
||||||
|
{
|
||||||
|
public CustomVertexLerpShader(GraphicsDevice graphicsDevice, string vertexShaderSource, string fragmentShaderSource)
|
||||||
|
: base(graphicsDevice, vertexShaderSource, fragmentShaderSource)
|
||||||
|
{
|
||||||
|
if (!HasUniform(ModelViewMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ModelViewMatrixUniformName));
|
||||||
|
if (!HasUniform(ProjectionMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ProjectionMatrixUniformName));
|
||||||
|
if (!HasUniform(LerpUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", LerpUniformName));
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomVertexLerpShader(GraphicsDevice graphicsDevice, TextReader vertexShaderSourceReader, TextReader fragmentShaderSourceReader)
|
||||||
|
: base(graphicsDevice, vertexShaderSourceReader, fragmentShaderSourceReader)
|
||||||
|
{
|
||||||
|
if (!HasUniform(ModelViewMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ModelViewMatrixUniformName));
|
||||||
|
if (!HasUniform(ProjectionMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ProjectionMatrixUniformName));
|
||||||
|
if (!HasUniform(LerpUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", LerpUniformName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Blarg.GameFramework.Graphics.CustomShaders
|
||||||
|
{
|
||||||
|
public class CustomVertexSkinningShader : VertexSkinningShader
|
||||||
|
{
|
||||||
|
public CustomVertexSkinningShader(GraphicsDevice graphicsDevice, string vertexShaderSource, string fragmentShaderSource)
|
||||||
|
: base(graphicsDevice, vertexShaderSource, fragmentShaderSource)
|
||||||
|
{
|
||||||
|
if (!HasUniform(ModelViewMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ModelViewMatrixUniformName));
|
||||||
|
if (!HasUniform(ProjectionMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ProjectionMatrixUniformName));
|
||||||
|
if (!HasUniform(JointPositionsUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", JointPositionsUniformName));
|
||||||
|
if (!HasUniform(JointRotationsUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", JointRotationsUniformName));
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomVertexSkinningShader(GraphicsDevice graphicsDevice, TextReader vertexShaderSourceReader, TextReader fragmentShaderSourceReader)
|
||||||
|
: base(graphicsDevice, vertexShaderSourceReader, fragmentShaderSourceReader)
|
||||||
|
{
|
||||||
|
if (!HasUniform(ModelViewMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ModelViewMatrixUniformName));
|
||||||
|
if (!HasUniform(ProjectionMatrixUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", ProjectionMatrixUniformName));
|
||||||
|
if (!HasUniform(JointPositionsUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", JointPositionsUniformName));
|
||||||
|
if (!HasUniform(JointRotationsUniformName))
|
||||||
|
throw new InvalidOperationException(String.Format("Missing \"{0}\" uniform.", JointRotationsUniformName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in a new issue