From a572513b01d0c48a64f4ebf8c181c2689c2c5f2f Mon Sep 17 00:00:00 2001 From: Lubos Date: Tue, 19 Apr 2022 21:50:56 +0200 Subject: [PATCH] Improve pause behaviour --- android/app/src/main/cpp/code/vr/vr_base.c | 5 +++++ android/app/src/main/cpp/code/vr/vr_base.h | 1 + android/app/src/main/cpp/code/vr/vr_renderer.c | 2 ++ android/app/src/main/cpp/main.cpp | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/cpp/code/vr/vr_base.c b/android/app/src/main/cpp/code/vr/vr_base.c index 6eca402b..6384b713 100644 --- a/android/app/src/main/cpp/code/vr/vr_base.c +++ b/android/app/src/main/cpp/code/vr/vr_base.c @@ -234,6 +234,11 @@ engine_t* VR_GetEngine( void ) { return &vr_engine; } +bool VR_isPauseable( void ) +{ + return (bool)( ( clc.state == CA_ACTIVE) && !Cvar_VariableValue ("cl_paused") ); +} + bool VR_useScreenLayer( void ) { //intermission is never full screen diff --git a/android/app/src/main/cpp/code/vr/vr_base.h b/android/app/src/main/cpp/code/vr/vr_base.h index 6fb0c6ac..1cc4b14a 100644 --- a/android/app/src/main/cpp/code/vr/vr_base.h +++ b/android/app/src/main/cpp/code/vr/vr_base.h @@ -12,6 +12,7 @@ void VR_EnterVR( engine_t* engine, ovrJava java ); void VR_LeaveVR( engine_t* engine ); engine_t* VR_GetEngine( void ); +bool VR_isPauseable( void ); bool VR_useScreenLayer( void ); float radians(float deg); diff --git a/android/app/src/main/cpp/code/vr/vr_renderer.c b/android/app/src/main/cpp/code/vr/vr_renderer.c index 3f27ce47..5c973feb 100644 --- a/android/app/src/main/cpp/code/vr/vr_renderer.c +++ b/android/app/src/main/cpp/code/vr/vr_renderer.c @@ -318,6 +318,8 @@ void VR_DrawFrame( engine_t* engine ) { framebuffers[0].framebuffers[framebuffers[0].swapchainIndex], framebuffers[1].framebuffers[framebuffers[1].swapchainIndex]); + VR_ClearFrameBuffer(engine->framebuffers.framebuffers[engine->framebuffers.swapchainIndex], eyeW, eyeH); + Com_Frame(); for (int eye = 0; eye < VRAPI_FRAME_LAYER_EYE_MAX; ++eye) { diff --git a/android/app/src/main/cpp/main.cpp b/android/app/src/main/cpp/main.cpp index 791522fc..c5d9ee09 100644 --- a/android/app/src/main/cpp/main.cpp +++ b/android/app/src/main/cpp/main.cpp @@ -95,7 +95,7 @@ int main(int argc, char* argv[]) { while (1) { if (hasFocus != g_HasFocus) { hasFocus = g_HasFocus; - if (!hasFocus && !Cvar_VariableValue ("cl_paused")) { + if (!hasFocus && VR_isPauseable()) { Com_QueueEvent( Sys_Milliseconds(), SE_KEY, K_ESCAPE, qtrue, 0, NULL ); //Com_QueueEvent( Sys_Milliseconds(), SE_KEY, K_CONSOLE, qtrue, 0, NULL ); paused = true;