65 lines
1.3 KiB
C#
65 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
using OpenTK;
|
|
|
|
namespace BizHawk.Bizware.BizwareGL
|
|
{
|
|
public class PipelineUniform
|
|
{
|
|
internal PipelineUniform(Pipeline owner, UniformInfo info)
|
|
{
|
|
Owner = owner;
|
|
Id = info.Handle;
|
|
SamplerIndex = info.SamplerIndex;
|
|
}
|
|
|
|
public Pipeline Owner { get; private set; }
|
|
public IntPtr Id { get; private set; }
|
|
public int SamplerIndex { get; private set; }
|
|
|
|
public void Set(Matrix4 mat, bool transpose = false)
|
|
{
|
|
Owner.Owner.SetPipelineUniformMatrix(this, mat, transpose);
|
|
}
|
|
|
|
public void Set(Vector4 vec)
|
|
{
|
|
Owner.Owner.SetPipelineUniform(this, vec);
|
|
}
|
|
|
|
public void Set(Vector2 vec)
|
|
{
|
|
Owner.Owner.SetPipelineUniform(this, vec);
|
|
}
|
|
|
|
public void Set(float f)
|
|
{
|
|
Owner.Owner.SetPipelineUniform(this, f);
|
|
}
|
|
|
|
public void Set(Vector4[] vecs)
|
|
{
|
|
Owner.Owner.SetPipelineUniform(this, vecs);
|
|
}
|
|
|
|
public void Set(ref Matrix4 mat, bool transpose = false)
|
|
{
|
|
Owner.Owner.SetPipelineUniformMatrix(this, ref mat, transpose);
|
|
}
|
|
|
|
public void Set(bool value)
|
|
{
|
|
Owner.Owner.SetPipelineUniform(this, value);
|
|
}
|
|
|
|
public void Set(Texture2d tex)
|
|
{
|
|
IntPtr handle;
|
|
if (tex == null)
|
|
handle = Owner.Owner.GetEmptyHandle();
|
|
else handle = tex.Id;
|
|
Owner.Owner.SetPipelineUniformSampler(this, handle);
|
|
}
|
|
}
|
|
} |