diff options
author | Juan Linietsky <reduzio@gmail.com> | 2017-06-21 16:25:45 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2017-06-21 16:26:26 -0300 |
commit | 95560e02c5eed3561996ed2b1d1e47e26e8bb81c (patch) | |
tree | 8e53927435484e10e444e6e2f745b2ddc19029e6 /servers/visual/visual_server_canvas.cpp | |
parent | 3c1fd26bb0c2e97b927343e5488aa6d646e2e27c (diff) | |
download | redot-engine-95560e02c5eed3561996ed2b1d1e47e26e8bb81c.tar.gz |
2D GPU Particles working..
Diffstat (limited to 'servers/visual/visual_server_canvas.cpp')
-rw-r--r-- | servers/visual/visual_server_canvas.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/servers/visual/visual_server_canvas.cpp b/servers/visual/visual_server_canvas.cpp index 2ef1fd417b..616990b311 100644 --- a/servers/visual/visual_server_canvas.cpp +++ b/servers/visual/visual_server_canvas.cpp @@ -637,6 +637,25 @@ void VisualServerCanvas::canvas_item_add_mesh(RID p_item, const RID &p_mesh, RID canvas_item->commands.push_back(m); } +void VisualServerCanvas::canvas_item_add_particles(RID p_item, RID p_particles, RID p_texture, RID p_normal, int p_h_frames, int p_v_frames) { + + Item *canvas_item = canvas_item_owner.getornull(p_item); + ERR_FAIL_COND(!canvas_item); + + Item::CommandParticles *part = memnew(Item::CommandParticles); + ERR_FAIL_COND(!part); + part->particles = p_particles; + part->texture = p_texture; + part->normal_map = p_normal; + part->h_frames = p_h_frames; + part->v_frames = p_v_frames; + + //take the chance and request processing for them, at least once until they become visible again + VSG::storage->particles_request_process(p_particles); + + canvas_item->commands.push_back(part); +} + void VisualServerCanvas::canvas_item_add_multimesh(RID p_item, RID p_mesh, RID p_skeleton) { Item *canvas_item = canvas_item_owner.getornull(p_item); |