Add renderer and package readiness validation gates

This commit is contained in:
2026-06-15 19:20:56 +02:00
parent 68617e8bc4
commit f78fc3076c
23 changed files with 2350 additions and 389 deletions

View File

@@ -320,6 +320,7 @@ struct PlanAppFrameArgs {
struct PlanAppThreadArgs {
std::string kind = "dispatch";
bool on_target_thread = false;
bool require_ui_thread = false;
bool unique = false;
bool worker_running = true;
bool wait = false;
@@ -2525,7 +2526,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-designer-layout] [--no-main-layout] [--no-canvas] [--no-canvas-document] [--vr-active] [--ui-hidden] [--vr-only] [--resize-width N] [--resize-height N] [--bad-resize] [--observer-hidden] [--observer-on-screen] [--observer-clipped-out] [--observer-bad-geometry]\n"
<< " plan-app-thread --kind dispatch|render-drain|ui-drain|ui-tick|ui-loop|redraw|start|stop [--on-target-thread] [--unique] [--worker-stopped] [--wait] [--request-redraw] [--redraw] [--live-reload] [--not-joinable] [--queued-tasks N] [--rendered-frames N] [--dt N] [--frame-accumulator N] [--fps-accumulator N] [--reload-accumulator N] [--bad-timer]\n"
<< " plan-app-thread --kind dispatch|render-drain|ui-drain|ui-tick|ui-loop|redraw|start|stop [--require-ui-thread] [--on-target-thread] [--unique] [--worker-stopped] [--wait] [--request-redraw] [--redraw] [--live-reload] [--not-joinable] [--queued-tasks N] [--rendered-frames N] [--dt N] [--frame-accumulator N] [--fps-accumulator N] [--reload-accumulator N] [--bad-timer]\n"
<< " plan-app-input --kind pointer|gesture|cancel|main|key|ui-toggle|stylus [--x N] [--y N] [--x1 N] [--y1 N] [--prev-x N] [--prev-y N] [--prev-x1 N] [--prev-y1 N] [--zoom N] [--no-designer-layout] [--no-main-layout] [--spacebar] [--vr-active] [--key-up] [--ui-hidden] [--no-canvas] [--main-child-count N] [--panel-child-count N] [--bad-float]\n"
<< " plan-app-shutdown\n"
<< " plan-command-convert [--project FILE] [--output FILE] [--canvas-resolution N]\n"
@@ -4937,6 +4938,8 @@ pp::foundation::Status parse_plan_app_thread_args(
return pp::foundation::Status::invalid_argument("missing value for option");
}
args.kind = argv[++i];
} else if (key == "--require-ui-thread") {
args.require_ui_thread = true;
} else if (key == "--on-target-thread") {
args.on_target_thread = true;
} else if (key == "--unique") {
@@ -5018,13 +5021,15 @@ int plan_app_thread(int argc, char** argv)
args.queued_tasks,
args.worker_running,
args.wait,
args.request_redraw);
args.request_redraw,
args.require_ui_thread);
std::cout << ",\"plan\":{\"executeImmediately\":" << json_bool(plan.execute_immediately)
<< ",\"queueTask\":" << json_bool(plan.queue_task)
<< ",\"removeMatchingUniqueTask\":" << json_bool(plan.remove_matching_unique_task)
<< ",\"notifyWorker\":" << json_bool(plan.notify_worker)
<< ",\"waitForCompletion\":" << json_bool(plan.wait_for_completion)
<< ",\"requestRedraw\":" << json_bool(plan.request_redraw)
<< ",\"rejectUnsafeCrossThreadDispatch\":" << json_bool(plan.reject_unsafe_cross_thread_dispatch)
<< "}}\n";
return 0;
}