public string GetUniformForUsage(UniformUsage usage) { string uniform; _usageToUniform.TryGetValue(usage, out uniform); return(uniform); }
public bool GetUniformValue(UniformUsage usage, out IUniformValue value) { value = null; if (usage == UniformUsage.World) { value = UniformValue.Create(World); } else if (usage == UniformUsage.WorldView) { if (_camera != null) { value = UniformValue.Create(Matrix4.Mult(World, _camera.View)); } else { value = UniformValue.Create(World); } } else if (usage == UniformUsage.WorldViewProj) { if (_camera != null) { value = UniformValue.Create(Matrix4.Mult(World, _viewProjection)); } else { value = UniformValue.Create(World); } } else if (usage == UniformUsage.ViewPort) { if (_camera != null) { value = UniformValue.Create(_camera.Viewport.GetAsVector4()); } else { value = UniformValue.Create(new Vector4(0, 0, Width, Height)); } } else if (usage == UniformUsage.NearFar) { if (_camera != null) { value = UniformValue.Create(new Vector2(_camera.Near, _camera.Far)); } else { value = UniformValue.Create(new Vector2(1f, 100f)); } } return(value != null); }
public void Add(string uniformName, UniformUsage usage) { _uniformToUsage.Add(uniformName, usage); _usageToUniform.Add(usage, uniformName); }