Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@stuvel.eu>2018-05-03 16:42:55 +0300
committerSybren A. Stüvel <sybren@stuvel.eu>2018-05-04 15:02:58 +0300
commitd8a03c77d796db4ae2546fbcbe230dbf4846b0ea (patch)
treedf3426bdeb08321f7654bfe0ca5f814469c2d384 /source/blender/blenkernel/intern/modifier.c
parent4880e2e75a860f4716e3122f5ae14f34f50a9452 (diff)
Allocate/free meshes with generic library functions.
This avoids the need to use Mesh-specific functions, and makes allocation and freeing easy oneliners.
Diffstat (limited to 'source/blender/blenkernel/intern/modifier.c')
-rw-r--r--source/blender/blenkernel/intern/modifier.c43
1 files changed, 15 insertions, 28 deletions
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 6722ed2aab1..5d2061f3bc6 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -60,6 +60,7 @@
#include "BKE_appdir.h"
#include "BKE_cdderivedmesh.h"
+#include "BKE_idcode.h"
#include "BKE_key.h"
#include "BKE_library.h"
#include "BKE_library_query.h"
@@ -1001,16 +1002,14 @@ void modifier_deformVerts_DM_deprecated(struct ModifierData *md, const ModifierE
/* TODO(sybren): deduplicate all the copies of this code in this file. */
Mesh *mesh = NULL;
if (dm != NULL) {
- mesh = BKE_libblock_alloc_notest(ID_ME);
- BKE_mesh_init(mesh);
+ mesh = BKE_id_new_nomain(ID_ME, NULL);
DM_to_mesh(dm, mesh, ctx->object, CD_MASK_EVERYTHING, false);
}
mti->deformVerts(md, ctx, mesh, vertexCos, numVerts);
if (mesh != NULL) {
- BKE_mesh_free(mesh);
- MEM_freeN(mesh);
+ BKE_id_free(NULL, mesh);
}
}
}
@@ -1029,16 +1028,14 @@ void modifier_deformMatrices_DM_deprecated(struct ModifierData *md, const Modifi
/* TODO(sybren): deduplicate all the copies of this code in this file. */
Mesh *mesh = NULL;
if (dm != NULL) {
- mesh = BKE_libblock_alloc_notest(ID_ME);
- BKE_mesh_init(mesh);
+ mesh = BKE_id_new_nomain(ID_ME, NULL);
DM_to_mesh(dm, mesh, ctx->object, CD_MASK_EVERYTHING, false);
}
mti->deformMatrices(md, ctx, mesh, vertexCos, defMats, numVerts);
if (mesh != NULL) {
- BKE_mesh_free(mesh);
- MEM_freeN(mesh);
+ BKE_id_free(NULL, mesh);
}
}
}
@@ -1056,16 +1053,14 @@ void modifier_deformVertsEM_DM_deprecated(struct ModifierData *md, const Modifie
/* TODO(sybren): deduplicate all the copies of this code in this file. */
Mesh *mesh = NULL;
if (dm != NULL) {
- mesh = BKE_libblock_alloc_notest(ID_ME);
- BKE_mesh_init(mesh);
+ mesh = BKE_id_new_nomain(ID_ME, NULL);
DM_to_mesh(dm, mesh, ctx->object, CD_MASK_EVERYTHING, false);
}
mti->deformVertsEM(md, ctx, editData, mesh, vertexCos, numVerts);
if (mesh != NULL) {
- BKE_mesh_free(mesh);
- MEM_freeN(mesh);
+ BKE_id_free(NULL, mesh);
}
}
}
@@ -1083,16 +1078,14 @@ void modifier_deformMatricesEM_DM_deprecated(struct ModifierData *md, const Modi
/* TODO(sybren): deduplicate all the copies of this code in this file. */
Mesh *mesh = NULL;
if (dm != NULL) {
- mesh = BKE_libblock_alloc_notest(ID_ME);
- BKE_mesh_init(mesh);
+ mesh = BKE_id_new_nomain(ID_ME, NULL);
DM_to_mesh(dm, mesh, ctx->object, CD_MASK_EVERYTHING, false);
}
mti->deformMatricesEM(md, ctx, editData, mesh, vertexCos, defMats, numVerts);
if (mesh != NULL) {
- BKE_mesh_free(mesh);
- MEM_freeN(mesh);
+ BKE_id_free(NULL, mesh);
}
}
}
@@ -1109,8 +1102,7 @@ struct DerivedMesh *modifier_applyModifier_DM_deprecated(struct ModifierData *md
/* TODO(sybren): deduplicate all the copies of this code in this file. */
Mesh *mesh = NULL;
if (dm != NULL) {
- mesh = BKE_libblock_alloc_notest(ID_ME);
- BKE_mesh_init(mesh);
+ mesh = BKE_id_new_nomain(ID_ME, NULL);
DM_to_mesh(dm, mesh, ctx->object, CD_MASK_EVERYTHING, false);
}
@@ -1120,12 +1112,10 @@ struct DerivedMesh *modifier_applyModifier_DM_deprecated(struct ModifierData *md
DerivedMesh *ndm = CDDM_from_mesh_ex(new_mesh, CD_DUPLICATE);
if(new_mesh != mesh) {
- BKE_mesh_free(new_mesh);
- MEM_freeN(new_mesh);
+ BKE_id_free(NULL, new_mesh);
}
if (mesh != NULL) {
- BKE_mesh_free(mesh);
- MEM_freeN(mesh);
+ BKE_id_free(NULL, mesh);
}
return ndm;
@@ -1145,8 +1135,7 @@ struct DerivedMesh *modifier_applyModifierEM_DM_deprecated(struct ModifierData *
/* TODO(sybren): deduplicate all the copies of this code in this file. */
Mesh *mesh = NULL;
if (dm != NULL) {
- mesh = BKE_libblock_alloc_notest(ID_ME);
- BKE_mesh_init(mesh);
+ mesh = BKE_id_new_nomain(ID_ME, NULL);
DM_to_mesh(dm, mesh, ctx->object, CD_MASK_EVERYTHING, false);
}
@@ -1156,12 +1145,10 @@ struct DerivedMesh *modifier_applyModifierEM_DM_deprecated(struct ModifierData *
DerivedMesh *ndm = CDDM_from_mesh_ex(new_mesh, CD_DUPLICATE);
if(new_mesh != mesh) {
- BKE_mesh_free(new_mesh);
- MEM_freeN(new_mesh);
+ BKE_id_free(NULL, new_mesh);
}
if (mesh != NULL) {
- BKE_mesh_free(mesh);
- MEM_freeN(mesh);
+ BKE_id_free(NULL, mesh);
}
return ndm;