You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Add offsets parameter to RenderingDevice::vertex_array_create
This commit is contained in:
@@ -4378,7 +4378,7 @@ RenderingDevice::VertexFormatID RenderingDeviceVulkan::vertex_format_create(cons
|
||||
return id;
|
||||
}
|
||||
|
||||
RID RenderingDeviceVulkan::vertex_array_create(uint32_t p_vertex_count, VertexFormatID p_vertex_format, const Vector<RID> &p_src_buffers) {
|
||||
RID RenderingDeviceVulkan::vertex_array_create(uint32_t p_vertex_count, VertexFormatID p_vertex_format, const Vector<RID> &p_src_buffers, const Vector<uint64_t> &p_offsets) {
|
||||
_THREAD_SAFE_METHOD_
|
||||
|
||||
ERR_FAIL_COND_V(!vertex_formats.has(p_vertex_format), RID());
|
||||
@@ -4392,6 +4392,13 @@ RID RenderingDeviceVulkan::vertex_array_create(uint32_t p_vertex_count, VertexFo
|
||||
|
||||
VertexArray vertex_array;
|
||||
|
||||
if (p_offsets.is_empty()) {
|
||||
vertex_array.offsets.resize_zeroed(p_src_buffers.size());
|
||||
} else {
|
||||
ERR_FAIL_COND_V(p_offsets.size() != p_src_buffers.size(), RID());
|
||||
vertex_array.offsets = p_offsets;
|
||||
}
|
||||
|
||||
vertex_array.vertex_count = p_vertex_count;
|
||||
vertex_array.description = p_vertex_format;
|
||||
vertex_array.max_instances_allowed = 0xFFFFFFFF; // By default as many as you want.
|
||||
@@ -4423,7 +4430,6 @@ RID RenderingDeviceVulkan::vertex_array_create(uint32_t p_vertex_count, VertexFo
|
||||
}
|
||||
|
||||
vertex_array.buffers.push_back(buffer->buffer);
|
||||
vertex_array.offsets.push_back(0); // Offset unused, but passing anyway.
|
||||
}
|
||||
|
||||
RID id = vertex_array_owner.make_rid(vertex_array);
|
||||
|
||||
Reference in New Issue
Block a user