Blender V5.0
gpencil_modifier_legacy.cc File Reference
#include "BLI_assert.h"
#include "BLI_listbase.h"
#include "MEM_guardedalloc.h"
#include "DNA_colorband_types.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_texture_types.h"
#include "BKE_colortools.hh"
#include "BKE_deform.hh"
#include "BKE_gpencil_modifier_legacy.h"
#include "BKE_lattice.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_modifier.hh"
#include "BKE_screen.hh"
#include "BKE_shrinkwrap.hh"
#include "BLO_read_write.hh"

Go to the source code of this file.

Functions

static bool gpencil_modifier_type_valid (const int type)
static void gpencil_modifier_free_data (GpencilModifierData *md)
static void gpencil_modifier_foreach_ID_link (GpencilModifierData *md, Object *ob, GreasePencilIDWalkFunc walk, void *user_data)
static void modifier_free_data_id_us_cb (void *, Object *, ID **idpoin, const LibraryForeachIDCallbackFlag cb_flag)
void BKE_gpencil_modifier_free_ex (GpencilModifierData *md, const int flag)
void BKE_gpencil_modifier_free (GpencilModifierData *md)
void BKE_gpencil_modifiers_foreach_ID_link (Object *ob, GreasePencilIDWalkFunc walk, void *user_data)
void BKE_gpencil_modifier_blend_read_data (BlendDataReader *reader, ListBase *lb, Object *ob)

Function Documentation

◆ BKE_gpencil_modifier_blend_read_data()

◆ BKE_gpencil_modifier_free()

void BKE_gpencil_modifier_free ( struct GpencilModifierData * md)

Free grease pencil modifier data

Parameters
mdModifier data.

Definition at line 377 of file gpencil_modifier_legacy.cc.

References BKE_gpencil_modifier_free_ex().

◆ BKE_gpencil_modifier_free_ex()

◆ BKE_gpencil_modifiers_foreach_ID_link()

void BKE_gpencil_modifiers_foreach_ID_link ( struct Object * ob,
GreasePencilIDWalkFunc walk,
void * user_data )

Link grease pencil modifier related IDs.

Parameters
obGrease pencil object.
walkWalk option.
user_dataUser data.

Definition at line 382 of file gpencil_modifier_legacy.cc.

References ListBase::first, gpencil_modifier_foreach_ID_link(), Object::greasepencil_modifiers, and GpencilModifierData::next.

Referenced by blender::deg::DepsgraphNodeBuilder::build_object(), blender::deg::DepsgraphRelationBuilder::build_object(), and object_foreach_id().

◆ gpencil_modifier_foreach_ID_link()

void gpencil_modifier_foreach_ID_link ( GpencilModifierData * md,
Object * ob,
GreasePencilIDWalkFunc walk,
void * user_data )
static

Should call the given walk function with a pointer to each ID pointer (i.e. each data-block pointer) that the modifier data stores. This is used for linking on file load and for unlinking data-blocks or forwarding data-block references.

Definition at line 163 of file gpencil_modifier_legacy.cc.

References ShrinkwrapGpencilModifierData::aux_target, BLI_assert_unreachable, eGpencilModifierType_Armature, eGpencilModifierType_Array, eGpencilModifierType_Build, eGpencilModifierType_Color, eGpencilModifierType_Dash, eGpencilModifierType_Envelope, eGpencilModifierType_Hook, eGpencilModifierType_Lattice, eGpencilModifierType_Length, eGpencilModifierType_Lineart, eGpencilModifierType_Mirror, eGpencilModifierType_Multiply, eGpencilModifierType_Noise, eGpencilModifierType_None, eGpencilModifierType_Offset, eGpencilModifierType_Opacity, eGpencilModifierType_Outline, eGpencilModifierType_Shrinkwrap, eGpencilModifierType_Simplify, eGpencilModifierType_Smooth, eGpencilModifierType_Subdiv, eGpencilModifierType_Texture, eGpencilModifierType_Thick, eGpencilModifierType_Time, eGpencilModifierType_Tint, eGpencilModifierType_WeightAngle, eGpencilModifierType_WeightProximity, IDWALK_CB_NOP, IDWALK_CB_USER, LineartGpencilModifierData::light_contour_object, ArrayGpencilModifierData::material, ColorGpencilModifierData::material, DashGpencilModifierData::material, EnvelopeGpencilModifierData::material, HookGpencilModifierData::material, LatticeGpencilModifierData::material, LengthGpencilModifierData::material, MirrorGpencilModifierData::material, MultiplyGpencilModifierData::material, NoiseGpencilModifierData::material, OffsetGpencilModifierData::material, OpacityGpencilModifierData::material, OutlineGpencilModifierData::material, ShrinkwrapGpencilModifierData::material, SimplifyGpencilModifierData::material, SmoothGpencilModifierData::material, SubdivGpencilModifierData::material, TextureGpencilModifierData::material, ThickGpencilModifierData::material, TimeGpencilModifierData::material, TintGpencilModifierData::material, WeightAngleGpencilModifierData::material, WeightProxGpencilModifierData::material, NUM_GREASEPENCIL_MODIFIER_TYPES, ArmatureGpencilModifierData::object, ArrayGpencilModifierData::object, BuildGpencilModifierData::object, HookGpencilModifierData::object, LatticeGpencilModifierData::object, MirrorGpencilModifierData::object, OutlineGpencilModifierData::object, TintGpencilModifierData::object, WeightProxGpencilModifierData::object, OutlineGpencilModifierData::outline_material, LineartGpencilModifierData::source_camera, LineartGpencilModifierData::source_collection, LineartGpencilModifierData::source_object, ShrinkwrapGpencilModifierData::target, LineartGpencilModifierData::target_material, and GpencilModifierData::type.

Referenced by BKE_gpencil_modifier_free_ex(), and BKE_gpencil_modifiers_foreach_ID_link().

◆ gpencil_modifier_free_data()

void gpencil_modifier_free_data ( GpencilModifierData * md)
static

Free internal modifier data variables, this function should not free the md variable itself.

Definition at line 42 of file gpencil_modifier_legacy.cc.

References BKE_curvemapping_free(), BKE_lattice_deform_data_destroy(), BKE_shrinkwrap_free_tree(), BLI_assert_unreachable, LatticeGpencilModifierData::cache_data, ShrinkwrapGpencilModifierData::cache_data, TintGpencilModifierData::colorband, HookGpencilModifierData::curfalloff, ColorGpencilModifierData::curve_intensity, NoiseGpencilModifierData::curve_intensity, OpacityGpencilModifierData::curve_intensity, SmoothGpencilModifierData::curve_intensity, TintGpencilModifierData::curve_intensity, ThickGpencilModifierData::curve_thickness, eGpencilModifierType_Armature, eGpencilModifierType_Array, eGpencilModifierType_Build, eGpencilModifierType_Color, eGpencilModifierType_Dash, eGpencilModifierType_Envelope, eGpencilModifierType_Hook, eGpencilModifierType_Lattice, eGpencilModifierType_Length, eGpencilModifierType_Lineart, eGpencilModifierType_Mirror, eGpencilModifierType_Multiply, eGpencilModifierType_Noise, eGpencilModifierType_None, eGpencilModifierType_Offset, eGpencilModifierType_Opacity, eGpencilModifierType_Outline, eGpencilModifierType_Shrinkwrap, eGpencilModifierType_Simplify, eGpencilModifierType_Smooth, eGpencilModifierType_Subdiv, eGpencilModifierType_Texture, eGpencilModifierType_Thick, eGpencilModifierType_Time, eGpencilModifierType_Tint, eGpencilModifierType_WeightAngle, eGpencilModifierType_WeightProximity, MEM_SAFE_FREE, NUM_GREASEPENCIL_MODIFIER_TYPES, DashGpencilModifierData::segments, TimeGpencilModifierData::segments, and GpencilModifierData::type.

Referenced by BKE_gpencil_modifier_free_ex().

◆ gpencil_modifier_type_valid()

bool gpencil_modifier_type_valid ( const int type)
static

◆ modifier_free_data_id_us_cb()

void modifier_free_data_id_us_cb ( void * ,
Object * ,
ID ** idpoin,
const LibraryForeachIDCallbackFlag cb_flag )
static

Definition at line 352 of file gpencil_modifier_legacy.cc.

References id_us_min(), and IDWALK_CB_USER.

Referenced by BKE_gpencil_modifier_free_ex(), and BKE_modifier_free_ex().