You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Merge pull request #97247 from thimenesup/draw_indirect_rd
Add draw indirect to Rendering Device
This commit is contained in:
@@ -69,6 +69,8 @@ public:
|
||||
TYPE_CLEAR_ATTACHMENTS,
|
||||
TYPE_DRAW,
|
||||
TYPE_DRAW_INDEXED,
|
||||
TYPE_DRAW_INDIRECT,
|
||||
TYPE_DRAW_INDEXED_INDIRECT,
|
||||
TYPE_EXECUTE_COMMANDS,
|
||||
TYPE_NEXT_SUBPASS,
|
||||
TYPE_SET_BLEND_CONSTANTS,
|
||||
@@ -472,6 +474,20 @@ private:
|
||||
uint32_t first_index = 0;
|
||||
};
|
||||
|
||||
struct DrawListDrawIndirectInstruction : DrawListInstruction {
|
||||
RDD::BufferID buffer;
|
||||
uint32_t offset = 0;
|
||||
uint32_t draw_count = 0;
|
||||
uint32_t stride = 0;
|
||||
};
|
||||
|
||||
struct DrawListDrawIndexedIndirectInstruction : DrawListInstruction {
|
||||
RDD::BufferID buffer;
|
||||
uint32_t offset = 0;
|
||||
uint32_t draw_count = 0;
|
||||
uint32_t stride = 0;
|
||||
};
|
||||
|
||||
struct DrawListEndRenderPassInstruction : DrawListInstruction {
|
||||
// No contents.
|
||||
};
|
||||
@@ -684,6 +700,8 @@ public:
|
||||
void add_draw_list_clear_attachments(VectorView<RDD::AttachmentClear> p_attachments_clear, VectorView<Rect2i> p_attachments_clear_rect);
|
||||
void add_draw_list_draw(uint32_t p_vertex_count, uint32_t p_instance_count);
|
||||
void add_draw_list_draw_indexed(uint32_t p_index_count, uint32_t p_instance_count, uint32_t p_first_index);
|
||||
void add_draw_list_draw_indirect(RDD::BufferID p_buffer, uint32_t p_offset, uint32_t p_draw_count, uint32_t p_stride);
|
||||
void add_draw_list_draw_indexed_indirect(RDD::BufferID p_buffer, uint32_t p_offset, uint32_t p_draw_count, uint32_t p_stride);
|
||||
void add_draw_list_execute_commands(RDD::CommandBufferID p_command_buffer);
|
||||
void add_draw_list_next_subpass(RDD::CommandBufferType p_command_buffer_type);
|
||||
void add_draw_list_set_blend_constants(const Color &p_color);
|
||||
|
||||
Reference in New Issue
Block a user