Route app shutdown staging through app core

This commit is contained in:
2026-06-05 06:13:52 +02:00
parent f7979be80f
commit 48a4547f51
11 changed files with 170 additions and 22 deletions

View File

@@ -1,6 +1,7 @@
#include "app_core/about_menu.h"
#include "app_core/app_preferences.h"
#include "app_core/app_frame.h"
#include "app_core/app_shutdown.h"
#include "app_core/app_status.h"
#include "app_core/app_startup.h"
#include "app_core/brush_package_import.h"
@@ -2022,6 +2023,7 @@ void print_help()
<< " plan-app-startup [--run-counter N] [--auto-timelapse-disabled] [--vr-controllers-disabled] [--license-invalid]\n"
<< " plan-app-startup-resources [--width N] [--height N] [--bad-size]\n"
<< " plan-app-frame [--redraw] [--animate] [--no-canvas] [--no-canvas-document] [--vr-active] [--ui-hidden] [--vr-only]\n"
<< " plan-app-shutdown\n"
<< " plan-app-status [--doc-name NAME] [--unsaved] [--resolution N] [--resolution-index N] [--zoom N] [--history-bytes N] [--recording-running] [--encoder-available] [--encoded-frames N] [--framebuffer-fetch] [--float32] [--float32-linear] [--float16]\n"
<< " plan-brush-package-import --kind abr|ppbr --path FILE\n"
<< " plan-brush-package-export --path FILE [--author NAME] [--email EMAIL] [--url URL] [--description TEXT] [--dest-path DIR] [--export-data|--no-export-data] [--header-image]\n"
@@ -3789,6 +3791,30 @@ int plan_app_frame(int argc, char** argv)
return 0;
}
int plan_app_shutdown(int argc, char** argv)
{
static_cast<void>(argv);
if (argc > 2) {
print_error("plan-app-shutdown", "unknown option");
return 2;
}
const auto plan = pp::app::plan_app_shutdown();
std::cout << "{\"ok\":true,\"command\":\"plan-app-shutdown\""
<< ",\"plan\":{\"saveUiState\":" << json_bool(plan.save_ui_state)
<< ",\"terminateStrokePreviewRenderer\":" << json_bool(plan.terminate_stroke_preview_renderer)
<< ",\"stopRecording\":" << json_bool(plan.stop_recording)
<< ",\"invalidateTextures\":" << json_bool(plan.invalidate_textures)
<< ",\"invalidateShaders\":" << json_bool(plan.invalidate_shaders)
<< ",\"unloadLayouts\":" << json_bool(plan.unload_layouts)
<< ",\"destroyUiRenderTarget\":" << json_bool(plan.destroy_ui_render_target)
<< ",\"destroyFacePlane\":" << json_bool(plan.destroy_face_plane)
<< ",\"releasePanelNodes\":" << json_bool(plan.release_panel_nodes)
<< ",\"clearQuickModeState\":" << json_bool(plan.clear_quick_mode_state)
<< "}}\n";
return 0;
}
pp::foundation::Status parse_plan_brush_package_import_args(
int argc,
char** argv,
@@ -10040,6 +10066,10 @@ int main(int argc, char** argv)
return plan_app_frame(argc, argv);
}
if (command == "plan-app-shutdown") {
return plan_app_shutdown(argc, argv);
}
if (command == "plan-brush-package-import") {
return plan_brush_package_import(argc, argv);
}