func (c *Context) DeleteTexture(t Texture) { gl := c.gl if !gl.IsTexture(mgl.Texture(t)) { return } if c.lastTexture == t { c.lastTexture = invalidTexture } gl.DeleteTexture(mgl.Texture(t)) }
func (c *Context) NewFramebuffer(texture Texture) (Framebuffer, error) { gl := c.gl f := gl.CreateFramebuffer() if f.Value <= 0 { return Framebuffer{}, errors.New("opengl: creating framebuffer failed: gl.IsFramebuffer returns false") } c.bindFramebuffer(Framebuffer(f)) gl.FramebufferTexture2D(mgl.FRAMEBUFFER, mgl.COLOR_ATTACHMENT0, mgl.TEXTURE_2D, mgl.Texture(texture), 0) s := gl.CheckFramebufferStatus(mgl.FRAMEBUFFER) if s != mgl.FRAMEBUFFER_COMPLETE { if s != 0 { return Framebuffer{}, fmt.Errorf("opengl: creating framebuffer failed: %v", s) } if e := gl.GetError(); e != mgl.NO_ERROR { return Framebuffer{}, fmt.Errorf("opengl: creating framebuffer failed: (glGetError) %d", e) } return Framebuffer{}, fmt.Errorf("opengl: creating framebuffer failed: unknown error") } return Framebuffer(f), nil }
func (c *Context) IsTexture(t Texture) bool { gl := c.gl return gl.IsTexture(mgl.Texture(t)) }
func (c *Context) bindTextureImpl(t Texture) error { gl := c.gl gl.BindTexture(mgl.TEXTURE_2D, mgl.Texture(t)) return nil }