From 9da9c7459e4523c7a8e56f4ccbc5caa301e46cb5 Mon Sep 17 00:00:00 2001 From: korenkonder Date: Tue, 26 Dec 2023 18:46:36 +0300 Subject: [PATCH] Clear screen in Data Test --- src/CRE/render_manager.cpp | 4 ++++ src/CRE/render_manager.hpp | 1 + src/ReDIVA/game_state.cpp | 33 ++++++++++++++++++++++++++++++--- src/ReDIVA/pv_game/pv_game.cpp | 1 + src/ReDIVA/system_startup.cpp | 1 + 5 files changed, 37 insertions(+), 3 deletions(-) diff --git a/src/CRE/render_manager.cpp b/src/CRE/render_manager.cpp index 6c78aa98..cf92dd1b 100644 --- a/src/CRE/render_manager.cpp +++ b/src/CRE/render_manager.cpp @@ -208,6 +208,10 @@ namespace rndr { glBindRenderbuffer(GL_RENDERBUFFER, 0); } + void RenderManager::set_clear(bool value) { + clear = value; + } + void RenderManager::set_effect_texture(texture* value) { effect_texture = value; } diff --git a/src/CRE/render_manager.hpp b/src/CRE/render_manager.hpp index 56c070da..9d74e452 100644 --- a/src/CRE/render_manager.hpp +++ b/src/CRE/render_manager.hpp @@ -95,6 +95,7 @@ namespace rndr { RenderTexture& get_render_texture(int32_t index); void reset(); void resize(int32_t width, int32_t height); + void set_clear(bool value); void set_effect_texture(texture* value); void set_multisample(bool value); void set_npr_param(int32_t value); diff --git a/src/ReDIVA/game_state.cpp b/src/ReDIVA/game_state.cpp index 966b8fe2..cd2d4905 100644 --- a/src/ReDIVA/game_state.cpp +++ b/src/ReDIVA/game_state.cpp @@ -972,6 +972,9 @@ bool GameState::Game::Dest() { } bool GameState::DataTest::Init() { + rctx_ptr->render_manager->set_multisample(false); + rctx_ptr->render_manager->set_clear(true); + data_test_game_state_prev = game_state_get()->game_state_prev; task_rob_manager_add_task(); return true; } @@ -987,12 +990,19 @@ bool GameState::DataTest::Ctrl() { } bool GameState::DataTest::Dest() { - task_rob_manager_del_task(); + if (!task_rob_manager_del_task()) + return false; + + rctx_ptr->render_manager->set_multisample(true); + rctx_ptr->render_manager->set_clear(false); return true; } bool GameState::TestMode::Init() { test_mode_set(true); + sound_work_reset_all_se(); + for (int32_t i = 0; i < 3; i++) + sound_work_release_stream(i++); return true; } @@ -1006,6 +1016,9 @@ bool GameState::TestMode::Dest() { } bool GameState::AppError::Init() { + for (int32_t i = 0; i < 3; i++) + sound_work_release_stream(i++); + sound_work_reset_all_se(); return true; } @@ -1305,6 +1318,8 @@ bool SubGameState::Selector::Dest() { } bool SubGameState::GameMain::Init() { + sound_work_release_stream(0); + rctx_ptr->render_manager->set_multisample(false); return true; } @@ -1322,11 +1337,20 @@ bool SubGameState::GameMain::Ctrl() { } bool SubGameState::GameMain::Dest() { + bool res = task_pv_game_del_task(); #if PV_DEBUG if (!pv_x) - return pv_game_free(); + res = pv_game_free(); + else + res = x_pv_game_free(); +#else + res = x_pv_game_free(); #endif - return x_pv_game_free(); + if (!res) + return false; + + rctx_ptr->render_manager->set_multisample(true); + return true; } bool SubGameState::GameSel::Init() { @@ -1686,6 +1710,8 @@ bool SubGameState::DataTestModeMain::Dest() { #if defined(ReDIVA_DEV) bool SubGameState::GlitterEditor::Init() { // Added + rctx_ptr->render_manager->set_multisample(false); + camera* cam = rctx_ptr->camera; cam->reset(); cam->set_view_point({ 0.0f, 1.4f, 1.0f }); @@ -1701,6 +1727,7 @@ bool SubGameState::GlitterEditor::Ctrl() { // Added bool SubGameState::GlitterEditor::Dest() { // Added glitter_editor.del(); + rctx_ptr->render_manager->set_multisample(true); return true; } diff --git a/src/ReDIVA/pv_game/pv_game.cpp b/src/ReDIVA/pv_game/pv_game.cpp index 5f60f591..9ea72cab 100644 --- a/src/ReDIVA/pv_game/pv_game.cpp +++ b/src/ReDIVA/pv_game/pv_game.cpp @@ -5981,6 +5981,7 @@ void task_pv_game_init_test_pv() { return; task_rob_manager_add_task(); + rctx_ptr->render_manager->set_multisample(true); TaskPvGame::Args args; args.init_data.pv_id = 999; args.init_data.difficulty = PV_DIFFICULTY_NORMAL; diff --git a/src/ReDIVA/system_startup.cpp b/src/ReDIVA/system_startup.cpp index aa8bbbba..1e017e4e 100644 --- a/src/ReDIVA/system_startup.cpp +++ b/src/ReDIVA/system_startup.cpp @@ -131,6 +131,7 @@ static bool system_startup_check_ready() { task_pv_game_del_task(); if (!task_pv_game_check_task_ready()) { //task_mask_screen_fade_in(0.0f, 0); + rctx_ptr->render_manager->set_multisample(true); if (task_rob_manager_del_task()) { system_startup.ready = true; return true;