Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/data_transfer.c
| Show All 23 Lines | |||||
| * | * | ||||
| * ***** END GPL LICENSE BLOCK ***** | * ***** END GPL LICENSE BLOCK ***** | ||||
| */ | */ | ||||
| /** \file blender/blenkernel/intern/data_transfer.c | /** \file blender/blenkernel/intern/data_transfer.c | ||||
| * \ingroup bke | * \ingroup bke | ||||
| */ | */ | ||||
| #include "CLG_log.h" | |||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| #include "DNA_customdata_types.h" | #include "DNA_customdata_types.h" | ||||
| #include "DNA_meshdata_types.h" | #include "DNA_meshdata_types.h" | ||||
| #include "DNA_mesh_types.h" | #include "DNA_mesh_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| Show All 9 Lines | |||||
| #include "BKE_mesh_runtime.h" | #include "BKE_mesh_runtime.h" | ||||
| #include "BKE_mesh_remap.h" | #include "BKE_mesh_remap.h" | ||||
| #include "BKE_object.h" | #include "BKE_object.h" | ||||
| #include "BKE_object_deform.h" | #include "BKE_object_deform.h" | ||||
| #include "BKE_report.h" | #include "BKE_report.h" | ||||
| #include "data_transfer_intern.h" | #include "data_transfer_intern.h" | ||||
| static CLG_LogRef LOG = {"bke.data_transfer"}; | |||||
| CustomDataMask BKE_object_data_transfer_dttypes_to_cdmask(const int dtdata_types) | CustomDataMask BKE_object_data_transfer_dttypes_to_cdmask(const int dtdata_types) | ||||
| { | { | ||||
| CustomDataMask cddata_mask = 0; | CustomDataMask cddata_mask = 0; | ||||
| int i; | int i; | ||||
| for (i = 0; i < DT_TYPE_MAX; i++) { | for (i = 0; i < DT_TYPE_MAX; i++) { | ||||
| const int dtdata_type = 1 << i; | const int dtdata_type = 1 << i; | ||||
| ▲ Show 20 Lines • Show All 1,047 Lines • ▼ Show 20 Lines | #define DATAMAX 4 | ||||
| } | } | ||||
| /* Get source evaluated mesh.*/ | /* Get source evaluated mesh.*/ | ||||
| me_src_mask |= BKE_object_data_transfer_dttypes_to_cdmask(data_types); | me_src_mask |= BKE_object_data_transfer_dttypes_to_cdmask(data_types); | ||||
| if (is_modifier) { | if (is_modifier) { | ||||
| me_src = ob_src->runtime.mesh_eval; | me_src = ob_src->runtime.mesh_eval; | ||||
| if (me_src == NULL || (me_src_mask & ~ob_src->runtime.last_data_mask) != 0) { | if (me_src == NULL || (me_src_mask & ~ob_src->runtime.last_data_mask) != 0) { | ||||
| printf("Data Transfer: source mesh data is not ready - dependency cycle?\n"); | CLOG_WARN(&LOG, "Data Transfer: source mesh data is not ready - dependency cycle?"); | ||||
| return changed; | return changed; | ||||
| } | } | ||||
| } | } | ||||
| else { | else { | ||||
| me_src = mesh_get_eval_final(depsgraph, scene, ob_src, me_src_mask); | me_src = mesh_get_eval_final(depsgraph, scene, ob_src, me_src_mask); | ||||
| } | } | ||||
| if (!me_src) { | if (!me_src) { | ||||
| return changed; | return changed; | ||||
| ▲ Show 20 Lines • Show All 314 Lines • Show Last 20 Lines | |||||