diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-25 13:43:02 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-30 13:25:20 +0300 |
commit | 3bc0cb08b82b9b3de7c0e6d66317f501922b0390 (patch) | |
tree | b2b090ac635fccfd4b0fe5bf07b23988ad513a7d /source/blender/draw/intern/draw_manager_exec.c | |
parent | 7b9a0ed8c47dfef03e8b21cafae3b5438bc93415 (diff) |
DRW: Add DRW_CALL_PROCEDURAL DRWCall type.
This mimics the behaviour of DRW_shgroup_empty_tri_batch_create and will
replace it eventually.
The advantage is that it's compatible with transform feedback.
Diffstat (limited to 'source/blender/draw/intern/draw_manager_exec.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager_exec.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c index 110691373ab..8f5dce87c2b 100644 --- a/source/blender/draw/intern/draw_manager_exec.c +++ b/source/blender/draw/intern/draw_manager_exec.c @@ -820,6 +820,7 @@ static void draw_geometry_execute_ex( DRWShadingGroup *shgroup, Gwn_Batch *geom, uint start, uint count, bool draw_instance) { /* Special case: empty drawcall, placement is done via shader, don't bind anything. */ + /* TODO use DRW_CALL_PROCEDURAL instead */ if (geom == NULL) { BLI_assert(shgroup->type == DRW_SHG_TRIANGLE_BATCH); /* Add other type if needed. */ /* Shader is already bound. */ @@ -1147,6 +1148,9 @@ static void draw_shgroup(DRWShadingGroup *shgroup, DRWState pass_state) case DRW_CALL_GENERATE: call->generate.geometry_fn(shgroup, draw_geometry_execute, call->generate.user_data); break; + case DRW_CALL_PROCEDURAL: + GWN_draw_primitive(call->procedural.prim_type, call->procedural.prim_count); + break; default: BLI_assert(0); } |