Add document face compositor bridge
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "document/document.h"
|
||||
#include "foundation/result.h"
|
||||
#include "paint/blend.h"
|
||||
#include "renderer_api/renderer_api.h"
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <span>
|
||||
#include <vector>
|
||||
|
||||
namespace pp::paint_renderer {
|
||||
|
||||
@@ -83,11 +86,29 @@ struct CanvasStrokeFeedbackPlan {
|
||||
bool compatibility_fallback = false;
|
||||
};
|
||||
|
||||
struct DocumentFaceCompositeRequest {
|
||||
const pp::document::CanvasDocument* document = nullptr;
|
||||
std::size_t frame_index = 0;
|
||||
std::uint32_t face_index = 0;
|
||||
pp::paint::Rgba clear_color {};
|
||||
};
|
||||
|
||||
struct DocumentFaceCompositeResult {
|
||||
pp::renderer::Extent2D extent {};
|
||||
std::vector<pp::paint::Rgba> pixels;
|
||||
std::size_t visited_layer_count = 0;
|
||||
std::size_t composited_layer_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,
|
||||
LayerCompositeView layer) noexcept;
|
||||
|
||||
[[nodiscard]] pp::foundation::Result<DocumentFaceCompositeResult> composite_document_face(
|
||||
DocumentFaceCompositeRequest request);
|
||||
|
||||
[[nodiscard]] bool stroke_composite_requires_feedback(
|
||||
pp::paint::BlendMode layer_blend_mode,
|
||||
pp::paint::StrokeBlendMode stroke_blend_mode,
|
||||
|
||||
Reference in New Issue
Block a user