Plan depth export through document renderer
This commit is contained in:
@@ -67,6 +67,7 @@ pp::foundation::Status write_export_binary_file(std::string_view path, std::span
|
||||
|
||||
class LegacyExportWriteServices final
|
||||
: public pp::app::DocumentCubeFaceExportWriteServices
|
||||
, public pp::app::DocumentDepthExportWriteServices
|
||||
, public pp::app::DocumentExportCollectionWriteServices {
|
||||
public:
|
||||
explicit LegacyExportWriteServices(App& app) noexcept
|
||||
@@ -519,6 +520,48 @@ public:
|
||||
void export_depth(std::string_view document_name) override
|
||||
{
|
||||
auto* app = &app_;
|
||||
#if !__WEB__
|
||||
const auto target = pp::app::make_document_depth_export_target(app_.work_path, document_name);
|
||||
if (target) {
|
||||
LOG(
|
||||
"export-depth document export target: image=%s depth=%s",
|
||||
target.value().image_path.c_str(),
|
||||
target.value().depth_path.c_str());
|
||||
} else {
|
||||
LOG("export-depth document export target planning failed: %s", target.status().message);
|
||||
}
|
||||
|
||||
const auto prepared = prepare_legacy_document_export_snapshot(app_, "export-depth");
|
||||
if (prepared) {
|
||||
const auto plan = pp::paint_renderer::plan_document_depth_export_render(
|
||||
pp::paint_renderer::DocumentDepthExportRenderPlanRequest {
|
||||
.document = &prepared.value().snapshot.document,
|
||||
.frame_index = prepared.value().snapshot.document.active_frame_index(),
|
||||
});
|
||||
if (plan) {
|
||||
LOG(
|
||||
"export-depth document export render plan: output=%ux%u mergedFaceDraws=%zu layerDepthDraws=%zu visitedLayers=%zu visibleLayers=%zu facePayloads=%zu requiresRendererReadback=%s",
|
||||
plan.value().output_extent.width,
|
||||
plan.value().output_extent.height,
|
||||
plan.value().merged_face_draw_count,
|
||||
plan.value().layer_depth_draw_count,
|
||||
plan.value().visited_layer_count,
|
||||
plan.value().visible_layer_count,
|
||||
plan.value().face_payload_count,
|
||||
plan.value().requires_renderer_readback ? "true" : "false");
|
||||
} else {
|
||||
LOG(
|
||||
"export-depth document export render plan retained legacy export after failure: %s",
|
||||
plan.status().message);
|
||||
}
|
||||
} else {
|
||||
LOG(
|
||||
"export-depth document export snapshot bridge retained legacy export after failure: %s",
|
||||
prepared.status().message);
|
||||
}
|
||||
#else
|
||||
prepare_legacy_document_export_snapshot_or_continue(app_, "export-depth");
|
||||
#endif
|
||||
app_.canvas->m_canvas->export_depth(std::string(document_name), [app] {
|
||||
show_export_success_dialog(
|
||||
*app,
|
||||
|
||||
Reference in New Issue
Block a user