Add document frame render automation

This commit is contained in:
2026-06-05 17:30:44 +02:00
parent d4dad133ea
commit 7c6c5f3e36
9 changed files with 354 additions and 12 deletions

View File

@@ -5,6 +5,7 @@
#include "paint/blend.h"
#include "renderer_api/renderer_api.h"
#include <array>
#include <cstddef>
#include <cstdint>
#include <span>
@@ -101,6 +102,20 @@ struct DocumentFaceCompositeResult {
std::size_t face_payload_count = 0;
};
struct DocumentFrameCompositeRequest {
const pp::document::CanvasDocument* document = nullptr;
std::size_t frame_index = 0;
pp::paint::Rgba clear_color {};
};
struct DocumentFrameCompositeResult {
pp::renderer::Extent2D extent {};
std::array<DocumentFaceCompositeResult, pp::document::cube_face_count> faces {};
std::size_t visited_layer_count = 0;
std::size_t composited_layer_face_count = 0;
std::size_t face_payload_count = 0;
};
[[nodiscard]] pp::foundation::Status composite_layer(
std::span<pp::paint::Rgba> destination,
pp::renderer::Extent2D extent,
@@ -109,6 +124,9 @@ struct DocumentFaceCompositeResult {
[[nodiscard]] pp::foundation::Result<DocumentFaceCompositeResult> composite_document_face(
DocumentFaceCompositeRequest request);
[[nodiscard]] pp::foundation::Result<DocumentFrameCompositeResult> composite_document_frame(
DocumentFrameCompositeRequest request);
[[nodiscard]] bool stroke_composite_requires_feedback(
pp::paint::BlendMode layer_blend_mode,
pp::paint::StrokeBlendMode stroke_blend_mode,