本文整理汇总了Golang中github.com/go-gl/gl/v2/1/gl.Str函数的典型用法代码示例。如果您正苦于以下问题:Golang Str函数的具体用法?Golang Str怎么用?Golang Str使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Str函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: initResources
func initResources() uint32 {
vs := CreateShader("triangle.v.glsl", gl.VERTEX_SHADER)
fs := CreateShader("triangle.f.glsl", gl.FRAGMENT_SHADER)
var linkOk int32
program := gl.CreateProgram()
gl.AttachShader(program, vs)
gl.AttachShader(program, fs)
gl.LinkProgram(program)
gl.GetProgramiv(program, gl.LINK_STATUS, &linkOk)
if linkOk == 0 {
log.Fatal("gl.LinkProgram")
}
gl.GenBuffers(1, &vboTriangle)
gl.BindBuffer(gl.ARRAY_BUFFER, vboTriangle)
gl.BufferData(gl.ARRAY_BUFFER, floatSize*len(triangleAttributes), gl.Ptr(triangleAttributes), gl.STATIC_DRAW)
attributeCoord2d = gl.GetAttribLocation(program, gl.Str("coord2d\x00"))
if attributeCoord2d == -1 {
log.Fatal("failed to bind attribute")
}
attributeVColor = gl.GetAttribLocation(program, gl.Str("v_color\x00"))
if attributeVColor == -1 {
log.Fatal("could not bind attribute v_color")
}
uniformFade = gl.GetUniformLocation(program, gl.Str("fade\x00"))
if uniformFade == -1 {
log.Fatal("could not bind uniform fade")
}
return program
}
开发者ID:eklitzke,项目名称:go-opengl-tutorial,代码行数:35,代码来源:main.go
示例2: GetAttribLocation
func (*backend) GetAttribLocation(p *gg.Program, name string) (*gg.Attribute, error) {
a := gl.GetAttribLocation(p.Value.(uint32), gl.Str(name+"\x00"))
if a < 0 {
return nil, fmt.Errorf("gg: no attribute named " + name)
}
return &gg.Attribute{Value: uint32(a)}, nil
}
开发者ID:dmac,项目名称:gg,代码行数:7,代码来源:gg.go
示例3: getAttribLocationImpl
func (c *Context) getAttribLocationImpl(p Program, location string) attribLocation {
attrib := attribLocation(gl.GetAttribLocation(uint32(p), gl.Str(location+"\x00")))
if attrib == -1 {
panic("opengl: invalid attrib location: " + location)
}
return attrib
}
开发者ID:hajimehoshi,项目名称:ebiten,代码行数:7,代码来源:context_desktop.go
示例4: getUniformLocationImpl
func (c *Context) getUniformLocationImpl(p Program, location string) uniformLocation {
uniform := uniformLocation(gl.GetUniformLocation(uint32(p), gl.Str(location+"\x00")))
if uniform == -1 {
panic("opengl: invalid uniform location: " + location)
}
return uniform
}
开发者ID:hajimehoshi,项目名称:ebiten,代码行数:7,代码来源:context_desktop.go
示例5: CreateShader
func (*backend) CreateShader(src []byte, typ gg.Enum) (*gg.Shader, error) {
csrc := gl.Str(string(append([]byte(src), 0)))
shader := gl.CreateShader(uint32(typ))
gl.ShaderSource(shader, 1, &csrc, nil)
gl.CompileShader(shader)
var status int32
gl.GetShaderiv(shader, gl.COMPILE_STATUS, &status)
if status == gl.TRUE {
return &gg.Shader{Value: shader}, nil
}
var logLength int32
gl.GetShaderiv(shader, gl.INFO_LOG_LENGTH, &logLength)
log := strings.Repeat("\x00", int(logLength+1))
gl.GetShaderInfoLog(shader, logLength, nil, gl.Str(log))
return nil, fmt.Errorf("compile shader: %s%s", src, log)
}
开发者ID:dmac,项目名称:gg,代码行数:16,代码来源:gg.go
示例6: GetUniformLocation
func (c *Context) GetUniformLocation(p Program, location string) UniformLocation {
u := UniformLocation(gl.GetUniformLocation(uint32(p), gl.Str(location+"\x00")))
if u == -1 {
panic("invalid uniform location: " + location)
}
return u
}
开发者ID:DrJosh9000,项目名称:ebiten,代码行数:7,代码来源:context.go
示例7: GetAttribLocation
func (c *Context) GetAttribLocation(p Program, location string) AttribLocation {
a := AttribLocation(gl.GetAttribLocation(uint32(p), gl.Str(location+"\x00")))
if a == -1 {
panic("invalid attrib location: " + location)
}
return a
}
开发者ID:DrJosh9000,项目名称:ebiten,代码行数:7,代码来源:context.go
示例8: GetUniformLocation
func (*backend) GetUniformLocation(p *gg.Program, name string) (*gg.Uniform, error) {
u := gl.GetUniformLocation(p.Value.(uint32), gl.Str(name+"\x00"))
if u < 0 {
return nil, fmt.Errorf("gg: no uniform named " + name)
}
return &gg.Uniform{Value: u}, nil
}
开发者ID:dmac,项目名称:gg,代码行数:7,代码来源:gg.go
示例9: Attrib
func (program *Program) Attrib(attrname string) Attrib {
location := gl.GetAttribLocation(program.id, gl.Str(attrname+"\x00"))
return Attrib{
name: attrname,
location: location,
}
}
开发者ID:PieterD,项目名称:crap,代码行数:7,代码来源:program.go
示例10: getShaderInfoLog
func (s *Shader) getShaderInfoLog(shader uint32, context string) error {
var logLength int32
gl.GetShaderiv(shader, gl.INFO_LOG_LENGTH, &logLength)
log := strings.Repeat("\x00", int(logLength+1))
gl.GetShaderInfoLog(shader, logLength, nil, gl.Str(log))
return fmt.Errorf("%s: %s", context, log)
}
开发者ID:theGeekPirate,项目名称:wolfengo,代码行数:8,代码来源:shader.go
示例11: initGL
func (v *Video) initGL() {
if err := gl.Init(); err != nil {
panic(err)
}
gl.Enable(gl.CULL_FACE)
gl.Enable(gl.DEPTH_TEST)
gl.ClearColor(0.0, 0.0, 0.0, 1.0)
v.prog = createProgram(vertShaderSrcDef, fragShaderSrcDef)
posAttrib := uint32(gl.GetAttribLocation(v.prog, gl.Str("vPosition"+"\x00")))
texCoordAttr := uint32(gl.GetAttribLocation(v.prog, gl.Str("vTexCoord"+"\x00")))
v.textureUni = gl.GetAttribLocation(v.prog, gl.Str("texture"+"\x00"))
var texture uint32
gl.GenTextures(1, &texture)
gl.ActiveTexture(gl.TEXTURE0)
gl.BindTexture(gl.TEXTURE_2D, texture)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)
gl.UseProgram(v.prog)
gl.EnableVertexAttribArray(posAttrib)
gl.EnableVertexAttribArray(texCoordAttr)
//posAttrib.EnableArray()
//texCoordAttr.EnableArray()
var vbo uint32
gl.GenBuffers(1, &vbo)
gl.BindBuffer(gl.ARRAY_BUFFER, vbo)
verts := []float32{-1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0}
gl.BufferData(gl.ARRAY_BUFFER, len(verts)*int(unsafe.Sizeof(verts[0])), gl.Ptr(verts), gl.STATIC_DRAW)
var textCoorBuf uint32
gl.GenBuffers(1, &textCoorBuf)
gl.BindBuffer(gl.ARRAY_BUFFER, textCoorBuf)
texVerts := []float32{0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0}
gl.BufferData(gl.ARRAY_BUFFER, len(texVerts)*int(unsafe.Sizeof(texVerts[0])), gl.Ptr(texVerts), gl.STATIC_DRAW)
gl.VertexAttribPointer(posAttrib, 2, gl.FLOAT, false, 0, gl.PtrOffset(0))
gl.VertexAttribPointer(texCoordAttr, 2, gl.FLOAT, false, 0, gl.PtrOffset(0))
//posAttrib.AttribPointer(2, gl.FLOAT, false, 0, uintptr(0))
//texCoordAttr.AttribPointer(2, gl.FLOAT, false, 0, uintptr(0))
}
开发者ID:badfortrains,项目名称:Fergulator,代码行数:45,代码来源:video.go
示例12: GetActiveUniform
// GetActiveUniform returns details about an active uniform variable.
// A value of 0 for index selects the first active uniform variable.
// Permissible values for index range from 0 to the number of active
// uniform variables minus 1.
//
// http://www.khronos.org/opengles/sdk/docs/man3/html/glGetActiveUniform.xhtml
func GetActiveUniform(p Program, index uint32) (name string, size int, ty Enum) {
var length, si int32
var typ uint32
name = strings.Repeat("\x00", 256)
cname := gl.Str(name)
gl.GetActiveUniform(p.Value, uint32(index), int32(len(name)-1), &length, &si, &typ, cname)
name = name[:strings.IndexRune(name, 0)]
return name, int(si), Enum(typ)
}
开发者ID:tanema,项目名称:amore,代码行数:15,代码来源:gl_opengl.go
示例13: PrintLog
// PrintLog prints the error log for an object
func PrintLog(object uint32) {
var logLength int32
if gl.IsShader(object) {
gl.GetShaderiv(object, gl.INFO_LOG_LENGTH, &logLength)
} else if gl.IsProgram(object) {
gl.GetProgramiv(object, gl.INFO_LOG_LENGTH, &logLength)
} else {
log.Fatal("PrintLog: not a shader or program")
}
infoLog := strings.Repeat("\x00", int(logLength+1))
if gl.IsShader(object) {
gl.GetShaderInfoLog(object, logLength, nil, gl.Str(infoLog))
} else if gl.IsProgram(object) {
gl.GetProgramInfoLog(object, logLength, nil, gl.Str(infoLog))
}
log.Fatal(infoLog)
}
开发者ID:eklitzke,项目名称:go-opengl-tutorial,代码行数:19,代码来源:lib.go
示例14: addUniform
func (s *Shader) addUniform(uniformName string) error {
uniformLocation := gl.GetUniformLocation(s.program, gl.Str(uniformName+"\000"))
if uniformLocation == -1 {
return fmt.Errorf("could not find uniform: %s", uniformName)
}
s.uniforms[uniformName] = uniformLocation
return nil
}
开发者ID:theGeekPirate,项目名称:wolfengo,代码行数:10,代码来源:shader.go
示例15: LinkProgram
func (*backend) LinkProgram(p *gg.Program) error {
pv := p.Value.(uint32)
gl.LinkProgram(pv)
var status int32
gl.GetProgramiv(pv, gl.LINK_STATUS, &status)
if status == gl.TRUE {
return nil
}
var logLength int32
gl.GetProgramiv(pv, gl.INFO_LOG_LENGTH, &logLength)
log := strings.Repeat("\x00", int(logLength+1))
gl.GetProgramInfoLog(pv, logLength, nil, gl.Str(log))
return fmt.Errorf("link program: %s", log)
}
开发者ID:dmac,项目名称:gg,代码行数:14,代码来源:gg.go
示例16: addProgram
func (s *Shader) addProgram(text string, typ uint32) error {
shader := gl.CreateShader(typ)
if shader == 0 {
return errors.New("could not find valid memory location when adding shader")
}
cStr := gl.Str(text + "\000")
gl.ShaderSource(shader, 1, &cStr, nil)
gl.CompileShader(shader)
var result int32
gl.GetShaderiv(shader, gl.COMPILE_STATUS, &result)
if result == 0 {
return s.getShaderInfoLog(shader, "get shader error")
}
gl.AttachShader(s.program, shader)
return nil
}
开发者ID:theGeekPirate,项目名称:wolfengo,代码行数:18,代码来源:shader.go
示例17: loadShader
func loadShader(shaderType uint32, source string) uint32 {
shader := gl.CreateShader(shaderType)
if err := gl.GetError(); err != gl.NO_ERROR {
panic(fmt.Errorf("gl error: %v", err))
}
csource := gl.Str(source)
gl.ShaderSource(shader, 1, &csource, nil)
gl.CompileShader(shader)
var status int32
gl.GetShaderiv(shader, gl.COMPILE_STATUS, &status)
if status != gl.TRUE {
//log := shader.GetInfoLog()
panic(fmt.Errorf("Failed to compile shader: shader: %v", source))
}
return shader
}
开发者ID:badfortrains,项目名称:Fergulator,代码行数:19,代码来源:video.go
示例18: CreateShader
// CreateShader creates a shader object from a source file.
func CreateShader(filename string, xtype uint32) uint32 {
data, err := ioutil.ReadFile(filename)
if err != nil {
log.Fatal(err)
}
dataString := "#version 120\n" + string(data) + "\x00"
dataSrc := gl.Str(dataString)
res := gl.CreateShader(xtype)
gl.ShaderSource(res, 1, &dataSrc, nil)
gl.CompileShader(res)
var compileOk int32
gl.GetShaderiv(res, gl.COMPILE_STATUS, &compileOk)
if compileOk == gl.FALSE {
PrintLog(res)
gl.DeleteShader(res)
}
return res
}
开发者ID:eklitzke,项目名称:go-opengl-tutorial,代码行数:22,代码来源:lib.go
示例19: NewShader
func (c *Context) NewShader(shaderType ShaderType, source string) (Shader, error) {
s := gl.CreateShader(uint32(shaderType))
if s == 0 {
return 0, errors.New("glCreateShader failed")
}
glSource := gl.Str(source + "\x00")
gl.ShaderSource(uint32(s), 1, &glSource, nil)
gl.CompileShader(s)
var v int32
gl.GetShaderiv(s, gl.COMPILE_STATUS, &v)
if v == gl.FALSE {
log := []uint8{}
gl.GetShaderiv(uint32(s), gl.INFO_LOG_LENGTH, &v)
if v != 0 {
log = make([]uint8, int(v))
gl.GetShaderInfoLog(uint32(s), v, nil, (*uint8)(gl.Ptr(log)))
}
return 0, errors.New(fmt.Sprintf("shader compile failed: %s", string(log)))
}
return Shader(s), nil
}
开发者ID:DrJosh9000,项目名称:ebiten,代码行数:23,代码来源:context.go
示例20: GetAttribLocation
// GetAttribLocation returns the location of an attribute variable.
//
// http://www.khronos.org/opengles/sdk/docs/man3/html/glGetAttribLocation.xhtml
func GetAttribLocation(p Program, name string) Attrib {
return Attrib{Value: uint(gl.GetAttribLocation(p.Value, gl.Str(name+"\x00")))}
}
开发者ID:tanema,项目名称:amore,代码行数:6,代码来源:gl_opengl.go
注:本文中的github.com/go-gl/gl/v2/1/gl.Str函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论