示例#1
0
func LoadProgram(program gl.Program, vertexShader gl.VertexShader, fragmentShader gl.FragmentShader) error {
	gl.AttachShader(program, gl.Uint(vertexShader))
	gl.AttachShader(program, gl.Uint(fragmentShader))
	gl.LinkProgram(program)
	var ok gl.Int
	gl.GetProgramiv(program, gl.LINK_STATUS, &ok)
	if ok == 0 {
		fmt.Fprintln(os.Stderr, gl.GetProgramInfoLog(program))
		gl.DeleteProgram(program)
		return errors.New("Failed to link shader program")
	}
	return nil
}
示例#2
0
func (s *StencilOp) Unmask(level int) *StencilOp {
	gl.StencilFunc(gl.ALWAYS, gl.Int(level), ^gl.Uint(0))
	return s
}
示例#3
0
func (s *StencilOp) Mask(level int) *StencilOp {
	gl.StencilFunc(gl.EQUAL, gl.Int(level), ^gl.Uint(0))
	return s
}
示例#4
0
func LoadFragmentShaderSource(shader gl.FragmentShader, filename string) error {
	return LoadShader(gl.Uint(shader), filename)
}
示例#5
0
func LoadVertexShaderSource(shader gl.VertexShader, filename string) error {
	return LoadShader(gl.Uint(shader), filename)
}