Add renderer texture copy command

This commit is contained in:
2026-06-02 16:35:38 +02:00
parent 483bbb4a9c
commit 75dd5cfdc9
9 changed files with 286 additions and 46 deletions

View File

@@ -20,6 +20,7 @@ enum class RecordedRenderCommandKind : std::uint8_t {
bind_mesh,
draw,
upload_texture,
copy_texture,
read_texture,
capture_frame,
blit_render_target,
@@ -53,6 +54,8 @@ struct RecordedRenderCommand {
ReadbackRegion destination_region {};
BlitFilter blit_filter = BlitFilter::nearest;
std::uint64_t upload_bytes = 0;
std::uint64_t copy_source_bytes = 0;
std::uint64_t copy_destination_bytes = 0;
std::uint64_t readback_bytes = 0;
std::uint64_t capture_bytes = 0;
std::uint64_t blit_source_bytes = 0;
@@ -138,6 +141,11 @@ public:
ITexture2D& texture,
ReadbackRegion region,
std::span<const std::byte> rgba_or_channel_bytes) noexcept override;
[[nodiscard]] pp::foundation::Status copy_texture(
ITexture2D& source,
ReadbackRegion source_region,
ITexture2D& destination,
ReadbackRegion destination_region) noexcept override;
[[nodiscard]] pp::foundation::Status capture_frame(
IRenderTarget& target,
IReadbackBuffer& destination) noexcept override;