diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-12-23 02:23:51 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-01-11 18:00:23 +0300 |
commit | a46dc9b234399401eac185284559adf713d75ecf (patch) | |
tree | 6e34388b0a1df94fe6fc428342fd85236e9659c1 /source | |
parent | 44e3fc66c7ef30390e7af8deaeff904ff0ef8adb (diff) |
Mesh Batch Cache: Cleanup Unused
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/intern/draw_cache_impl_mesh.c | 156 |
1 files changed, 4 insertions, 152 deletions
diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c index 6e28bd6a916..a0da6fb2919 100644 --- a/source/blender/draw/intern/draw_cache_impl_mesh.c +++ b/source/blender/draw/intern/draw_cache_impl_mesh.c @@ -2088,61 +2088,6 @@ typedef struct MeshBatchCache { /* OLD BATCH METHOD, thoses needs to be ported and added in the structs above. */ - /* Indices buffers. */ - GPUIndexBuf *edges_in_order; - GPUIndexBuf *edges_adjacency; /* Store edges with adjacent vertices. */ - GPUIndexBuf *triangles_in_order; - GPUIndexBuf *ledges_in_order; - - GPUBatch *all_triangles; - - GPUVertBuf *pos_with_normals; - GPUVertBuf *pos_with_normals_visible_only; - GPUVertBuf *pos_with_normals_edit; - GPUVertBuf *pos_with_normals_visible_only_edit; - GPUVertBuf *tri_aligned_uv; /* Active UV layer (mloopuv) */ - - /** - * Other uses are all positions or loose elements. - * This stores all visible elements, needed for selection. - */ - GPUVertBuf *ed_fcenter_pos_with_nor_and_sel; - GPUVertBuf *ed_edge_pos; - GPUVertBuf *ed_vert_pos; - - GPUBatch *triangles_with_normals; - GPUBatch *ledges_with_normals; - - /* Skip hidden (depending on paint select mode) */ - GPUBatch *triangles_with_weights; - GPUBatch *triangles_with_vert_colors; - /* Always skip hidden */ - GPUBatch *triangles_with_select_mask; - GPUBatch *triangles_with_select_id; - uint triangles_with_select_id_offset; - - GPUBatch *facedot_with_select_id; /* shares vbo with 'edit_facedots' */ - GPUBatch *edges_with_select_id; - GPUBatch *verts_with_select_id; - - uint facedot_with_select_id_offset; - uint edges_with_select_id_offset; - uint verts_with_select_id_offset; - - GPUBatch *points_with_normals; - GPUBatch *fancy_edges; /* owns its vertex buffer (not shared) */ - - GPUBatch *edge_detection; - - /* Texture Paint.*/ - /* per-texture batch */ - GPUBatch **texpaint_triangles; - GPUBatch *texpaint_triangles_single; - - GPUBatch *overlay_weight_faces; - GPUBatch *overlay_weight_verts; - GPUBatch *overlay_paint_edges; - /* 2D/UV edit */ GPUVertBuf *edituv_pos; GPUVertBuf *edituv_area; @@ -2189,7 +2134,7 @@ typedef struct MeshBatchCache { /* XXX, only keep for as long as sculpt mode uses shaded drawing. */ bool is_sculpt_points_tag; - /* Valid only if edges_adjacency is up to date. */ + /* Valid only if edge_detection is up to date. */ bool is_manifold; } MeshBatchCache; @@ -2311,8 +2256,6 @@ static void mesh_batch_cache_discard_shaded_tri(MeshBatchCache *cache) } MEM_SAFE_FREE(cache->surf_per_mat); - MEM_SAFE_FREE(cache->texpaint_triangles); - MEM_SAFE_FREE(cache->auto_layer_names); MEM_SAFE_FREE(cache->auto_layer_is_srgb); @@ -2382,12 +2325,6 @@ void DRW_mesh_batch_cache_dirty_tag(Mesh *me, int mode) GPU_BATCH_DISCARD_SAFE(cache->batch.edit_loose_verts); GPU_BATCH_DISCARD_SAFE(cache->batch.edit_loose_edges); GPU_BATCH_DISCARD_SAFE(cache->batch.edit_facedots); - GPU_VERTBUF_DISCARD_SAFE(cache->ed_edge_pos); - GPU_VERTBUF_DISCARD_SAFE(cache->ed_vert_pos); - /* Edit mode selection. */ - GPU_BATCH_DISCARD_SAFE(cache->facedot_with_select_id); - GPU_BATCH_DISCARD_SAFE(cache->edges_with_select_id); - GPU_BATCH_DISCARD_SAFE(cache->verts_with_select_id); /* Paint mode selection */ /* TODO only do that in paint mode. */ GPU_VERTBUF_DISCARD_SAFE(cache->ordered.loop_pos_nor); @@ -2398,9 +2335,6 @@ void DRW_mesh_batch_cache_dirty_tag(Mesh *me, int mode) GPU_BATCH_DISCARD_SAFE(cache->surf_per_mat[i]); } } - GPU_BATCH_DISCARD_SAFE(cache->overlay_paint_edges); - GPU_BATCH_DISCARD_SAFE(cache->overlay_weight_faces); - GPU_BATCH_DISCARD_SAFE(cache->overlay_weight_verts); /* Because visible UVs depends on edit mode selection, discard everything. */ mesh_batch_cache_discard_uvedit(cache); break; @@ -2426,49 +2360,6 @@ void DRW_mesh_batch_cache_dirty_tag(Mesh *me, int mode) } } -/** - * This only clear the batches associated to the given vertex buffer. - **/ -static void mesh_batch_cache_clear_selective(Mesh *me, GPUVertBuf *vert) -{ - MeshBatchCache *cache = me->runtime.batch_cache; - if (!cache) { - return; - } - - BLI_assert(vert != NULL); - - if (ELEM(vert, cache->pos_with_normals, cache->pos_with_normals_visible_only, - cache->pos_with_normals_edit, cache->pos_with_normals_visible_only_edit)) - { - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_normals); - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_weights); - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_vert_colors); - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_select_id); - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_select_mask); - GPU_BATCH_DISCARD_SAFE(cache->points_with_normals); - GPU_BATCH_DISCARD_SAFE(cache->ledges_with_normals); - // if (cache->shaded_triangles) { - // for (int i = 0; i < cache->mat_len; i++) { - // GPU_BATCH_DISCARD_SAFE(cache->shaded_triangles[i]); - // } - // } - // MEM_SAFE_FREE(cache->shaded_triangles); - // if (cache->texpaint_triangles) { - // for (int i = 0; i < cache->mat_len; i++) { - // GPU_BATCH_DISCARD_SAFE(cache->texpaint_triangles[i]); - // } - // } - MEM_SAFE_FREE(cache->texpaint_triangles); - GPU_BATCH_DISCARD_SAFE(cache->texpaint_triangles_single); - } - /* TODO: add the other ones if needed. */ - else { - /* Does not match any vertbuf in the batch cache! */ - BLI_assert(0); - } -} - static void mesh_batch_cache_clear(Mesh *me) { MeshBatchCache *cache = me->runtime.batch_cache; @@ -2497,51 +2388,10 @@ static void mesh_batch_cache_clear(Mesh *me) GPU_BATCH_DISCARD_SAFE(batch[i]); } - GPU_BATCH_DISCARD_SAFE(cache->all_triangles); - - GPU_INDEXBUF_DISCARD_SAFE(cache->edges_in_order); - GPU_INDEXBUF_DISCARD_SAFE(cache->triangles_in_order); - GPU_INDEXBUF_DISCARD_SAFE(cache->ledges_in_order); - - GPU_BATCH_DISCARD_SAFE(cache->overlay_weight_faces); - GPU_BATCH_DISCARD_SAFE(cache->overlay_weight_verts); - GPU_BATCH_DISCARD_SAFE(cache->overlay_paint_edges); - - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_normals); - GPU_BATCH_DISCARD_SAFE(cache->points_with_normals); - GPU_BATCH_DISCARD_SAFE(cache->ledges_with_normals); - GPU_VERTBUF_DISCARD_SAFE(cache->pos_with_normals); - GPU_VERTBUF_DISCARD_SAFE(cache->pos_with_normals_visible_only); - GPU_VERTBUF_DISCARD_SAFE(cache->pos_with_normals_edit); - GPU_VERTBUF_DISCARD_SAFE(cache->pos_with_normals_visible_only_edit); - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_weights); - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_vert_colors); - GPU_VERTBUF_DISCARD_SAFE(cache->tri_aligned_uv); - GPU_VERTBUF_DISCARD_SAFE(cache->ed_fcenter_pos_with_nor_and_sel); - GPU_VERTBUF_DISCARD_SAFE(cache->ed_edge_pos); - GPU_VERTBUF_DISCARD_SAFE(cache->ed_vert_pos); - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_select_mask); - GPU_BATCH_DISCARD_SAFE(cache->triangles_with_select_id); - GPU_BATCH_DISCARD_SAFE(cache->facedot_with_select_id); - GPU_BATCH_DISCARD_SAFE(cache->edges_with_select_id); - GPU_BATCH_DISCARD_SAFE(cache->verts_with_select_id); - - GPU_BATCH_DISCARD_SAFE(cache->fancy_edges); - - GPU_INDEXBUF_DISCARD_SAFE(cache->edges_adjacency); - GPU_BATCH_DISCARD_SAFE(cache->edge_detection); - mesh_batch_cache_discard_shaded_tri(cache); mesh_batch_cache_discard_uvedit(cache); - if (cache->texpaint_triangles) { - for (int i = 0; i < cache->mat_len; i++) { - GPU_BATCH_DISCARD_SAFE(cache->texpaint_triangles[i]); - } - } - MEM_SAFE_FREE(cache->texpaint_triangles); - drw_mesh_weight_state_clear(&cache->weight_state); } @@ -4869,8 +4719,9 @@ GPUBatch *DRW_mesh_batch_cache_get_surface_edges(Mesh *me) /** * Needed for when we draw with shaded data. */ -void DRW_mesh_cache_sculpt_coords_ensure(Mesh *me) +void DRW_mesh_cache_sculpt_coords_ensure(Mesh *UNUSED(me)) { +#if 0 /* Unused for now */ if (me->runtime.batch_cache) { MeshBatchCache *cache = mesh_batch_cache_get(me); if (cache && cache->pos_with_normals && cache->is_sculpt_points_tag) { @@ -4881,6 +4732,7 @@ void DRW_mesh_cache_sculpt_coords_ensure(Mesh *me) } cache->is_sculpt_points_tag = false; } +#endif } static uchar mesh_batch_cache_validate_edituvs(MeshBatchCache *cache, uchar state) |