public BaseRenderPass() { for (int i = 0; i < boneCache.Length; i++) { if ((i%16)%5 == 0) boneCache[i] = 1; } shader = ShaderFactory.Create(File.OpenRead("../FX/skin.vert"), File.OpenRead("../FX/skin.frag")); }
private static void Validate(Shader shader) { int result; GL.GetProgram(shader.ID, ProgramParameter.ValidateStatus, out result); if (result == 1) return; string slog, vlog, flog; GL.GetProgramInfoLog(shader.ID, out slog); GL.GetShaderInfoLog(shader.VertexHandle, out vlog); GL.GetShaderInfoLog(shader.FragmentHandle, out flog); throw new EngineException(string.Format("Shader linking failed: {0}\n{1}\n{2}", slog, vlog, flog)); }
private static Shader Compile(string vsData, string fsData) { var shader = new Shader(); GL.ShaderSource(shader.VertexHandle, vsData); GL.ShaderSource(shader.FragmentHandle, fsData); GL.CompileShader(shader.VertexHandle); GL.CompileShader(shader.FragmentHandle); GL.AttachShader(shader.ID, shader.VertexHandle); GL.AttachShader(shader.ID, shader.FragmentHandle); GL.LinkProgram(shader.ID); return shader; }
public void Enable() { Current = this; GL.UseProgram(ID); }