Stale GL_UNPACK state in gl4es and a missing pre-release GPU sync caused diagonal-banded corruption in the 3D view. Synthetic key press/release must track the real controller button or touch down/up edges, not fire together in one call - fixes a typed movement key sticking forever, then a follow-up that had silently broken A-button jump and on-screen keyboard arrow keys. Also adds force-rebuild.sh for the known stageEngine stale-cache issue.
This commit is contained in:
@@ -199,11 +199,18 @@
|
||||
#include "InitMac.h"
|
||||
#include "Modding.h"
|
||||
#include "OpenGL.h"
|
||||
@@ -301,6 +305,21 @@
|
||||
@@ -301,6 +305,28 @@
|
||||
}
|
||||
|
||||
void SDLDraw() {
|
||||
+#ifdef __ANDROID__
|
||||
+ // Diagnostic: logs once per transition (including the very first
|
||||
+ // frame) between the OpenGL 3D render path and the plain
|
||||
+ // software-composited 2D path (splash/menus/cutscenes) below - so a
|
||||
+ // logcat capture immediately shows which one is active without
|
||||
+ // needing to infer it from screenshots.
|
||||
+ static int s_last_render_mode = -1; // -1 = not yet logged
|
||||
+
|
||||
+ // The true once-a-frame present hook for the immersive OpenXR path -
|
||||
+ // unlike opengl_swap_and_restore() below, this runs every frame
|
||||
+ // regardless of should_opengl_swap() (e.g. also during the splash
|
||||
@@ -221,17 +228,25 @@
|
||||
if (should_opengl_swap()) {
|
||||
// We want the UI background to be transparent!
|
||||
sdlPalette->colors[255].a = 0x00;
|
||||
@@ -310,14 +329,27 @@
|
||||
@@ -310,14 +336,35 @@
|
||||
|
||||
// Set the palette back, and we are done
|
||||
sdlPalette->colors[255].a = 0xff;
|
||||
+#ifdef __ANDROID__
|
||||
+ if (s_last_render_mode != 1) {
|
||||
+ s_last_render_mode = 1;
|
||||
+ INFO("Game rendering active: OpenGL (3D) mode");
|
||||
+ }
|
||||
+ xr_frame_end();
|
||||
+#endif
|
||||
return;
|
||||
}
|
||||
|
||||
+#ifdef __ANDROID__
|
||||
+ if (s_last_render_mode != 0) {
|
||||
+ s_last_render_mode = 0;
|
||||
+ INFO("Game rendering active: software (2D) mode");
|
||||
+ }
|
||||
+ // Same software-rendered frame the desktop path below would present
|
||||
+ // via SDL_RenderCopy/SDL_RenderPresent, composited into the XR
|
||||
+ // swapchain image xr_frame_begin() bound above instead - SDL's
|
||||
|
||||
Reference in New Issue
Block a user