Add renderer texture binding contract

This commit is contained in:
2026-06-02 15:34:57 +02:00
parent ee3fb36047
commit 5dbeb0504d
9 changed files with 163 additions and 53 deletions

View File

@@ -11,6 +11,7 @@ enum class RecordedRenderCommandKind : std::uint8_t {
begin_render_pass,
set_viewport,
bind_shader,
bind_texture,
bind_mesh,
draw,
upload_texture,
@@ -28,6 +29,7 @@ struct RecordedRenderCommand {
Viewport viewport {};
MeshDesc mesh_desc {};
TextureDesc texture_desc {};
std::uint32_t texture_slot = 0;
TextureDesc source_desc {};
TextureDesc destination_desc {};
ReadbackRegion readback_region {};
@@ -97,6 +99,9 @@ public:
ClearColor clear_color) noexcept override;
[[nodiscard]] pp::foundation::Status set_viewport(Viewport viewport) noexcept override;
[[nodiscard]] pp::foundation::Status bind_shader(IShaderProgram& shader) noexcept override;
[[nodiscard]] pp::foundation::Status bind_texture(
std::uint32_t slot,
ITexture2D& texture) noexcept override;
[[nodiscard]] pp::foundation::Status bind_mesh(IMesh& mesh) noexcept override;
[[nodiscard]] pp::foundation::Status draw() noexcept override;
[[nodiscard]] pp::foundation::Status read_texture(