Route live save snapshots through PPI policy
This commit is contained in:
@@ -949,6 +949,18 @@ const char* document_save_decision_name(pp::app::DocumentSaveDecision decision)
|
||||
return "no-op";
|
||||
}
|
||||
|
||||
const char* document_canvas_save_writer_action_name(pp::app::DocumentCanvasSaveWriterAction action) noexcept
|
||||
{
|
||||
switch (action) {
|
||||
case pp::app::DocumentCanvasSaveWriterAction::use_document_ppi_writer:
|
||||
return "use-document-ppi-writer";
|
||||
case pp::app::DocumentCanvasSaveWriterAction::use_legacy_project_save:
|
||||
return "use-legacy-project-save";
|
||||
}
|
||||
|
||||
return "use-legacy-project-save";
|
||||
}
|
||||
|
||||
const char* document_workflow_decision_name(pp::app::DocumentWorkflowDecision decision) noexcept
|
||||
{
|
||||
switch (decision) {
|
||||
@@ -6180,6 +6192,7 @@ int plan_canvas_document_snapshot(int argc, char** argv)
|
||||
const auto& document = value.document;
|
||||
const auto& active_layer = document.layers()[document.active_layer_index()];
|
||||
const auto save_report = pp::app::make_document_canvas_save_snapshot_report(value);
|
||||
const auto save_writer_route = pp::app::plan_document_canvas_save_writer_route(save_report);
|
||||
bool ppi_export_ready = false;
|
||||
std::size_t ppi_export_bytes = 0;
|
||||
std::uint32_t ppi_export_dirty_faces = 0;
|
||||
@@ -6205,7 +6218,7 @@ int plan_canvas_document_snapshot(int argc, char** argv)
|
||||
std::size_t depth_export_visible_layers = 0;
|
||||
std::size_t depth_export_face_payloads = 0;
|
||||
bool depth_export_requires_renderer_readback = value.requires_renderer_payload_readback;
|
||||
if (save_report.can_export_ppi) {
|
||||
if (save_writer_route.uses_document_ppi_writer) {
|
||||
const auto exported = pp::app::export_document_canvas_save_snapshot_to_ppi(value);
|
||||
if (!exported) {
|
||||
print_error("plan-canvas-document-snapshot", exported.status().message);
|
||||
@@ -6296,6 +6309,12 @@ int plan_canvas_document_snapshot(int argc, char** argv)
|
||||
<< ",\"documentFacePayloads\":" << document.face_pixel_payload_count()
|
||||
<< ",\"saveReport\":{\"payloadComplete\":" << json_bool(save_report.payload_complete)
|
||||
<< ",\"canExportPpi\":" << json_bool(save_report.can_export_ppi)
|
||||
<< "},\"saveWriterRoute\":{\"action\":\""
|
||||
<< document_canvas_save_writer_action_name(save_writer_route.action)
|
||||
<< "\",\"usesDocumentPpiWriter\":" << json_bool(save_writer_route.uses_document_ppi_writer)
|
||||
<< ",\"fallbackReason\":\""
|
||||
<< json_escape(std::string(save_writer_route.fallback_reason))
|
||||
<< "\""
|
||||
<< "},\"ppiExport\":{\"ready\":" << json_bool(ppi_export_ready)
|
||||
<< ",\"bytes\":" << ppi_export_bytes
|
||||
<< ",\"dirtyFaces\":" << ppi_export_dirty_faces
|
||||
|
||||
Reference in New Issue
Block a user