Upload document frame faces through renderer API
This commit is contained in:
@@ -10668,19 +10668,33 @@ int simulate_document_render(int argc, char** argv)
|
||||
}
|
||||
|
||||
constexpr pp::paint::Rgba clear_color {};
|
||||
const auto composited = pp::paint_renderer::composite_document_frame(
|
||||
pp::paint_renderer::DocumentFrameCompositeRequest {
|
||||
pp::renderer::RecordingRenderDevice render_device;
|
||||
const auto uploaded = pp::paint_renderer::upload_document_frame_faces(
|
||||
render_device,
|
||||
pp::paint_renderer::DocumentFrameUploadRequest {
|
||||
.document = &document_result.value(),
|
||||
.frame_index = args.frame,
|
||||
.clear_color = clear_color,
|
||||
});
|
||||
if (!composited) {
|
||||
print_error("simulate-document-render", composited.status().message);
|
||||
if (!uploaded) {
|
||||
print_error("simulate-document-render", uploaded.status().message);
|
||||
return 2;
|
||||
}
|
||||
|
||||
const auto& document = document_result.value();
|
||||
const auto& result = composited.value();
|
||||
const auto& uploaded_value = uploaded.value();
|
||||
const auto& result = uploaded_value.composite;
|
||||
std::size_t upload_command_count = 0;
|
||||
std::size_t transition_command_count = 0;
|
||||
for (const auto& command : render_device.commands()) {
|
||||
if (command.kind == pp::renderer::RecordedRenderCommandKind::upload_texture) {
|
||||
++upload_command_count;
|
||||
}
|
||||
if (command.kind == pp::renderer::RecordedRenderCommandKind::transition_texture) {
|
||||
++transition_command_count;
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "{\"ok\":true,\"command\":\"simulate-document-render\""
|
||||
<< ",\"source\":{\"width\":" << document.width()
|
||||
<< ",\"height\":" << document.height()
|
||||
@@ -10729,7 +10743,14 @@ int simulate_document_render(int argc, char** argv)
|
||||
}
|
||||
std::cout << "}";
|
||||
}
|
||||
std::cout << "]}}\n";
|
||||
std::cout << "],\"upload\":{\"backend\":\"" << render_device.backend_name()
|
||||
<< "\",\"textures\":" << uploaded_value.texture_count
|
||||
<< ",\"bytes\":" << uploaded_value.uploaded_bytes
|
||||
<< ",\"commands\":" << render_device.commands().size()
|
||||
<< ",\"uploadCommands\":" << upload_command_count
|
||||
<< ",\"transitionCommands\":" << transition_command_count
|
||||
<< ",\"transitions\":" << uploaded_value.transition_count
|
||||
<< "}}}\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user