本文整理汇总了Golang中github.com/go-gl/gl/v3/3-core/gl.GetError函数的典型用法代码示例。如果您正苦于以下问题:Golang GetError函数的具体用法?Golang GetError怎么用?Golang GetError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetError函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: createVAO
func (p *Program) createVAO() error {
gl.GenVertexArrays(1, &p.vao)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR gl.GenVertexArray %X", e)
}
gl.BindVertexArray(p.vao)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR array.Bind %X", e)
}
return nil
}
开发者ID:kurrik,项目名称:opengl-benchmarks,代码行数:11,代码来源:program.go
示例2: CreateVAO
func CreateVAO() (array uint32, err error) {
gl.GenVertexArrays(1, &array)
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR gl.GenVertexArray %X", e)
return
}
gl.BindVertexArray(array)
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR array.Bind %X", e)
return
}
return
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:13,代码来源:renderer.go
示例3: Unbind
func (tr *TextRenderer) Unbind() error {
gl.BindBuffer(gl.ARRAY_BUFFER, 0)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
return nil
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:7,代码来源:renderer_text.go
示例4: RunVisualization
// Runs the visualization with a set of DelayedNoteData. The DelayedNote data is
// used to push information to the synth as well as represent the data visually.
func RunVisualization(notes *synth.NoteArrangement, oNoteChannel chan synth.DelayedNoteData) error {
window, assets, err := initialize()
if err != nil {
return err
}
defer destroy(window, assets)
// The main update loop.
ct, lt, dt := 0.0, 0.0, 0.0
for !window.ShouldClose() {
// Keeping the current time.
lt = ct
ct = glfw.GetTime()
dt = ct - lt
// Real render loop.
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
if config.DebugMode {
glErr := gl.GetError()
if glErr != gl.NO_ERROR {
fmt.Printf("OpenGL error: %d\n", glErr)
}
}
window.SwapBuffers()
glfw.PollEvents()
if dt < 1/1000.0 {
// Delay the thread to keep up w/ updating?
}
}
return nil
}
开发者ID:crockeo,项目名称:go-tuner,代码行数:37,代码来源:main.go
示例5: Draw
func (lr *LinesRenderer) Draw(line *LineGeometry, mv mgl32.Mat4, style *LineStyle) (err error) {
var (
dataBytes int = len(line.Vertices) * int(lr.stride)
indexBytes int = len(line.Indices) * int(lr.stride)
elementCount int32 = int32(len(line.Indices))
r, g, b, a = style.Color.RGBA()
)
gl.Uniform1f(lr.thicknessLoc, style.Thickness)
gl.Uniform1f(lr.innerLoc, style.Inner)
gl.Uniform4f(lr.colorLoc, float32(r)/255.0, float32(g)/255.0, float32(b)/255.0, float32(a)/255.0)
gl.UniformMatrix4fv(lr.modelviewLoc, 1, false, &mv[0])
if dataBytes > lr.bufferBytes {
lr.bufferBytes = dataBytes
gl.BufferData(gl.ARRAY_BUFFER, dataBytes, gl.Ptr(line.Vertices), gl.STREAM_DRAW)
gl.BufferData(gl.ELEMENT_ARRAY_BUFFER, indexBytes, gl.Ptr(line.Indices), gl.STREAM_DRAW)
} else {
gl.BufferSubData(gl.ARRAY_BUFFER, 0, dataBytes, gl.Ptr(line.Vertices))
gl.BufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, indexBytes, gl.Ptr(line.Indices))
}
gl.DrawElements(gl.TRIANGLES, elementCount, gl.UNSIGNED_INT, gl.PtrOffset(0))
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR: OpenGL error %X", e)
}
return
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:25,代码来源:renderer_lines.go
示例6: NewRenderer
func NewRenderer(bufferSize int) (r *Renderer, err error) {
var (
instance renderInstance
instanceStride = unsafe.Sizeof(instance)
)
r = &Renderer{
shader: core.NewProgram(),
bufferSize: bufferSize,
buffer: make([]renderInstance, bufferSize),
stride: instanceStride,
}
if err = r.shader.Load(VERTEX, FRAGMENT); err != nil {
return
}
r.shader.Bind()
r.vbo = core.NewArrayBuffer()
r.shader.Attrib("f_InstanceFrame", instanceStride).Float(unsafe.Offsetof(instance.frame), 1)
r.shader.Attrib("m_Model", instanceStride).Mat4(unsafe.Offsetof(instance.model), 1)
r.shader.Attrib("v_Color", instanceStride).Vec4(unsafe.Offsetof(instance.color), 1)
r.textureData = r.shader.UniformBlock("TextureData", 1)
r.uView = r.shader.Uniform("m_View")
r.uProj = r.shader.Uniform("m_Projection")
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR: OpenGL error %X", e)
}
return
}
开发者ID:kurrik,项目名称:opengl-benchmarks,代码行数:32,代码来源:renderer.go
示例7: NewLinesRenderer
func NewLinesRenderer(camera *Camera) (lr *LinesRenderer, err error) {
var (
program uint32
vbos = make([]uint32, 2)
point TexturedPoint
)
if program, err = BuildProgram(LINES_VERTEX, LINES_FRAGMENT); err != nil {
return
}
gl.GenBuffers(2, &vbos[0])
lr = &LinesRenderer{
Renderer: NewRenderer(camera),
program: program,
buffer: vbos[0],
indexBuffer: vbos[1],
bufferBytes: 0,
positionLoc: uint32(gl.GetAttribLocation(program, gl.Str("v_Position\x00"))),
normalLoc: uint32(gl.GetAttribLocation(program, gl.Str("v_Normal\x00"))),
miterLoc: uint32(gl.GetAttribLocation(program, gl.Str("f_Miter\x00"))),
modelviewLoc: gl.GetUniformLocation(program, gl.Str("m_ModelView\x00")),
projectionLoc: gl.GetUniformLocation(program, gl.Str("m_Projection\x00")),
thicknessLoc: gl.GetUniformLocation(program, gl.Str("f_Thickness\x00")),
colorLoc: gl.GetUniformLocation(program, gl.Str("v_Color\x00")),
innerLoc: gl.GetUniformLocation(program, gl.Str("f_Inner\x00")),
offPosition: gl.PtrOffset(int(unsafe.Offsetof(point.X))),
offNormal: gl.PtrOffset(int(unsafe.Offsetof(point.TextureX))),
offMiter: gl.PtrOffset(int(unsafe.Offsetof(point.Z))),
stride: int32(unsafe.Sizeof(point)),
}
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR: OpenGL error %X", e)
}
return
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:34,代码来源:renderer_lines.go
示例8: Unbind
func (lr *LinesRenderer) Unbind() (err error) {
gl.BindBuffer(gl.ARRAY_BUFFER, 0)
gl.BindBuffer(gl.ELEMENT_ARRAY_BUFFER, 0)
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR: OpenGL error %X", e)
}
return
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:8,代码来源:renderer_lines.go
示例9: Delete
func (lr *LinesRenderer) Delete() (err error) {
gl.BindBuffer(gl.ARRAY_BUFFER, 0)
gl.BindBuffer(gl.ELEMENT_ARRAY_BUFFER, 0)
gl.DeleteBuffers(1, &lr.buffer)
gl.DeleteBuffers(1, &lr.indexBuffer)
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR: OpenGL error %X", e)
}
return
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:10,代码来源:renderer_lines.go
示例10: draw
func (r *Renderer) draw(geometry *Geometry, count int) (err error) {
if count <= 0 {
return
}
r.vbo.Upload(r.buffer, count*int(r.stride))
gl.DrawArraysInstanced(gl.TRIANGLES, 0, int32(len(geometry.Points)), int32(count))
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR: OpenGL error %X", e)
}
return
}
开发者ID:kurrik,项目名称:opengl-benchmarks,代码行数:11,代码来源:renderer.go
示例11: Draw
func (tr *TextRenderer) Draw(tex *Texture, x, y, scale float32) (err error) {
gl.ActiveTexture(gl.TEXTURE0)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.BindTexture(gl.TEXTURE_2D, tex.Texture)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.Uniform3f(tr.ScaleLoc, float32(tex.Width)*scale, float32(tex.Height)*scale, 1)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.Uniform3f(tr.TransLoc, x, y, 0)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.DrawArrays(gl.TRIANGLE_STRIP, 0, 4)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.BindBuffer(gl.ARRAY_BUFFER, 0)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
return nil
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:27,代码来源:renderer_text.go
示例12: Bind
func (tr *TextRenderer) Bind() error {
gl.UseProgram(tr.Program)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.Uniform1i(tr.TextureUnitLoc, 0)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.BindBuffer(gl.ARRAY_BUFFER, tr.VBO)
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.EnableVertexAttribArray(tr.PositionLoc)
gl.VertexAttribPointer(tr.PositionLoc, 3, gl.FLOAT, false, 5*4, gl.PtrOffset(0))
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.EnableVertexAttribArray(tr.TextureLoc)
gl.VertexAttribPointer(tr.TextureLoc, 2, gl.FLOAT, false, 5*4, gl.PtrOffset(3*4))
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
gl.UniformMatrix4fv(tr.ProjectionLoc, 1, false, &tr.Renderer.Camera.Projection[0])
if e := gl.GetError(); e != 0 {
return fmt.Errorf("ERROR: %X", e)
}
return nil
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:29,代码来源:renderer_text.go
示例13: CreateVBO
func CreateVBO(size int, data interface{}, usage uint32) (buffer uint32, err error) {
gl.GenBuffers(1, &buffer)
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR gl.GenBuffer %X", e)
return
}
gl.BindBuffer(gl.ARRAY_BUFFER, buffer)
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR buffer.Bind %X", e)
return
}
gl.BufferData(gl.ARRAY_BUFFER, size, gl.Ptr(data), usage)
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR gl.BufferData %X", e)
return
}
gl.BindBuffer(gl.ARRAY_BUFFER, 0)
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR buffer.Unbind %X", e)
return
}
return
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:23,代码来源:renderer.go
示例14: Bind
func (lr *LinesRenderer) Bind() (err error) {
gl.UseProgram(lr.program)
gl.BindBuffer(gl.ARRAY_BUFFER, lr.buffer)
gl.BindBuffer(gl.ELEMENT_ARRAY_BUFFER, lr.indexBuffer)
gl.EnableVertexAttribArray(lr.positionLoc)
gl.EnableVertexAttribArray(lr.normalLoc)
gl.EnableVertexAttribArray(lr.miterLoc)
gl.VertexAttribPointer(lr.positionLoc, 2, gl.FLOAT, false, lr.stride, lr.offPosition)
gl.VertexAttribPointer(lr.normalLoc, 2, gl.FLOAT, false, lr.stride, lr.offNormal)
gl.VertexAttribPointer(lr.miterLoc, 1, gl.FLOAT, false, lr.stride, lr.offMiter)
gl.UniformMatrix4fv(lr.projectionLoc, 1, false, &lr.Renderer.Camera.Projection[0])
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR: OpenGL error %X", e)
}
return
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:16,代码来源:renderer_lines.go
示例15: ForceCheck
func ForceCheck() {
switch gl.GetError() {
case gl.INVALID_ENUM:
tlog.Panic("OpenGL Error: GL_INVALID_ENUM")
case gl.INVALID_VALUE:
tlog.Panic("OpenGL Error: GL_INVALID_VALUE")
case gl.INVALID_OPERATION:
tlog.Panic("OpenGL Error: GL_INVALID_OPERATION")
case gl.STACK_OVERFLOW:
tlog.Panic("OpenGL Error: GL_STACK_OVERFLOW")
case gl.STACK_UNDERFLOW:
tlog.Panic("OpenGL Error: GL_STACK_UNDERFLOW")
case gl.OUT_OF_MEMORY:
tlog.Panic("OpenGL Error: GL_OUT_OF_MEMORY")
}
}
开发者ID:hialin,项目名称:hialin,代码行数:16,代码来源:setup.go
示例16: GetGLTexture
func GetGLTexture(img image.Image, smoothing TextureSmoothing) (t uint32, err error) {
var (
data *bytes.Buffer
bounds image.Rectangle
width int
height int
)
if data, err = imageBytes(img); err != nil {
return
}
bounds = img.Bounds()
width = bounds.Max.X - bounds.Min.X
height = bounds.Max.Y - bounds.Min.Y
gl.GenTextures(1, &t)
if e := gl.GetError(); e != 0 {
fmt.Printf("ggt1 ERROR: %s\n", e)
}
gl.BindTexture(gl.TEXTURE_2D, t)
if e := gl.GetError(); e != 0 {
fmt.Printf("ggt2 ERROR: %s\n", e)
}
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, int32(smoothing))
if e := gl.GetError(); e != 0 {
fmt.Printf("ggt3 ERROR: %s\n", e)
}
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, int32(smoothing))
if e := gl.GetError(); e != 0 {
fmt.Printf("ggt4 ERROR: %s\n", e)
}
gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, int32(width), int32(height), 0, gl.RGBA, gl.UNSIGNED_INT_8_8_8_8, gl.Ptr(data.Bytes()))
if e := gl.GetError(); e != 0 {
fmt.Printf("ggt5 ERROR: %s\n", e)
}
gl.GenerateMipmap(gl.TEXTURE_2D)
if e := gl.GetError(); e != 0 {
fmt.Printf("ggt6 ERROR: %s\n", e)
}
gl.BindTexture(gl.TEXTURE_2D, 0)
if e := gl.GetError(); e != 0 {
fmt.Printf("ggt7 ERROR: %s\n", e)
}
return
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:43,代码来源:texture.go
示例17: NewBatchRenderer
func NewBatchRenderer(camera *Camera) (tr *BatchRenderer, err error) {
var (
program uint32
)
if program, err = BuildProgram(BATCH_VERTEX, BATCH_FRAGMENT); err != nil {
return
}
tr = &BatchRenderer{
Renderer: NewRenderer(camera),
Program: program,
PositionLoc: uint32(gl.GetAttribLocation(program, gl.Str("a_Position\x00"))),
TextureLoc: uint32(gl.GetAttribLocation(program, gl.Str("a_TextureCoordinates\x00"))),
TextureUnitLoc: gl.GetUniformLocation(program, gl.Str("u_TextureUnit\x00")),
ModelViewLoc: gl.GetUniformLocation(program, gl.Str("m_ModelViewMatrix\x00")),
ProjectionLoc: gl.GetUniformLocation(program, gl.Str("m_ProjectionMatrix\x00")),
TexOffsetLoc: gl.GetUniformLocation(program, gl.Str("u_TextureOffset\x00")),
}
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR: OpenGL error %X", e)
}
return
}
开发者ID:pikkpoiss,项目名称:twodee,代码行数:22,代码来源:renderer_batch.go
示例18: CreateWindow
func (c *Context) CreateWindow(w, h int, name string) (err error) {
c.w = w
c.h = h
c.name = name
c.createWindow()
c.SetCursor(c.cursor)
gl.Init()
if e := gl.GetError(); e != 0 {
if e != gl.INVALID_ENUM {
err = fmt.Errorf("OpenGL glInit error: %X\n", e)
return
}
}
c.OpenGLVersion = glfw.GetVersionString()
c.ShaderVersion = gl.GoStr(gl.GetString(gl.SHADING_LANGUAGE_VERSION))
gl.Enable(gl.BLEND)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.ClearColor(0.0, 0.0, 0.0, 1.0)
gl.Disable(gl.CULL_FACE)
glfw.SwapInterval(1)
return
}
开发者ID:kurrik,项目名称:opengl-benchmarks,代码行数:22,代码来源:context.go
示例19: GetError
func (r *EffectsRenderer) GetError() error {
if e := gl.GetError(); e != 0 {
return fmt.Errorf("OpenGL error: %X", e)
}
var status = gl.CheckFramebufferStatus(gl.DRAW_FRAMEBUFFER)
switch status {
case gl.FRAMEBUFFER_COMPLETE:
return nil
case gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
return fmt.Errorf("Attachment point unconnected")
case gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
return fmt.Errorf("Missing attachment")
case gl.FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER:
return fmt.Errorf("Draw buffer")
case gl.FRAMEBUFFER_INCOMPLETE_READ_BUFFER:
return fmt.Errorf("Read buffer")
case gl.FRAMEBUFFER_UNSUPPORTED:
return fmt.Errorf("Unsupported config")
default:
return fmt.Errorf("Unknown framebuffer error: %X", status)
}
}
开发者ID:pikkpoiss,项目名称:ld33,代码行数:22,代码来源:effects.go
示例20: linkProgram
func (p *Program) linkProgram(vertex uint32, fragment uint32) (program uint32, err error) {
program = gl.CreateProgram()
gl.AttachShader(program, vertex)
gl.AttachShader(program, fragment)
gl.BindFragDataLocation(program, 0, gl.Str("v_FragData\x00"))
if e := gl.GetError(); e != 0 {
err = fmt.Errorf("ERROR program.BindFragDataLocation %X", e)
return
}
gl.LinkProgram(program)
var status int32
if gl.GetProgramiv(program, gl.LINK_STATUS, &status); status == gl.FALSE {
var length int32
gl.GetProgramiv(program, gl.INFO_LOG_LENGTH, &length)
log := strings.Repeat("\x00", int(length+1))
gl.GetProgramInfoLog(program, length, nil, gl.Str(log))
err = fmt.Errorf("ERROR program link:\n%s", log)
}
gl.DeleteShader(vertex)
gl.DeleteShader(fragment)
return
}
开发者ID:kurrik,项目名称:opengl-benchmarks,代码行数:22,代码来源:program.go
注:本文中的github.com/go-gl/gl/v3/3-core/gl.GetError函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论