/// <summary>
/// Load a new shader
/// </summary>
/// <param name="vertexShader">The vertexshader.</param>
/// <param name="fragmentShader">The fragmentshader</param>
public static Shader Load(StringReader vertexShader, StringReader fragmentShader)
{
var shader = new Shader();
string vertexShaderCode = vertexShader.ReadToEnd();
string fragmentShaderCode = fragmentShader.ReadToEnd();
if (string.IsNullOrEmpty(vertexShaderCode) && string.IsNullOrEmpty(fragmentShaderCode))
{
throw new InvalidOperationException("Both vertex and fragement shader code are empty.");
}
if (string.IsNullOrEmpty(vertexShaderCode) == false)
{
shader.AttachShaderCode(vertexShaderCode, ShaderType.VertexShader);
}
if (string.IsNullOrEmpty(fragmentShaderCode) == false)
{
shader.AttachShaderCode(fragmentShaderCode, ShaderType.FragmentShader);
}
shader.Build();
return shader;
}