diff options
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_animsys.h | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_curves.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_gpencil.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_gpencil_update_cache.h | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_image_partial_update.hh | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_modifier.h | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_node_tree_update.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/gpencil.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/gpencil_update_cache.c | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/image_gpu.cc | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/image_partial_update.cc | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh_calc_edges.cc | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh_convert.cc | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/modifier.c | 23 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object.cc | 4 |
15 files changed, 50 insertions, 26 deletions
diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h index b448214ce28..ded64b68f79 100644 --- a/source/blender/blenkernel/BKE_animsys.h +++ b/source/blender/blenkernel/BKE_animsys.h @@ -88,7 +88,8 @@ struct KS_Path *BKE_keyingset_find_path(struct KeyingSet *ks, void BKE_keyingsets_copy(struct ListBase *newlist, const struct ListBase *list); /** Process the ID pointers inside a scene's keyingsets, in see `BKE_lib_query.h` for details. */ -void BKE_keyingsets_foreach_id(struct LibraryForeachIDData *data, const struct ListBase *keyingsets); +void BKE_keyingsets_foreach_id(struct LibraryForeachIDData *data, + const struct ListBase *keyingsets); /* Free the given Keying Set path */ void BKE_keyingset_free_path(struct KeyingSet *ks, struct KS_Path *ksp); diff --git a/source/blender/blenkernel/BKE_curves.h b/source/blender/blenkernel/BKE_curves.h index 7ad915b50d7..2cce15fbfd6 100644 --- a/source/blender/blenkernel/BKE_curves.h +++ b/source/blender/blenkernel/BKE_curves.h @@ -12,9 +12,9 @@ extern "C" { #endif struct BoundBox; +struct Curves; struct CustomDataLayer; struct Depsgraph; -struct Curves; struct Main; struct Object; struct Scene; diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h index a40a354eef7..e586bc4247d 100644 --- a/source/blender/blenkernel/BKE_gpencil.h +++ b/source/blender/blenkernel/BKE_gpencil.h @@ -16,6 +16,7 @@ struct Brush; struct CurveMapping; struct Depsgraph; struct GHash; +struct GPencilUpdateCache; struct ListBase; struct MDeformVert; struct Main; @@ -32,7 +33,6 @@ struct bGPDlayer; struct bGPDlayer_Mask; struct bGPDstroke; struct bGPdata; -struct GPencilUpdateCache; #define GPENCIL_SIMPLIFY(scene) (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_ENABLE) #define GPENCIL_SIMPLIFY_ONPLAY(playing) \ diff --git a/source/blender/blenkernel/BKE_gpencil_update_cache.h b/source/blender/blenkernel/BKE_gpencil_update_cache.h index a4fd70eb883..52b8716bab5 100644 --- a/source/blender/blenkernel/BKE_gpencil_update_cache.h +++ b/source/blender/blenkernel/BKE_gpencil_update_cache.h @@ -14,11 +14,11 @@ extern "C" { #include "BLI_sys_types.h" /* for bool */ struct DLRBT_Tree; -struct bGPdata; -struct bGPDlayer; +struct GPencilUpdateCache; struct bGPDframe; +struct bGPDlayer; struct bGPDstroke; -struct GPencilUpdateCache; +struct bGPdata; /* GPencilUpdateCache.flag */ typedef enum eGPUpdateCacheNodeFlag { diff --git a/source/blender/blenkernel/BKE_image_partial_update.hh b/source/blender/blenkernel/BKE_image_partial_update.hh index 3804936d00f..45b08e17920 100644 --- a/source/blender/blenkernel/BKE_image_partial_update.hh +++ b/source/blender/blenkernel/BKE_image_partial_update.hh @@ -21,8 +21,8 @@ #include "DNA_image_types.h" extern "C" { -struct PartialUpdateUser; struct PartialUpdateRegister; +struct PartialUpdateUser; } namespace blender::bke::image { diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h index 9a212cb1275..acdca23b21c 100644 --- a/source/blender/blenkernel/BKE_modifier.h +++ b/source/blender/blenkernel/BKE_modifier.h @@ -409,14 +409,18 @@ void BKE_modifier_session_uuid_generate(struct ModifierData *md); bool BKE_modifier_unique_name(struct ListBase *modifiers, struct ModifierData *md); +struct ModifierData *BKE_modifier_copy_ex(const struct ModifierData *md, int flag); + /** * Callback's can use this to avoid copying every member. */ void BKE_modifier_copydata_generic(const struct ModifierData *md, struct ModifierData *md_dst, int flag); -void BKE_modifier_copydata(struct ModifierData *md, struct ModifierData *target); -void BKE_modifier_copydata_ex(struct ModifierData *md, struct ModifierData *target, int flag); +void BKE_modifier_copydata(const struct ModifierData *md, struct ModifierData *target); +void BKE_modifier_copydata_ex(const struct ModifierData *md, + struct ModifierData *target, + int flag); bool BKE_modifier_depends_ontime(struct Scene *scene, struct ModifierData *md, int dag_eval_mode); bool BKE_modifier_supports_mapping(struct ModifierData *md); bool BKE_modifier_supports_cage(struct Scene *scene, struct ModifierData *md); diff --git a/source/blender/blenkernel/BKE_node_tree_update.h b/source/blender/blenkernel/BKE_node_tree_update.h index 7998a5ec017..5e377728bb7 100644 --- a/source/blender/blenkernel/BKE_node_tree_update.h +++ b/source/blender/blenkernel/BKE_node_tree_update.h @@ -7,12 +7,12 @@ */ struct ID; +struct ImageUser; struct Main; struct bNode; struct bNodeLink; struct bNodeSocket; struct bNodeTree; -struct ImageUser; #ifdef __cplusplus extern "C" { diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index fe3b1d0c306..16d43d40c50 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -2823,7 +2823,7 @@ void BKE_gpencil_frame_selected_hash(bGPdata *gpd, struct GHash *r_list) bool BKE_gpencil_can_avoid_full_copy_on_write(const Depsgraph *depsgraph, bGPdata *gpd) { - /* For now, we only use the update cache in the active depsgraph. Othwerwise we might access the + /* For now, we only use the update cache in the active depsgraph. Otherwise we might access the * cache while another depsgraph frees it. */ if (!DEG_is_active(depsgraph)) { return false; diff --git a/source/blender/blenkernel/intern/gpencil_update_cache.c b/source/blender/blenkernel/intern/gpencil_update_cache.c index 2258f8c353f..bbe576eb847 100644 --- a/source/blender/blenkernel/intern/gpencil_update_cache.c +++ b/source/blender/blenkernel/intern/gpencil_update_cache.c @@ -99,7 +99,7 @@ static void update_cache_node_create_ex(GPencilUpdateCache *root_cache, bool full_copy) { if (root_cache->flag == GP_UPDATE_NODE_FULL_COPY) { - /* Entire data-block has to be recaculated, e.g. nothing else needs to be added to the cache. + /* Entire data-block has to be recalculated, e.g. nothing else needs to be added to the cache. */ return; } @@ -110,14 +110,14 @@ static void update_cache_node_create_ex(GPencilUpdateCache *root_cache, root_cache->data = (bGPdata *)data; root_cache->flag = node_flag; if (full_copy) { - /* Entire data-block has to be recaculated, remove all caches of "lower" elements. */ + /* Entire data-block has to be recalculated, remove all caches of "lower" elements. */ BLI_dlrbTree_free(root_cache->children, cache_node_free); } return; } const bool is_layer_update_node = (gpf_index == -1); - /* If the data pointer in GPencilUpdateCache is NULL, this element is not actually cached + /* If the data pointer in #GPencilUpdateCache is NULL, this element is not actually cached * and does not need to be updated, but we do need the index to find elements that are in * levels below. E.g. if a stroke needs to be updated, the frame it is in would not hold a * pointer to it's data. */ @@ -174,7 +174,7 @@ static void update_cache_node_create( } if (root_cache->flag == GP_UPDATE_NODE_FULL_COPY) { - /* Entire data-block has to be recaculated, e.g. nothing else needs to be added to the cache. + /* Entire data-block has to be recalculated, e.g. nothing else needs to be added to the cache. */ return; } diff --git a/source/blender/blenkernel/intern/image_gpu.cc b/source/blender/blenkernel/intern/image_gpu.cc index 5675641deb4..444cbbe4bf9 100644 --- a/source/blender/blenkernel/intern/image_gpu.cc +++ b/source/blender/blenkernel/intern/image_gpu.cc @@ -431,7 +431,8 @@ static GPUTexture *image_get_gpu_texture(Image *ima, if (ibuf_intern == nullptr) { ibuf_intern = BKE_image_acquire_ibuf(ima, iuser, nullptr); if (ibuf_intern == nullptr) { - return image_gpu_texture_error_create(textarget); + *tex = image_gpu_texture_error_create(textarget); + return *tex; } } diff --git a/source/blender/blenkernel/intern/image_partial_update.cc b/source/blender/blenkernel/intern/image_partial_update.cc index e1e4a12533a..9d5635f49ab 100644 --- a/source/blender/blenkernel/intern/image_partial_update.cc +++ b/source/blender/blenkernel/intern/image_partial_update.cc @@ -90,8 +90,8 @@ static int chunk_number_for_pixel(int pixel_offset) return chunk_offset; } -struct PartialUpdateUserImpl; struct PartialUpdateRegisterImpl; +struct PartialUpdateUserImpl; /** * Wrap PartialUpdateUserImpl to its C-struct (PartialUpdateUser). diff --git a/source/blender/blenkernel/intern/mesh_calc_edges.cc b/source/blender/blenkernel/intern/mesh_calc_edges.cc index 0524412e302..5895eb7fd71 100644 --- a/source/blender/blenkernel/intern/mesh_calc_edges.cc +++ b/source/blender/blenkernel/intern/mesh_calc_edges.cc @@ -7,6 +7,7 @@ #include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" #include "DNA_object_types.h" + #include "BLI_map.hh" #include "BLI_task.hh" #include "BLI_threads.h" diff --git a/source/blender/blenkernel/intern/mesh_convert.cc b/source/blender/blenkernel/intern/mesh_convert.cc index c3d819bf46e..121bfbff394 100644 --- a/source/blender/blenkernel/intern/mesh_convert.cc +++ b/source/blender/blenkernel/intern/mesh_convert.cc @@ -1041,7 +1041,7 @@ static Mesh *mesh_new_from_mesh(Object *object, Mesh *mesh) BKE_mesh_wrapper_ensure_mdata(mesh); } else { - BKE_mesh_wrapper_ensure_subdivision(object, mesh); + mesh = BKE_mesh_wrapper_ensure_subdivision(object, mesh); } Mesh *mesh_result = (Mesh *)BKE_id_copy_ex( @@ -1079,8 +1079,7 @@ static Mesh *mesh_new_from_mesh_object_with_layers(Depsgraph *depsgraph, mask.pmask |= CD_MASK_ORIGINDEX; } Mesh *result = mesh_create_eval_final(depsgraph, scene, &object_for_eval, &mask); - BKE_mesh_wrapper_ensure_subdivision(object, result); - return result; + return BKE_mesh_wrapper_ensure_subdivision(object, result); } static Mesh *mesh_new_from_mesh_object(Depsgraph *depsgraph, @@ -1223,6 +1222,9 @@ Mesh *BKE_mesh_new_from_object_to_bmain(Main *bmain, BKE_mesh_nomain_to_mesh(mesh, mesh_in_bmain, nullptr, &CD_MASK_MESH, true); + /* Anonymous attributes shouldn't exist on original data. */ + BKE_mesh_anonymous_attributes_remove(mesh_in_bmain); + /* User-count is required because so far mesh was in a limbo, where library management does * not perform any user management (i.e. copy of a mesh will not increase users of materials). */ BKE_library_foreach_ID_link( diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 46fea5ae115..837c1fe179f 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -131,7 +131,7 @@ void BKE_modifier_panel_expand(ModifierData *md) /***/ -ModifierData *BKE_modifier_new(int type) +static ModifierData *modifier_allocate_and_init(int type) { const ModifierTypeInfo *mti = BKE_modifier_get_info(type); ModifierData *md = MEM_callocN(mti->structSize, mti->structName); @@ -152,6 +152,13 @@ ModifierData *BKE_modifier_new(int type) mti->initData(md); } + return md; +} + +ModifierData *BKE_modifier_new(int type) +{ + ModifierData *md = modifier_allocate_and_init(type); + BKE_modifier_session_uuid_generate(md); return md; @@ -315,6 +322,16 @@ void BKE_modifiers_foreach_tex_link(Object *ob, TexWalkFunc walk, void *userData } } +ModifierData *BKE_modifier_copy_ex(const ModifierData *md, int flag) +{ + ModifierData *md_dst = modifier_allocate_and_init(md->type); + + BLI_strncpy(md_dst->name, md->name, sizeof(md_dst->name)); + BKE_modifier_copydata_ex(md, md_dst, flag); + + return md_dst; +} + void BKE_modifier_copydata_generic(const ModifierData *md_src, ModifierData *md_dst, const int UNUSED(flag)) @@ -348,7 +365,7 @@ static void modifier_copy_data_id_us_cb(void *UNUSED(userData), } } -void BKE_modifier_copydata_ex(ModifierData *md, ModifierData *target, const int flag) +void BKE_modifier_copydata_ex(const ModifierData *md, ModifierData *target, const int flag) { const ModifierTypeInfo *mti = BKE_modifier_get_info(md->type); @@ -378,7 +395,7 @@ void BKE_modifier_copydata_ex(ModifierData *md, ModifierData *target, const int } } -void BKE_modifier_copydata(ModifierData *md, ModifierData *target) +void BKE_modifier_copydata(const ModifierData *md, ModifierData *target) { BKE_modifier_copydata_ex(md, target, 0); } diff --git a/source/blender/blenkernel/intern/object.cc b/source/blender/blenkernel/intern/object.cc index 579e61750f0..3a8d7d6bc8a 100644 --- a/source/blender/blenkernel/intern/object.cc +++ b/source/blender/blenkernel/intern/object.cc @@ -1599,9 +1599,7 @@ bool BKE_object_modifier_stack_copy(Object *ob_dst, continue; } - ModifierData *md_dst = BKE_modifier_new(md_src->type); - BLI_strncpy(md_dst->name, md_src->name, sizeof(md_dst->name)); - BKE_modifier_copydata_ex(md_src, md_dst, flag_subdata); + ModifierData *md_dst = BKE_modifier_copy_ex(md_src, flag_subdata); BLI_addtail(&ob_dst->modifiers, md_dst); } |