22void VKBatch::draw(
int vertex_first,
int vertex_count,
int instance_first,
int instance_count)
30 const bool draw_indexed = index_buffer !=
nullptr;
36 context.active_framebuffer_get()->rendering_ensure(context);
46 context.active_framebuffer_get()->vk_viewports_append(
48 context.active_framebuffer_get()->vk_render_areas_append(
56 context.render_graph().add_node(draw_indexed);
60 draw.node_data.vertex_count = vertex_count;
61 draw.node_data.instance_count = instance_count;
62 draw.node_data.first_vertex = vertex_first;
63 draw.node_data.first_instance = instance_first;
64 context.active_framebuffer_get()->vk_viewports_append(
draw.node_data.viewport_data.viewports);
65 context.active_framebuffer_get()->vk_render_areas_append(
66 draw.node_data.viewport_data.scissors);
68 vao.
bind(
draw.node_data.vertex_buffers);
69 context.update_pipeline_data(prim_type, vao,
draw.node_data.pipeline_data);
71 context.render_graph().add_node(
draw);
91 const intptr_t offset,
92 const intptr_t stride)
100 const bool draw_indexed = index_buffer !=
nullptr;
106 context.active_framebuffer_get()->rendering_ensure(context);
110 resource_access_info);
116 context.active_framebuffer_get()->vk_viewports_append(
118 context.active_framebuffer_get()->vk_render_areas_append(
126 context.render_graph().add_node(draw_indexed_indirect);
130 draw.node_data.indirect_buffer = indirect_buffer;
131 draw.node_data.offset = offset;
133 draw.node_data.stride = stride;
134 context.active_framebuffer_get()->vk_viewports_append(
draw.node_data.viewport_data.viewports);
135 context.active_framebuffer_get()->vk_render_areas_append(
136 draw.node_data.viewport_data.scissors);
138 vao.
bind(
draw.node_data.vertex_buffers);
139 context.update_pipeline_data(prim_type, vao,
draw.node_data.pipeline_data);
141 context.render_graph().add_node(
draw);