[Bf-blender-cvs] [36288aa5aed] temp-lineart-embree: LineArt: Working fix for new object loading
YimingWu
noreply at git.blender.org
Tue Apr 5 17:01:41 CEST 2022
Commit: 36288aa5aedabace51913f724a3c8aae6e201e44
Author: YimingWu
Date: Tue Apr 5 22:59:13 2022 +0800
Branches: temp-lineart-embree
https://developer.blender.org/rB36288aa5aedabace51913f724a3c8aae6e201e44
LineArt: Working fix for new object loading
===================================================================
M release/scripts/addons
M source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
===================================================================
diff --git a/release/scripts/addons b/release/scripts/addons
index c157125ace8..22c1eb5c3d5 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit c157125ace858760138d2c3b99c0f45b45743e98
+Subproject commit 22c1eb5c3d505d85e953c3921317856af103a2eb
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index 99764820d35..b69c20d2b21 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -2338,6 +2338,12 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info,
int allocate_la_e = edge_reduce.feat_edges;
+ if (!edge_pair_arr) {
+ edge_pair_alloc_len = 256;
+ edge_pair_arr = MEM_mallocN(sizeof(EdgeFacePair) * edge_pair_alloc_len,
+ "lineart edge_pair arr");
+ }
+
/* Check for edge marks that would create feature edges. */
for (int i = 0; i < me->totedge; i++) {
MEdge *medge = &me->medge[i];
@@ -2347,7 +2353,7 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info,
if (eflag) {
int min_edges_to_add = 0;
void **eval;
- if (!BLI_edgehash_ensure_p(edge_hash, medge->v1, medge->v2, &eval)) {
+ if (edge_hash == NULL || !BLI_edgehash_ensure_p(edge_hash, medge->v1, medge->v2, &eval)) {
int pair_idx = edge_pair_arr_len++;
/* Edge has not been added before, create a new pair. */
EdgeFacePair *pair = &edge_pair_arr[pair_idx];
@@ -2357,7 +2363,9 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info,
pair->f1 = -1;
pair->f2 = -1;
pair->eflag = eflag;
- *eval = POINTER_FROM_INT(pair_idx);
+ if (edge_hash) {
+ *eval = POINTER_FROM_INT(pair_idx);
+ }
min_edges_to_add = 1;
if (edge_pair_arr_len == edge_pair_alloc_len) {
@@ -2387,7 +2395,9 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info,
}
}
- BLI_edgehash_free(edge_hash, NULL);
+ if (edge_hash) {
+ BLI_edgehash_free(edge_hash, NULL);
+ }
la_edge_arr = lineart_mem_acquire_thread(&re_buf->render_data_pool,
sizeof(LineartEdge) * allocate_la_e);
More information about the Bf-blender-cvs
mailing list