func (t *textureImpl) Upload(dp image.Point, src screen.Buffer, sr image.Rectangle, sender screen.Sender) { // TODO: adjust if dp is outside dst bounds, or sr is outside src bounds. gl.BindTexture(gl.TEXTURE_2D, t.id) m := src.RGBA().SubImage(sr).(*image.RGBA) b := m.Bounds() // TODO check m bounds smaller than t.size gl.TexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, b.Dx(), b.Dy(), gl.RGBA, gl.UNSIGNED_BYTE, m.Pix) // TODO: send a screen.UploadedEvent. }
// Upload copies the host image data to the GL device. func (img *Image) Upload() { gl.BindTexture(gl.TEXTURE_2D, img.Texture) gl.TexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, img.texWidth, img.texHeight, gl.RGBA, gl.UNSIGNED_BYTE, img.Pix) }
// Upload copies the host image data to the GL device. func (img *Image) Upload() { tex := texmap.get(*img.key) gl.BindTexture(gl.TEXTURE_2D, tex.gltex) gl.TexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, tex.width, tex.height, gl.RGBA, gl.UNSIGNED_BYTE, img.RGBA.Pix) }