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
+10 -6
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.
var fbEncoding int fbSRGB := false
if !renderFBO.Valid() { if !b.gles || b.glver[0] > 2 {
fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) var fbEncoding int
} else { if !renderFBO.Valid() {
fbEncoding = b.funcs.GetFramebufferAttachmentParameteri(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) 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 { if b.sRGBFBO == nil {
sfbo, err := NewSRGBFBO(b.funcs, &b.glstate) sfbo, err := NewSRGBFBO(b.funcs, &b.glstate)
if err != nil { if err != nil {