diff options
Diffstat (limited to 'source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc')
-rw-r--r-- | source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc index 5d9e94dcbcf..69ded192449 100644 --- a/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc +++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_edituv.cc @@ -35,16 +35,23 @@ namespace blender::draw { struct MeshExtract_EditUvElem_Data { GPUIndexBufBuilder elb; bool sync_selection; + + MeshExtract_EditUvElem_Data(const MeshRenderData *mr) + { + sync_selection = (mr->toolsettings->uv_flag & UV_SYNC_SELECTION) != 0; + } + +#ifdef WITH_CXX_GUARDEDALLOC + MEM_CXX_CLASS_ALLOC_FUNCS("DRW:MeshExtract_EditUvElem_Data") +#endif }; static void *extract_edituv_tris_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo)) { - MeshExtract_EditUvElem_Data *data = static_cast<MeshExtract_EditUvElem_Data *>( - MEM_callocN(sizeof(*data), __func__)); + MeshExtract_EditUvElem_Data *data = new MeshExtract_EditUvElem_Data(mr); GPU_indexbuf_init(&data->elb, GPU_PRIM_TRIS, mr->tri_len, mr->loop_len); - data->sync_selection = (mr->toolsettings->uv_flag & UV_SYNC_SELECTION) != 0; return data; } @@ -93,7 +100,7 @@ static void extract_edituv_tris_finish(const MeshRenderData *UNUSED(mr), MeshExtract_EditUvElem_Data *data = static_cast<MeshExtract_EditUvElem_Data *>(_data); GPUIndexBuf *ibo = static_cast<GPUIndexBuf *>(buf); GPU_indexbuf_build_in_place(&data->elb, ibo); - MEM_freeN(data); + delete data; } constexpr MeshExtract create_extractor_edituv_tris() @@ -119,10 +126,8 @@ static void *extract_edituv_lines_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo)) { - MeshExtract_EditUvElem_Data *data = static_cast<MeshExtract_EditUvElem_Data *>( - MEM_callocN(sizeof(*data), __func__)); + MeshExtract_EditUvElem_Data *data = new MeshExtract_EditUvElem_Data(mr); GPU_indexbuf_init(&data->elb, GPU_PRIM_LINES, mr->loop_len, mr->loop_len); - data->sync_selection = (mr->toolsettings->uv_flag & UV_SYNC_SELECTION) != 0; return data; } @@ -183,7 +188,7 @@ static void extract_edituv_lines_finish(const MeshRenderData *UNUSED(mr), MeshExtract_EditUvElem_Data *data = static_cast<MeshExtract_EditUvElem_Data *>(_data); GPUIndexBuf *ibo = static_cast<GPUIndexBuf *>(buf); GPU_indexbuf_build_in_place(&data->elb, ibo); - MEM_freeN(data); + delete data; } constexpr MeshExtract create_extractor_edituv_lines() @@ -209,10 +214,8 @@ static void *extract_edituv_points_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo)) { - MeshExtract_EditUvElem_Data *data = static_cast<MeshExtract_EditUvElem_Data *>( - MEM_callocN(sizeof(*data), __func__)); + MeshExtract_EditUvElem_Data *data = new MeshExtract_EditUvElem_Data(mr); GPU_indexbuf_init(&data->elb, GPU_PRIM_POINTS, mr->loop_len, mr->loop_len); - data->sync_selection = (mr->toolsettings->uv_flag & UV_SYNC_SELECTION) != 0; return data; } @@ -268,7 +271,7 @@ static void extract_edituv_points_finish(const MeshRenderData *UNUSED(mr), MeshExtract_EditUvElem_Data *data = static_cast<MeshExtract_EditUvElem_Data *>(_data); GPUIndexBuf *ibo = static_cast<GPUIndexBuf *>(buf); GPU_indexbuf_build_in_place(&data->elb, ibo); - MEM_freeN(data); + delete data; } constexpr MeshExtract create_extractor_edituv_points() @@ -294,10 +297,8 @@ static void *extract_edituv_fdots_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo)) { - MeshExtract_EditUvElem_Data *data = static_cast<MeshExtract_EditUvElem_Data *>( - MEM_callocN(sizeof(*data), __func__)); + MeshExtract_EditUvElem_Data *data = new MeshExtract_EditUvElem_Data(mr); GPU_indexbuf_init(&data->elb, GPU_PRIM_POINTS, mr->poly_len, mr->poly_len); - data->sync_selection = (mr->toolsettings->uv_flag & UV_SYNC_SELECTION) != 0; return data; } @@ -365,7 +366,7 @@ static void extract_edituv_fdots_finish(const MeshRenderData *UNUSED(mr), MeshExtract_EditUvElem_Data *data = static_cast<MeshExtract_EditUvElem_Data *>(_data); GPUIndexBuf *ibo = static_cast<GPUIndexBuf *>(buf); GPU_indexbuf_build_in_place(&data->elb, ibo); - MEM_freeN(data); + delete data; } constexpr MeshExtract create_extractor_edituv_fdots() |