~eliasnaur/gio

f8221bb2ab3a15c5665f34a5cdf8deebaf6b0d8f — Elias Naur 4 months ago 1a84517
gpu/internal/opengl: don't query FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING on GLES2

It's not supported in OpenGL ES 2.

References: https://todo.sr.ht/~eliasnaur/gio/469
Signed-off-by: Elias Naur <mail@eliasnaur.com>
1 files changed, 10 insertions(+), 6 deletions(-)

M gpu/internal/opengl/opengl.go
M gpu/internal/opengl/opengl.go => gpu/internal/opengl/opengl.go +10 -6
@@ 245,13 245,17 @@ func (b *Backend) BeginFrame(target driver.RenderTarget, clear bool, viewport im
	b.glstate.bindFramebuffer(b.funcs, gl.FRAMEBUFFER, renderFBO)
	if b.gles {
		// If the output framebuffer is not in the sRGB colorspace already, emulate it.
		var fbEncoding int
		if !renderFBO.Valid() {
			fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING)
		} else {
			fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING)
		fbSRGB := false
		if !b.gles || b.glver[0] > 2 {
			var fbEncoding int
			if !renderFBO.Valid() {
				fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING)
			} else {
				fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING)
			}
			fbSRGB = fbEncoding != gl.LINEAR
		}
		if fbEncoding == gl.LINEAR && viewport != (image.Point{}) {
		if !fbSRGB && viewport != (image.Point{}) {
			if b.sRGBFBO == nil {
				sfbo, err := NewSRGBFBO(b.funcs, &b.glstate)
				if err != nil {