From cec7813e76aef77f51762e66d1c56184ca8f4e0b Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Sun, 13 Apr 2025 13:52:52 +0900 Subject: [PATCH] Attempted OpenGL calls to fix flickering on mobile --- src/main.cc | 4 ++++ src/screen.cc | 9 +++++++++ src/screen_trunner.cc | 9 +++++++++ 3 files changed, 22 insertions(+) diff --git a/src/main.cc b/src/main.cc index 5dfb1e5..6c82a44 100644 --- a/src/main.cc +++ b/src/main.cc @@ -16,6 +16,8 @@ #ifdef __EMSCRIPTEN__ +//#include + Game *global_game_ptr = nullptr; extern "C" { @@ -77,6 +79,8 @@ int main() { emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, &game, false, resize_event_callback); + //glEnable(GL_DEPTH_TEST); + emscripten_set_main_loop_arg(jumpartifact_demo_update, &game, 0, 1); #else { diff --git a/src/screen.cc b/src/screen.cc index 8de103f..2570c5b 100644 --- a/src/screen.cc +++ b/src/screen.cc @@ -12,6 +12,10 @@ // local includes #include "screen_test.h" +#ifdef __EMSCRIPTEN__ +//#include +#endif + Screen::Screen(std::weak_ptr stack) : stack(stack) {} ScreenStack::PendingAction::PendingAction() : screen(), action(Action::NOP) {} @@ -80,6 +84,11 @@ void ScreenStack::draw() { } BeginDrawing(); + +#ifdef __EMSCRIPTEN__ + //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); +#endif + DrawTextureRec( render_texture->texture, Rectangle{0, 0, (float)GetScreenWidth(), (float)-GetScreenHeight()}, diff --git a/src/screen_trunner.cc b/src/screen_trunner.cc index 1a87355..915518e 100644 --- a/src/screen_trunner.cc +++ b/src/screen_trunner.cc @@ -18,6 +18,10 @@ #include "ems.h" #include "screen_walker_hack.h" +#ifdef __EMSCRIPTEN__ +//#include +#endif + TRunnerScreen::TRunnerScreen(std::weak_ptr stack) : Screen(stack), surface(), @@ -476,6 +480,11 @@ bool TRunnerScreen::draw(RenderTexture *render_texture) { } BeginTextureMode(*render_texture); + +#ifdef __EMSCRIPTEN__ + //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); +#endif + DrawTextureRec( bgRenderTexture.texture, Rectangle{0, 0, (float)GetScreenWidth(), (float)-GetScreenHeight()}, -- 2.49.0