private void Bind(OglShaderStage stage) { if (stage.Type == GalShaderType.Geometry) { //Enhanced layouts are required for Geometry shaders //skip this stage if current driver has no ARB_enhanced_layouts if (!OglExtension.EnhancedLayouts) { return; } } switch (stage.Type) { case GalShaderType.Vertex: Current.Vertex = stage; break; case GalShaderType.TessControl: Current.TessControl = stage; break; case GalShaderType.TessEvaluation: Current.TessEvaluation = stage; break; case GalShaderType.Geometry: Current.Geometry = stage; break; case GalShaderType.Fragment: Current.Fragment = stage; break; } }
private void AttachIfNotNull(int programHandle, OglShaderStage stage) { if (stage != null) { stage.Compile(); GL.AttachShader(programHandle, stage.Handle); } }
private void Bind(OglShaderStage stage) { switch (stage.Type) { case GalShaderType.Vertex: Current.Vertex = stage; break; case GalShaderType.TessControl: Current.TessControl = stage; break; case GalShaderType.TessEvaluation: Current.TessEvaluation = stage; break; case GalShaderType.Geometry: Current.Geometry = stage; break; case GalShaderType.Fragment: Current.Fragment = stage; break; } }