本文整理匯總了Golang中github.com/gopherjs/webgl.Context.CreateProgram方法的典型用法代碼示例。如果您正苦於以下問題:Golang Context.CreateProgram方法的具體用法?Golang Context.CreateProgram怎麽用?Golang Context.CreateProgram使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/gopherjs/webgl.Context
的用法示例。
在下文中一共展示了Context.CreateProgram方法的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
}