Add renderer sampler state contract

This commit is contained in:
2026-06-02 15:56:26 +02:00
parent b68ddc42c6
commit 952a00e7d3
9 changed files with 322 additions and 53 deletions

View File

@@ -15,6 +15,7 @@ enum class RecordedRenderCommandKind : std::uint8_t {
set_depth_state,
bind_shader,
bind_texture,
bind_sampler,
bind_mesh,
draw,
upload_texture,
@@ -36,6 +37,8 @@ struct RecordedRenderCommand {
MeshDesc mesh_desc {};
TextureDesc texture_desc {};
std::uint32_t texture_slot = 0;
SamplerDesc sampler_desc {};
std::uint32_t sampler_slot = 0;
TextureDesc source_desc {};
TextureDesc destination_desc {};
ReadbackRegion readback_region {};
@@ -111,6 +114,9 @@ public:
[[nodiscard]] pp::foundation::Status bind_texture(
std::uint32_t slot,
ITexture2D& texture) noexcept override;
[[nodiscard]] pp::foundation::Status bind_sampler(
std::uint32_t slot,
SamplerDesc sampler) 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(