mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
gpu/internal/opengl: restore Android emulator OpenGL workaround
For some reason, the Android emulator OpenGL implementation needs the output framebuffer current when eglSwapBuffers is called; otherwise sRGB emulation breaks. We used to restore the default FBO explicitly,9b5e9ae607restored it implicitly through automatic state restoring, but30ecf75a0fbroke that by only saving and restoring shared context state. This change restores the explicit behaviour for non-shared contexts. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"image"
|
||||
"runtime"
|
||||
"strings"
|
||||
"time"
|
||||
"unsafe"
|
||||
@@ -297,6 +298,10 @@ func (b *Backend) EndFrame() {
|
||||
}
|
||||
if b.sharedCtx {
|
||||
b.restoreState(b.savedState)
|
||||
} else if runtime.GOOS == "android" {
|
||||
// The Android emulator needs the output framebuffer to be current when
|
||||
// eglSwapBuffers is called.
|
||||
b.glstate.bindFramebuffer(b.funcs, gl.FRAMEBUFFER, b.outputFBO)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user