Cleanup: rename 'MeshBufferExtractionCache' to 'MeshBufferCache'

Matches the existing `MeshBatchCache`.
This commit is contained in:
Germano Cavalcante 2021-08-23 12:35:43 -03:00
parent 6e51ef9531
commit eb0c50ac78
5 changed files with 43 additions and 58 deletions

View File

@ -159,7 +159,7 @@ typedef struct MeshBufferList {
*
* - Loose geometry.
*/
typedef struct MeshBufferExtractionCache {
typedef struct MeshBufferCache {
struct {
int edge_len;
int vert_len;
@ -172,7 +172,7 @@ typedef struct MeshBufferExtractionCache {
int *mat_tri_len;
int visible_tri_len;
} poly_sorted;
} MeshBufferExtractionCache;
} MeshBufferCache;
#define FOREACH_MESH_BUFFER_CACHE(batch_cache, mbuflist) \
for (MeshBufferList *mbuflist = &batch_cache->final; \
@ -185,9 +185,9 @@ typedef struct MeshBufferExtractionCache {
typedef struct MeshBatchCache {
MeshBufferList final, cage, uv_cage;
MeshBufferExtractionCache final_extraction_cache;
MeshBufferExtractionCache cage_extraction_cache;
MeshBufferExtractionCache uv_cage_extraction_cache;
MeshBufferCache final_extraction_cache;
MeshBufferCache cage_extraction_cache;
MeshBufferCache uv_cage_extraction_cache;
struct {
/* Surfaces / Render */
@ -309,7 +309,7 @@ BLI_STATIC_ASSERT(MBC_BATCH_INDEX(surface_per_mat) < 32,
void mesh_buffer_cache_create_requested(struct TaskGraph *task_graph,
MeshBatchCache *cache,
MeshBufferList *mbuflist,
MeshBufferExtractionCache *extraction_cache,
MeshBufferCache *extraction_cache,
Mesh *me,
const bool is_editmode,
const bool is_paint_mode,

View File

@ -497,12 +497,12 @@ static struct TaskNode *extract_task_node_create(struct TaskGraph *task_graph,
* \{ */
struct MeshRenderDataUpdateTaskData {
MeshRenderData *mr = nullptr;
MeshBufferExtractionCache *cache = nullptr;
MeshBufferCache *cache = nullptr;
eMRIterType iter_type;
eMRDataType data_flag;
MeshRenderDataUpdateTaskData(MeshRenderData *mr,
MeshBufferExtractionCache *cache,
MeshBufferCache *cache,
eMRIterType iter_type,
eMRDataType data_flag)
: mr(mr), cache(cache), iter_type(iter_type), data_flag(data_flag)
@ -542,7 +542,7 @@ static void mesh_extract_render_data_node_exec(void *__restrict task_data)
static struct TaskNode *mesh_extract_render_data_node_create(struct TaskGraph *task_graph,
MeshRenderData *mr,
MeshBufferExtractionCache *cache,
MeshBufferCache *cache,
const eMRIterType iter_type,
const eMRDataType data_flag)
{
@ -566,7 +566,7 @@ static struct TaskNode *mesh_extract_render_data_node_create(struct TaskGraph *t
static void mesh_buffer_cache_create_requested(struct TaskGraph *task_graph,
MeshBatchCache *cache,
MeshBufferList *mbuflist,
MeshBufferExtractionCache *extraction_cache,
MeshBufferCache *extraction_cache,
Mesh *me,
const bool is_editmode,
@ -780,7 +780,7 @@ extern "C" {
void mesh_buffer_cache_create_requested(struct TaskGraph *task_graph,
MeshBatchCache *cache,
MeshBufferList *mbuflist,
MeshBufferExtractionCache *extraction_cache,
MeshBufferCache *extraction_cache,
Mesh *me,
const bool is_editmode,

View File

@ -45,17 +45,15 @@
* \{ */
static void mesh_render_data_lverts_bm(const MeshRenderData *mr,
MeshBufferExtractionCache *cache,
MeshBufferCache *cache,
BMesh *bm);
static void mesh_render_data_ledges_bm(const MeshRenderData *mr,
MeshBufferExtractionCache *cache,
MeshBufferCache *cache,
BMesh *bm);
static void mesh_render_data_loose_geom_mesh(const MeshRenderData *mr,
MeshBufferExtractionCache *cache);
static void mesh_render_data_loose_geom_build(const MeshRenderData *mr,
MeshBufferExtractionCache *cache);
static void mesh_render_data_loose_geom_mesh(const MeshRenderData *mr, MeshBufferCache *cache);
static void mesh_render_data_loose_geom_build(const MeshRenderData *mr, MeshBufferCache *cache);
static void mesh_render_data_loose_geom_load(MeshRenderData *mr, MeshBufferExtractionCache *cache)
static void mesh_render_data_loose_geom_load(MeshRenderData *mr, MeshBufferCache *cache)
{
mr->ledges = cache->loose_geom.edges;
mr->lverts = cache->loose_geom.verts;
@ -65,8 +63,7 @@ static void mesh_render_data_loose_geom_load(MeshRenderData *mr, MeshBufferExtra
mr->loop_loose_len = mr->vert_loose_len + (mr->edge_loose_len * 2);
}
static void mesh_render_data_loose_geom_ensure(const MeshRenderData *mr,
MeshBufferExtractionCache *cache)
static void mesh_render_data_loose_geom_ensure(const MeshRenderData *mr, MeshBufferCache *cache)
{
/* Early exit: Are loose geometry already available.
* Only checking for loose verts as loose edges and verts are calculated at the same time. */
@ -76,8 +73,7 @@ static void mesh_render_data_loose_geom_ensure(const MeshRenderData *mr,
mesh_render_data_loose_geom_build(mr, cache);
}
static void mesh_render_data_loose_geom_build(const MeshRenderData *mr,
MeshBufferExtractionCache *cache)
static void mesh_render_data_loose_geom_build(const MeshRenderData *mr, MeshBufferCache *cache)
{
cache->loose_geom.vert_len = 0;
cache->loose_geom.edge_len = 0;
@ -94,8 +90,7 @@ static void mesh_render_data_loose_geom_build(const MeshRenderData *mr,
}
}
static void mesh_render_data_loose_geom_mesh(const MeshRenderData *mr,
MeshBufferExtractionCache *cache)
static void mesh_render_data_loose_geom_mesh(const MeshRenderData *mr, MeshBufferCache *cache)
{
BLI_bitmap *lvert_map = BLI_BITMAP_NEW(mr->vert_len, __func__);
@ -128,9 +123,7 @@ static void mesh_render_data_loose_geom_mesh(const MeshRenderData *mr,
MEM_freeN(lvert_map);
}
static void mesh_render_data_lverts_bm(const MeshRenderData *mr,
MeshBufferExtractionCache *cache,
BMesh *bm)
static void mesh_render_data_lverts_bm(const MeshRenderData *mr, MeshBufferCache *cache, BMesh *bm)
{
int elem_id;
BMIter iter;
@ -147,9 +140,7 @@ static void mesh_render_data_lverts_bm(const MeshRenderData *mr,
}
}
static void mesh_render_data_ledges_bm(const MeshRenderData *mr,
MeshBufferExtractionCache *cache,
BMesh *bm)
static void mesh_render_data_ledges_bm(const MeshRenderData *mr, MeshBufferCache *cache, BMesh *bm)
{
int elem_id;
BMIter iter;
@ -167,7 +158,7 @@ static void mesh_render_data_ledges_bm(const MeshRenderData *mr,
}
void mesh_render_data_update_loose_geom(MeshRenderData *mr,
MeshBufferExtractionCache *cache,
MeshBufferCache *cache,
const eMRIterType iter_type,
const eMRDataType data_flag)
{
@ -185,16 +176,13 @@ void mesh_render_data_update_loose_geom(MeshRenderData *mr,
* Contains polygon indices sorted based on their material.
*
* \{ */
static void mesh_render_data_polys_sorted_load(MeshRenderData *mr,
const MeshBufferExtractionCache *cache);
static void mesh_render_data_polys_sorted_ensure(MeshRenderData *mr,
MeshBufferExtractionCache *cache);
static void mesh_render_data_polys_sorted_build(MeshRenderData *mr,
MeshBufferExtractionCache *cache);
static void mesh_render_data_polys_sorted_load(MeshRenderData *mr, const MeshBufferCache *cache);
static void mesh_render_data_polys_sorted_ensure(MeshRenderData *mr, MeshBufferCache *cache);
static void mesh_render_data_polys_sorted_build(MeshRenderData *mr, MeshBufferCache *cache);
static int *mesh_render_data_mat_tri_len_build(MeshRenderData *mr);
void mesh_render_data_update_polys_sorted(MeshRenderData *mr,
MeshBufferExtractionCache *cache,
MeshBufferCache *cache,
const eMRDataType data_flag)
{
if (data_flag & MR_DATA_POLYS_SORTED) {
@ -203,16 +191,14 @@ void mesh_render_data_update_polys_sorted(MeshRenderData *mr,
}
}
static void mesh_render_data_polys_sorted_load(MeshRenderData *mr,
const MeshBufferExtractionCache *cache)
static void mesh_render_data_polys_sorted_load(MeshRenderData *mr, const MeshBufferCache *cache)
{
mr->poly_sorted.tri_first_index = cache->poly_sorted.tri_first_index;
mr->poly_sorted.mat_tri_len = cache->poly_sorted.mat_tri_len;
mr->poly_sorted.visible_tri_len = cache->poly_sorted.visible_tri_len;
}
static void mesh_render_data_polys_sorted_ensure(MeshRenderData *mr,
MeshBufferExtractionCache *cache)
static void mesh_render_data_polys_sorted_ensure(MeshRenderData *mr, MeshBufferCache *cache)
{
if (cache->poly_sorted.tri_first_index) {
return;
@ -220,8 +206,7 @@ static void mesh_render_data_polys_sorted_ensure(MeshRenderData *mr,
mesh_render_data_polys_sorted_build(mr, cache);
}
static void mesh_render_data_polys_sorted_build(MeshRenderData *mr,
MeshBufferExtractionCache *cache)
static void mesh_render_data_polys_sorted_build(MeshRenderData *mr, MeshBufferCache *cache)
{
int *tri_first_index = MEM_mallocN(sizeof(*tri_first_index) * mr->poly_len, __func__);
int *mat_tri_len = mesh_render_data_mat_tri_len_build(mr);
@ -584,7 +569,7 @@ void mesh_render_data_free(MeshRenderData *mr)
MEM_SAFE_FREE(mr->mlooptri);
MEM_SAFE_FREE(mr->loop_normals);
/* Loose geometry are owned by #MeshBufferExtractionCache. */
/* Loose geometry are owned by #MeshBufferCache. */
mr->ledges = NULL;
mr->lverts = NULL;

View File

@ -856,16 +856,16 @@ static void mesh_buffer_list_clear(MeshBufferList *mbuflist)
}
}
static void mesh_buffer_extraction_cache_clear(MeshBufferExtractionCache *extraction_cache)
static void mesh_buffer_cache_clear(MeshBufferCache *mbc)
{
MEM_SAFE_FREE(extraction_cache->loose_geom.verts);
MEM_SAFE_FREE(extraction_cache->loose_geom.edges);
extraction_cache->loose_geom.edge_len = 0;
extraction_cache->loose_geom.vert_len = 0;
MEM_SAFE_FREE(mbc->loose_geom.verts);
MEM_SAFE_FREE(mbc->loose_geom.edges);
mbc->loose_geom.edge_len = 0;
mbc->loose_geom.vert_len = 0;
MEM_SAFE_FREE(extraction_cache->poly_sorted.tri_first_index);
MEM_SAFE_FREE(extraction_cache->poly_sorted.mat_tri_len);
extraction_cache->poly_sorted.visible_tri_len = 0;
MEM_SAFE_FREE(mbc->poly_sorted.tri_first_index);
MEM_SAFE_FREE(mbc->poly_sorted.mat_tri_len);
mbc->poly_sorted.visible_tri_len = 0;
}
static void mesh_batch_cache_clear(Mesh *me)
@ -878,9 +878,9 @@ static void mesh_batch_cache_clear(Mesh *me)
mesh_buffer_list_clear(mbuflist);
}
mesh_buffer_extraction_cache_clear(&cache->final_extraction_cache);
mesh_buffer_extraction_cache_clear(&cache->cage_extraction_cache);
mesh_buffer_extraction_cache_clear(&cache->uv_cage_extraction_cache);
mesh_buffer_cache_clear(&cache->final_extraction_cache);
mesh_buffer_cache_clear(&cache->cage_extraction_cache);
mesh_buffer_cache_clear(&cache->uv_cage_extraction_cache);
for (int i = 0; i < cache->mat_len; i++) {
GPU_INDEXBUF_DISCARD_SAFE(cache->tris_per_mat[i]);

View File

@ -252,11 +252,11 @@ MeshRenderData *mesh_render_data_create(Mesh *me,
void mesh_render_data_free(MeshRenderData *mr);
void mesh_render_data_update_normals(MeshRenderData *mr, const eMRDataType data_flag);
void mesh_render_data_update_loose_geom(MeshRenderData *mr,
MeshBufferExtractionCache *cache,
MeshBufferCache *cache,
const eMRIterType iter_type,
const eMRDataType data_flag);
void mesh_render_data_update_polys_sorted(MeshRenderData *mr,
MeshBufferExtractionCache *cache,
MeshBufferCache *cache,
const eMRDataType data_flag);
void mesh_render_data_update_looptris(MeshRenderData *mr,
const eMRIterType iter_type,