mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Implement the count parameter in RenderingServer.canvas_item_add_triangle_array()
This commit is contained in:
parent
09fcbb8645
commit
101dc9868f
8 changed files with 20 additions and 18 deletions
|
|
@ -100,7 +100,7 @@ void RendererCanvasRenderRD::_update_transform_to_mat4(const Transform3D &p_tran
|
|||
p_mat4[15] = 1;
|
||||
}
|
||||
|
||||
RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Vector<int> &p_indices, const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs, const Vector<int> &p_bones, const Vector<float> &p_weights) {
|
||||
RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Vector<int> &p_indices, const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs, const Vector<int> &p_bones, const Vector<float> &p_weights, int p_count) {
|
||||
// Care must be taken to generate array formats
|
||||
// in ways where they could be reused, so we will
|
||||
// put single-occurring elements first, and repeated
|
||||
|
|
@ -311,14 +311,14 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve
|
|||
if (p_indices.size()) {
|
||||
//create indices, as indices were requested
|
||||
Vector<uint8_t> index_buffer;
|
||||
index_buffer.resize(p_indices.size() * sizeof(int32_t));
|
||||
index_buffer.resize(p_count * sizeof(int32_t));
|
||||
{
|
||||
uint8_t *w = index_buffer.ptrw();
|
||||
memcpy(w, p_indices.ptr(), sizeof(int32_t) * p_indices.size());
|
||||
}
|
||||
pb.index_buffer = RD::get_singleton()->index_buffer_create(p_indices.size(), RD::INDEX_BUFFER_FORMAT_UINT32, index_buffer);
|
||||
pb.indices = RD::get_singleton()->index_array_create(pb.index_buffer, 0, p_indices.size());
|
||||
pb.primitive_count = p_indices.size();
|
||||
pb.index_buffer = RD::get_singleton()->index_buffer_create(p_count, RD::INDEX_BUFFER_FORMAT_UINT32, index_buffer);
|
||||
pb.indices = RD::get_singleton()->index_array_create(pb.index_buffer, 0, p_count);
|
||||
pb.primitive_count = p_count;
|
||||
}
|
||||
|
||||
pb.vertex_format_id = vertex_id;
|
||||
|
|
|
|||
|
|
@ -638,7 +638,7 @@ class RendererCanvasRenderRD : public RendererCanvasRender {
|
|||
void _update_occluder_buffer(uint32_t p_size);
|
||||
|
||||
public:
|
||||
PolygonID request_polygon(const Vector<int> &p_indices, const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs = Vector<Point2>(), const Vector<int> &p_bones = Vector<int>(), const Vector<float> &p_weights = Vector<float>()) override;
|
||||
PolygonID request_polygon(const Vector<int> &p_indices, const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs = Vector<Point2>(), const Vector<int> &p_bones = Vector<int>(), const Vector<float> &p_weights = Vector<float>(), int p_count = -1) override;
|
||||
void free_polygon(PolygonID p_polygon) override;
|
||||
|
||||
RID light_create() override;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue