本文整理汇总了Golang中github.com/gopherjs/webgl.Context.LinkProgram方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.LinkProgram方法的具体用法?Golang Context.LinkProgram怎么用?Golang Context.LinkProgram使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gopherjs/webgl.Context
的用法示例。
在下文中一共展示了Context.LinkProgram方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: setupShaders
func setupShaders(gl *webgl.Context) *js.Object {
vs := gl.CreateShader(gl.VERTEX_SHADER)
gl.ShaderSource(vs, vsSource)
gl.CompileShader(vs)
if gl.GetShaderParameter(vs, gl.COMPILE_STATUS).Bool() == false {
throw(errors.New(gl.GetShaderInfoLog(vs)))
}
ps := gl.CreateShader(gl.FRAGMENT_SHADER)
gl.ShaderSource(ps, psSource)
gl.CompileShader(ps)
if gl.GetShaderParameter(ps, gl.COMPILE_STATUS).Bool() == false {
throw(errors.New(gl.GetShaderInfoLog(ps)))
}
program := gl.CreateProgram()
gl.AttachShader(program, vs)
gl.AttachShader(program, ps)
gl.LinkProgram(program)
gl.UseProgram(program)
return program
}
示例2: initShader
func initShader(gl *webgl.Context, canvas *js.Object) (*js.Object, bool) {
shader := gl.CreateProgram()
vertexShader, ok := getShader(gl, gl.VERTEX_SHADER, vertexShaderSource)
if !ok {
js.Global.Call("alert", "Error getting vertex shader")
return nil, false
}
fragShader, ok := getShader(gl, gl.FRAGMENT_SHADER, fragShaderSource)
if !ok {
js.Global.Call("alert", "Error getting fragment shader")
return nil, false
}
gl.AttachShader(shader, vertexShader)
gl.AttachShader(shader, fragShader)
gl.LinkProgram(shader)
if !gl.GetProgramParameterb(shader, gl.LINK_STATUS) {
js.Global.Call("alert", "couldnt init shaders :(")
return nil, false
}
gl.UseProgram(shader)
return shader, true
}