diff options
author | Germano <germano.costa@ig.com.br> | 2017-12-14 17:21:38 +0300 |
---|---|---|
committer | Germano <germano.costa@ig.com.br> | 2017-12-14 17:21:38 +0300 |
commit | 5b5de35604569bfe5007a7ed427c702775c7871c (patch) | |
tree | 10bf8f2d8728239b84a97dd343aed96590d9feab /source/blender/draw/intern/draw_cache_impl_metaball.c | |
parent | bb9d068ccc2b86d4f3fc06fceca90f26e34cdf7e (diff) |
Support for Batchs split by material for objects of type Curve, Surface, and Text
**ToDo:**
- add vertbuff for UV (what can be adapted from `dl_surf_to_renderdata`)
Diffstat (limited to 'source/blender/draw/intern/draw_cache_impl_metaball.c')
-rw-r--r-- | source/blender/draw/intern/draw_cache_impl_metaball.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/draw/intern/draw_cache_impl_metaball.c b/source/blender/draw/intern/draw_cache_impl_metaball.c index e2dba8e626e..762564cc2a5 100644 --- a/source/blender/draw/intern/draw_cache_impl_metaball.c +++ b/source/blender/draw/intern/draw_cache_impl_metaball.c @@ -132,7 +132,15 @@ Gwn_Batch *DRW_metaball_batch_cache_get_triangles_with_normals(Object *ob) MetaBallBatchCache *cache = metaball_batch_cache_get(mb); if (cache->batch == NULL) { - cache->batch = BLI_displist_batch_calc_surface(&ob->curve_cache->disp); + ListBase *lb = &ob->curve_cache->disp; + Gwn_VertBuf *verts = DRW_displist_vertbuf_calc_pos_with_normals(lb); + if (verts) { + cache->batch = GWN_batch_create_ex( + GWN_PRIM_TRIS, + verts, + DRW_displist_indexbuf_calc_triangles_in_order(lb), + GWN_BATCH_OWNS_VBO | GWN_BATCH_OWNS_INDEX); + } } return cache->batch; |