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>
This commit is contained in:
Elias Naur
2023-01-06 18:51:20 -06:00
parent 1a84517b12
commit f8221bb2ab
+5 -1
View File
@@ -245,13 +245,17 @@ func (b *Backend) BeginFrame(target driver.RenderTarget, clear bool, viewport im
b.glstate.bindFramebuffer(b.funcs, gl.FRAMEBUFFER, renderFBO) b.glstate.bindFramebuffer(b.funcs, gl.FRAMEBUFFER, renderFBO)
if b.gles { if b.gles {
// If the output framebuffer is not in the sRGB colorspace already, emulate it. // If the output framebuffer is not in the sRGB colorspace already, emulate it.
fbSRGB := false
if !b.gles || b.glver[0] > 2 {
var fbEncoding int var fbEncoding int
if !renderFBO.Valid() { if !renderFBO.Valid() {
fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING)
} else { } else {
fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING)
} }
if fbEncoding == gl.LINEAR && viewport != (image.Point{}) { fbSRGB = fbEncoding != gl.LINEAR
}
if !fbSRGB && viewport != (image.Point{}) {
if b.sRGBFBO == nil { if b.sRGBFBO == nil {
sfbo, err := NewSRGBFBO(b.funcs, &b.glstate) sfbo, err := NewSRGBFBO(b.funcs, &b.glstate)
if err != nil { if err != nil {