Blender V4.3
gpencil_modifier_legacy.cc File Reference
#include "BLI_assert.h"
#include "MEM_guardedalloc.h"
#include "DNA_gpencil_legacy_types.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "BKE_colortools.hh"
#include "BKE_deform.hh"
#include "BKE_gpencil_geom_legacy.h"
#include "BKE_gpencil_legacy.h"
#include "BKE_gpencil_modifier_legacy.h"
#include "BKE_lattice.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_material.h"
#include "BKE_modifier.hh"
#include "BKE_object.hh"
#include "BKE_screen.hh"
#include "BKE_shrinkwrap.hh"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_query.hh"
#include "BLO_read_write.hh"

Go to the source code of this file.

Functions

static const char * gpencil_modifier_struct_name (const GpencilModifierType type)
 
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, int 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_write (BlendWriter *writer, ListBase *modbase)
 
void BKE_gpencil_modifier_blend_read_data (BlendDataReader *reader, ListBase *lb, Object *ob)
 

Function Documentation

◆ BKE_gpencil_modifier_blend_read_data()

◆ BKE_gpencil_modifier_blend_write()

◆ BKE_gpencil_modifier_free()

void BKE_gpencil_modifier_free ( struct GpencilModifierData * md)

Free grease pencil modifier data

Parameters
mdModifier data.

Definition at line 447 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 452 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()

static 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 233 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()

static 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 112 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_struct_name()

◆ gpencil_modifier_type_valid()

static bool gpencil_modifier_type_valid ( const int type)
static

◆ modifier_free_data_id_us_cb()

static void modifier_free_data_id_us_cb ( void * ,
Object * ,
ID ** idpoin,
int cb_flag )
static

Definition at line 422 of file gpencil_modifier_legacy.cc.

References id_us_min(), and IDWALK_CB_USER.

Referenced by BKE_gpencil_modifier_free_ex().