diff options
Diffstat (limited to 'source/blender/draw/intern/draw_cache_impl_metaball.c')
-rw-r--r-- | source/blender/draw/intern/draw_cache_impl_metaball.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/draw/intern/draw_cache_impl_metaball.c b/source/blender/draw/intern/draw_cache_impl_metaball.c index c3bc3bd00dd..0d2c06e4c02 100644 --- a/source/blender/draw/intern/draw_cache_impl_metaball.c +++ b/source/blender/draw/intern/draw_cache_impl_metaball.c @@ -139,7 +139,7 @@ static GPUVertBuf *mball_batch_cache_get_pos_and_normals(Object *ob, MetaBallBat if (cache->pos_nor_in_order == NULL) { ListBase *lb = &ob->runtime.curve_cache->disp; cache->pos_nor_in_order = MEM_callocN(sizeof(GPUVertBuf), __func__); - DRW_displist_vertbuf_create_pos_and_nor(lb, cache->pos_nor_in_order); + DRW_displist_vertbuf_create_pos_and_nor_and_wiredata(lb, cache->pos_nor_in_order); } return cache->pos_nor_in_order; } @@ -203,13 +203,15 @@ GPUBatch *DRW_metaball_batch_cache_get_wireframes_face(Object *ob) ListBase *lb = &ob->runtime.curve_cache->disp; GPUVertBuf *vbo_pos_nor = MEM_callocN(sizeof(GPUVertBuf), __func__); - GPUVertBuf *vbo_wireframe_data = MEM_callocN(sizeof(GPUVertBuf), __func__); + DRW_displist_vertbuf_create_pos_and_nor_and_wiredata(lb, vbo_pos_nor); - DRW_displist_vertbuf_create_pos_and_nor_and_uv_tess(lb, vbo_pos_nor, NULL); - DRW_displist_vertbuf_create_wireframe_data_tess(lb, vbo_wireframe_data); + GPUIndexBuf *ibo = MEM_callocN(sizeof(GPUIndexBuf), __func__); + DRW_displist_indexbuf_create_lines_in_order(lb, ibo); - cache->face_wire.batch = GPU_batch_create_ex(GPU_PRIM_TRIS, vbo_pos_nor, NULL, GPU_BATCH_OWNS_VBO); - GPU_batch_vertbuf_add_ex(cache->face_wire.batch, vbo_wireframe_data, true); + cache->face_wire.batch = GPU_batch_create_ex(GPU_PRIM_LINES, + vbo_pos_nor, + ibo, + GPU_BATCH_OWNS_VBO | GPU_BATCH_OWNS_INDEX); } return cache->face_wire.batch; |