diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-29 16:02:08 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-30 13:25:20 +0300 |
commit | 93de6ca2dbaee10482fa20de6a7ad384b232dd87 (patch) | |
tree | f9baa8182ab58dbe0c1f77937043aa0921782f66 /source/blender/draw/intern/draw_manager_exec.c | |
parent | 0488b728ebec61b50351d850d8fd52bfe67a40f0 (diff) |
DRW: Instance selection id: use Batch buffers instead of DRWInstanceData
This is motivated by the refactor of DRWInstanceData to be actual non
contiguous mempools.
Diffstat (limited to 'source/blender/draw/intern/draw_manager_exec.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager_exec.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c index 8b0bbb3ad15..98135a614d9 100644 --- a/source/blender/draw/intern/draw_manager_exec.c +++ b/source/blender/draw/intern/draw_manager_exec.c @@ -1045,7 +1045,10 @@ static void draw_shgroup(DRWShadingGroup *shgroup, DRWState pass_state) int *select_id = NULL; \ if (G.f & G_PICKSEL) { \ if (_shgroup->override_selectid == -1) { \ - select_id = DRW_instance_data_get(_shgroup->inst_selectid); \ + /* Hack : get vbo data without actually drawing. */ \ + Gwn_VertBufRaw raw; \ + GWN_vertbuf_attr_get_raw_data(_shgroup->inst_selectid, 0, &raw); \ + select_id = GWN_vertbuf_raw_step(&raw); \ switch (_shgroup->type) { \ case DRW_SHG_TRIANGLE_BATCH: _count = 3; break; \ case DRW_SHG_LINE_BATCH: _count = 2; break; \ |