From 1a84517b12ba0faec346d933c278f56c2844deb4 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Fri, 6 Jan 2023 18:40:22 -0600 Subject: [PATCH] gpu/internal/opengl: avoid UNPACK_ROW_LENGTH/PACK_ROW_LENGTH on GLES2 Similarly to WebGL1, they're not supported in OpenGL ES 2.0. References: https://todo.sr.ht/~eliasnaur/gio/469 Signed-off-by: Elias Naur --- gpu/internal/opengl/opengl.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/gpu/internal/opengl/opengl.go b/gpu/internal/opengl/opengl.go index 7ce5a577..4cb3f88f 100644 --- a/gpu/internal/opengl/opengl.go +++ b/gpu/internal/opengl/opengl.go @@ -303,14 +303,16 @@ func (b *Backend) EndFrame() { func (b *Backend) queryState() glState { s := glState{ - prog: gl.Program(b.funcs.GetBinding(gl.CURRENT_PROGRAM)), - arrayBuf: gl.Buffer(b.funcs.GetBinding(gl.ARRAY_BUFFER_BINDING)), - elemBuf: gl.Buffer(b.funcs.GetBinding(gl.ELEMENT_ARRAY_BUFFER_BINDING)), - drawFBO: gl.Framebuffer(b.funcs.GetBinding(gl.FRAMEBUFFER_BINDING)), - clearColor: b.funcs.GetFloat4(gl.COLOR_CLEAR_VALUE), - viewport: b.funcs.GetInteger4(gl.VIEWPORT), - unpack_row_length: b.funcs.GetInteger(gl.UNPACK_ROW_LENGTH), - pack_row_length: b.funcs.GetInteger(gl.PACK_ROW_LENGTH), + prog: gl.Program(b.funcs.GetBinding(gl.CURRENT_PROGRAM)), + arrayBuf: gl.Buffer(b.funcs.GetBinding(gl.ARRAY_BUFFER_BINDING)), + elemBuf: gl.Buffer(b.funcs.GetBinding(gl.ELEMENT_ARRAY_BUFFER_BINDING)), + drawFBO: gl.Framebuffer(b.funcs.GetBinding(gl.FRAMEBUFFER_BINDING)), + clearColor: b.funcs.GetFloat4(gl.COLOR_CLEAR_VALUE), + viewport: b.funcs.GetInteger4(gl.VIEWPORT), + } + if !b.gles || b.glver[0] > 2 { + s.unpack_row_length = b.funcs.GetInteger(gl.UNPACK_ROW_LENGTH) + s.pack_row_length = b.funcs.GetInteger(gl.PACK_ROW_LENGTH) } s.blend.enable = b.funcs.IsEnabled(gl.BLEND) s.blend.srcRGB = gl.Enum(b.funcs.GetInteger(gl.BLEND_SRC_RGB))