Add renderer draw descriptor contract
This commit is contained in:
@@ -157,6 +157,14 @@ struct MeshDesc {
|
||||
PrimitiveTopology topology = PrimitiveTopology::triangles;
|
||||
};
|
||||
|
||||
struct DrawDesc {
|
||||
std::uint32_t first_vertex = 0;
|
||||
std::uint32_t vertex_count = 0;
|
||||
std::uint32_t first_index = 0;
|
||||
std::uint32_t index_count = 0;
|
||||
std::uint32_t instance_count = 1;
|
||||
};
|
||||
|
||||
struct ShaderStageSource {
|
||||
const char* entry_point = "main";
|
||||
const char* source = nullptr;
|
||||
@@ -226,7 +234,7 @@ public:
|
||||
std::uint32_t slot,
|
||||
SamplerDesc sampler) noexcept = 0;
|
||||
[[nodiscard]] virtual pp::foundation::Status bind_mesh(IMesh& mesh) noexcept = 0;
|
||||
[[nodiscard]] virtual pp::foundation::Status draw() noexcept = 0;
|
||||
[[nodiscard]] virtual pp::foundation::Status draw(DrawDesc desc) noexcept = 0;
|
||||
[[nodiscard]] virtual pp::foundation::Status read_texture(
|
||||
ITexture2D& texture,
|
||||
ReadbackRegion region,
|
||||
@@ -279,6 +287,7 @@ public:
|
||||
[[nodiscard]] pp::foundation::Status validate_sampler_address_mode(SamplerAddressMode mode) noexcept;
|
||||
[[nodiscard]] pp::foundation::Status validate_sampler_desc(SamplerDesc desc) noexcept;
|
||||
[[nodiscard]] pp::foundation::Status validate_mesh_desc(MeshDesc desc) noexcept;
|
||||
[[nodiscard]] pp::foundation::Status validate_draw_desc(MeshDesc mesh, DrawDesc draw) noexcept;
|
||||
[[nodiscard]] pp::foundation::Status validate_texture_slot(std::uint32_t slot) noexcept;
|
||||
[[nodiscard]] pp::foundation::Status validate_shader_program_desc(ShaderProgramDesc desc) noexcept;
|
||||
[[nodiscard]] pp::foundation::Status validate_shader_uniform_write(
|
||||
|
||||
Reference in New Issue
Block a user