Add support for boolean uniforms.
This commit is contained in:
@@ -89,6 +89,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
public interface IShader
|
public interface IShader
|
||||||
{
|
{
|
||||||
|
void SetBool(string name, bool value);
|
||||||
void SetVec(string name, float x);
|
void SetVec(string name, float x);
|
||||||
void SetVec(string name, float x, float y);
|
void SetVec(string name, float x, float y);
|
||||||
void SetVec(string name, float[] vec, int length);
|
void SetVec(string name, float[] vec, int length);
|
||||||
|
|||||||
@@ -148,6 +148,17 @@ namespace OpenRA.Platforms.Default
|
|||||||
textures[texUnit] = t;
|
textures[texUnit] = t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetBool(string name, bool value)
|
||||||
|
{
|
||||||
|
VerifyThreadAffinity();
|
||||||
|
GL.UseProgram(program);
|
||||||
|
ErrorHandler.CheckGlError();
|
||||||
|
var param = GL.GetUniformLocation(program, name);
|
||||||
|
ErrorHandler.CheckGlError();
|
||||||
|
GL.Uniform1(param, value ? 1 : 0);
|
||||||
|
ErrorHandler.CheckGlError();
|
||||||
|
}
|
||||||
|
|
||||||
public void SetVec(string name, float x)
|
public void SetVec(string name, float x)
|
||||||
{
|
{
|
||||||
VerifyThreadAffinity();
|
VerifyThreadAffinity();
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ namespace OpenRA.Platforms.Null
|
|||||||
|
|
||||||
public class NullShader : IShader
|
public class NullShader : IShader
|
||||||
{
|
{
|
||||||
|
public void SetBool(string name, bool value) { }
|
||||||
public void SetVec(string name, float x) { }
|
public void SetVec(string name, float x) { }
|
||||||
public void SetVec(string name, float x, float y) { }
|
public void SetVec(string name, float x, float y) { }
|
||||||
public void SetVec(string name, float[] vec, int length) { }
|
public void SetVec(string name, float[] vec, int length) { }
|
||||||
|
|||||||
Reference in New Issue
Block a user