Prepare document snapshots before legacy saves

This commit is contained in:
2026-06-05 18:14:50 +02:00
parent f4f6eb903e
commit 9a75782891
9 changed files with 134 additions and 14 deletions

View File

@@ -66,6 +66,17 @@ struct DocumentCanvasSnapshotResult {
bool requires_renderer_payload_readback = false;
};
struct DocumentCanvasSaveSnapshotReport {
std::uint32_t width = 0;
std::uint32_t height = 0;
std::size_t layer_count = 0;
std::size_t frame_count = 0;
std::size_t captured_face_payloads = 0;
std::size_t pending_face_payloads = 0;
bool payload_complete = false;
bool can_export_ppi = false;
};
class DocumentCanvasClearServices {
public:
virtual ~DocumentCanvasClearServices() = default;
@@ -216,6 +227,21 @@ public:
});
}
[[nodiscard]] inline DocumentCanvasSaveSnapshotReport make_document_canvas_save_snapshot_report(
const DocumentCanvasSnapshotResult& snapshot) noexcept
{
return DocumentCanvasSaveSnapshotReport {
.width = snapshot.document.width(),
.height = snapshot.document.height(),
.layer_count = snapshot.layer_count,
.frame_count = snapshot.frame_count,
.captured_face_payloads = snapshot.captured_face_payloads,
.pending_face_payloads = snapshot.pending_face_payloads,
.payload_complete = !snapshot.requires_renderer_payload_readback,
.can_export_ppi = !snapshot.requires_renderer_payload_readback,
};
}
[[nodiscard]] inline pp::foundation::Result<DocumentCanvasClearPlan> plan_document_canvas_clear(
bool has_canvas,
float r = 0.0F,