From 9f51fc656e2ae7b4464240775600dcc81ba2df00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Fri, 11 Jan 2019 19:07:33 +0100 Subject: [PATCH] EditUV: Only clear data VBO when selection changes This is a small optimisation that make UV selection faster. --- source/blender/draw/intern/draw_cache_impl_mesh.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c index 5ed1bcb2f43..e29d87fe13d 100644 --- a/source/blender/draw/intern/draw_cache_impl_mesh.c +++ b/source/blender/draw/intern/draw_cache_impl_mesh.c @@ -2319,8 +2319,14 @@ void DRW_mesh_batch_cache_dirty_tag(Mesh *me, int mode) mesh_batch_cache_discard_uvedit(cache); break; case BKE_MESH_BATCH_DIRTY_UVEDIT_SELECT: - /* For now same as above. */ - mesh_batch_cache_discard_uvedit(cache); + GPU_VERTBUF_DISCARD_SAFE(cache->edituv.loop_data); + GPU_VERTBUF_DISCARD_SAFE(cache->edituv.facedots_data); + GPU_BATCH_DISCARD_SAFE(cache->batch.edituv_faces_strech_area); + GPU_BATCH_DISCARD_SAFE(cache->batch.edituv_faces_strech_angle); + GPU_BATCH_DISCARD_SAFE(cache->batch.edituv_faces); + GPU_BATCH_DISCARD_SAFE(cache->batch.edituv_edges); + GPU_BATCH_DISCARD_SAFE(cache->batch.edituv_verts); + GPU_BATCH_DISCARD_SAFE(cache->batch.edituv_facedots); break; default: BLI_assert(0);