WebGPU wrapper finished: add multi draw indirect count support
This commit is contained in:
parent
082b8e0493
commit
7c122c5664
2 changed files with 24 additions and 0 deletions
|
|
@ -90,6 +90,10 @@ namespace psemek::wgpu
|
|||
void draw_indexed(std::uint32_t index_count, std::uint32_t instance_count, std::uint32_t first_index, std::uint32_t base_vertex, std::uint32_t first_instance);
|
||||
void draw_indirect(buffer const & indirect_buffer, std::uint64_t offset);
|
||||
void draw_indexed_indirect(buffer const & indirect_buffer, std::uint64_t offset);
|
||||
void multi_draw_indirect(buffer const & indirect_buffer, std::uint64_t offset, std::uint32_t count);
|
||||
void multi_draw_indexed_indirect(buffer const & indirect_buffer, std::uint64_t offset, std::uint32_t count);
|
||||
void multi_draw_indirect_count(buffer const & indirect_buffer, std::uint64_t offset, buffer const & count_buffer, std::uint64_t count_offset, std::uint32_t max_count);
|
||||
void multi_draw_indexed_indirect_count(buffer const & indirect_buffer, std::uint64_t offset, buffer const & count_buffer, std::uint64_t count_offset, std::uint32_t max_count);
|
||||
void execute_bundles(std::vector<render_bundle> const & bundles);
|
||||
void begin_occlusion_query(std::uint32_t query_index);
|
||||
void end_occlusion_query();
|
||||
|
|
|
|||
|
|
@ -71,6 +71,26 @@ namespace psemek::wgpu
|
|||
wgpuRenderPassEncoderDrawIndexedIndirect((WGPURenderPassEncoder)get(), (WGPUBuffer)indirect_buffer.get(), offset);
|
||||
}
|
||||
|
||||
void render_pass_encoder::multi_draw_indirect(buffer const & indirect_buffer, std::uint64_t offset, std::uint32_t count)
|
||||
{
|
||||
wgpuRenderPassEncoderMultiDrawIndirect((WGPURenderPassEncoder)get(), (WGPUBuffer)indirect_buffer.get(), offset, count);
|
||||
}
|
||||
|
||||
void render_pass_encoder::multi_draw_indexed_indirect(buffer const & indirect_buffer, std::uint64_t offset, std::uint32_t count)
|
||||
{
|
||||
wgpuRenderPassEncoderMultiDrawIndexedIndirect((WGPURenderPassEncoder)get(), (WGPUBuffer)indirect_buffer.get(), offset, count);
|
||||
}
|
||||
|
||||
void render_pass_encoder::multi_draw_indirect_count(buffer const & indirect_buffer, std::uint64_t offset, buffer const & count_buffer, std::uint64_t count_offset, std::uint32_t max_count)
|
||||
{
|
||||
wgpuRenderPassEncoderMultiDrawIndirectCount((WGPURenderPassEncoder)get(), (WGPUBuffer)indirect_buffer.get(), offset, (WGPUBuffer)count_buffer.get(), count_offset, max_count);
|
||||
}
|
||||
|
||||
void render_pass_encoder::multi_draw_indexed_indirect_count(buffer const & indirect_buffer, std::uint64_t offset, buffer const & count_buffer, std::uint64_t count_offset, std::uint32_t max_count)
|
||||
{
|
||||
wgpuRenderPassEncoderMultiDrawIndexedIndirectCount((WGPURenderPassEncoder)get(), (WGPUBuffer)indirect_buffer.get(), offset, (WGPUBuffer)count_buffer.get(), count_offset, max_count);
|
||||
}
|
||||
|
||||
void render_pass_encoder::execute_bundles(std::vector<render_bundle> const & bundles)
|
||||
{
|
||||
static_assert(sizeof(WGPURenderBundle) == sizeof(render_bundle));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue