Add renderer blit command contract

This commit is contained in:
2026-06-02 15:31:01 +02:00
parent 1c40602744
commit ee3fb36047
9 changed files with 338 additions and 16 deletions

View File

@@ -16,6 +16,7 @@ enum class RecordedRenderCommandKind : std::uint8_t {
upload_texture,
read_texture,
capture_frame,
blit_render_target,
end_render_pass,
trace_marker,
};
@@ -27,10 +28,17 @@ struct RecordedRenderCommand {
Viewport viewport {};
MeshDesc mesh_desc {};
TextureDesc texture_desc {};
TextureDesc source_desc {};
TextureDesc destination_desc {};
ReadbackRegion readback_region {};
ReadbackRegion source_region {};
ReadbackRegion destination_region {};
BlitFilter blit_filter = BlitFilter::nearest;
std::uint64_t upload_bytes = 0;
std::uint64_t readback_bytes = 0;
std::uint64_t capture_bytes = 0;
std::uint64_t blit_source_bytes = 0;
std::uint64_t blit_destination_bytes = 0;
const char* component = "";
const char* name = "";
};
@@ -102,6 +110,12 @@ public:
[[nodiscard]] pp::foundation::Status capture_frame(
IRenderTarget& target,
IReadbackBuffer& destination) noexcept override;
[[nodiscard]] pp::foundation::Status blit_render_target(
IRenderTarget& source,
ReadbackRegion source_region,
IRenderTarget& destination,
ReadbackRegion destination_region,
BlitFilter filter) noexcept override;
void end_render_pass() noexcept override;
[[nodiscard]] bool in_render_pass() const noexcept;