156 virtualModifierData->amd.modifier.next = md;
158 md = &virtualModifierData->amd.modifier;
161 virtualModifierData->lmd.object = ob->
parent;
162 virtualModifierData->lmd.modifier.next = md;
163 md = &virtualModifierData->lmd.modifier;
215 bool is_first =
true;
235 const bool is_first_lineart)
278 const bool is_render)
414 if (modifiers && gmd) {
436 if (type < NUM_GREASEPENCIL_MODIFIER_TYPES && type > 0 &&
449 strcat(r_idname, mti->
name);
469 const char *md_src_data = ((
const char *)md_src) + data_size;
470 char *md_dst_data = ((
char *)md_dst) + data_size;
472 memcpy(md_dst_data, md_src_data, (
size_t)mti->
struct_size - data_size);
516 for (; md; md = md->
next) {
556 for (; md; md = md->
next) {
571 for (; md; md = md->
next) {
599 int remap_cfra = cfra_eval;
627 object->data = gpd_eval;
691 bGPDframe *gpf_eval = gpl_eval->actframe;
693 if (gpf_eval ==
NULL || gpf_eval->
framenum != remap_cfra) {
698 if (gpl_eval->actframe !=
NULL) {
715 bool do_parent =
false;
716 bool do_transform =
false;
752 const bool do_modifiers = (
bool)((!is_multiedit) && (!is_curve_edit) &&
753 (ob_orig->greasepencil_modifiers.first !=
NULL) &&
755 if ((!do_modifiers) && (!do_parent) && (!do_transform)) {
763 if (gpd_orig->
id.
us > 1) {
782 const bool do_modifiers = (
bool)((!is_multiedit) && (!is_curve_edit) &&
793 bool is_first_lineart =
true;
807 is_first_lineart =
false;
841 if (modbase ==
NULL) {
void BKE_gpencil_eval_delete(struct bGPdata *gpd_eval)
bool BKE_gpencil_free_strokes(struct bGPDframe *gpf)
struct bGPDlayer * BKE_gpencil_layer_duplicate(const struct bGPDlayer *gpl_src, bool dup_frames, bool dup_strokes)
void BKE_gpencil_layer_original_pointers_update(const struct bGPDlayer *gpl_orig, const struct bGPDlayer *gpl_eval)
void BKE_gpencil_visible_stroke_advanced_iter(struct ViewLayer *view_layer, struct Object *ob, gpIterCb layer_cb, gpIterCb stroke_cb, void *thunk, bool do_onion, int cfra)
void BKE_gpencil_frame_original_pointers_update(const struct bGPDframe *gpf_orig, const struct bGPDframe *gpf_eval)
struct bGPDframe * BKE_gpencil_layer_frame_get(struct bGPDlayer *gpl, int cframe, eGP_GetFrame_Mode addnew)
void BKE_gpencil_frame_copy_strokes(struct bGPDframe *gpf_src, struct bGPDframe *gpf_dst)
#define GPENCIL_SIMPLIFY_MODIF(scene)
#define GPENCIL_MODIFIER_EDIT(_md, _is_edit)
#define GPENCIL_MODIFIER_TYPE_PANEL_PREFIX
void(* GreasePencilTexWalkFunc)(void *userData, struct Object *ob, struct GpencilModifierData *md, const char *propname)
@ eGpencilModifierTypeFlag_EnableInEditmode
#define GPENCIL_MODIFIER_ACTIVE(_md, _is_render)
void(* GreasePencilIDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin, int cb_flag)
void BKE_lattice_deform_data_destroy(struct LatticeDeformData *lattice_deform_data)
struct LatticeDeformData * BKE_lattice_deform_data_create(const struct Object *oblatt, const struct Object *ob) ATTR_WARN_UNUSED_RESULT
void BKE_libblock_copy_ex(struct Main *bmain, const struct ID *id, struct ID **r_newid, int orig_flag)
@ LIB_ID_CREATE_NO_USER_REFCOUNT
void id_us_min(struct ID *id)
void id_us_plus(struct ID *id)
General operations, lookup, etc. for materials.
struct Mesh * BKE_modifier_get_evaluated_mesh_from_evaluated_object(struct Object *ob_eval)
General operations, lookup, etc. for blender objects.
void BKE_object_modifiers_lib_link_common(void *userData, struct Object *ob, struct ID **idpoin, int cb_flag)
bool BKE_shrinkwrap_init_tree(struct ShrinkwrapTreeData *data, Mesh *mesh, int shrinkType, int shrinkMode, bool force_normals)
void BKE_shrinkwrap_free_tree(struct ShrinkwrapTreeData *data)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
bool equals_m4m4(const float mat1[4][4], const float mat2[4][4])
void loc_eul_size_to_mat4(float R[4][4], const float loc[3], const float eul[3], const float size[3])
MINLINE bool is_zero_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
MINLINE bool is_one_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
bool BLI_uniquename(struct ListBase *list, void *vlink, const char *defname, char delim, int name_offset, size_t name_len)
#define BLO_read_data_address(reader, ptr_p)
void BLO_write_struct_by_name(BlendWriter *writer, const char *struct_name, const void *data_ptr)
#define BLO_write_struct(writer, struct_name, data_ptr)
void BLO_read_list(BlendDataReader *reader, struct ListBase *list)
#define BLO_write_struct_array(writer, struct_name, array_size, data_ptr)
#define CLOG_STR_ERROR(clg_ref, str)
struct Depsgraph Depsgraph
bool DEG_is_active(const struct Depsgraph *depsgraph)
void DEG_debug_print_eval(struct Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address)
float DEG_get_ctime(const Depsgraph *graph)
eEvaluationMode DEG_get_mode(const Depsgraph *graph)
struct ID * DEG_get_original_id(struct ID *id)
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
#define ID_IS_LINKED(_id)
@ LIB_TAG_COPIED_ON_WRITE_EVAL_RESULT
@ LIB_TAG_COPIED_ON_WRITE
#define ID_IS_OVERRIDE_LIBRARY(_id)
@ eGpencilModifierMode_Render
@ eGpencilModifierMode_Editmode
@ eGpencilModifierMode_Virtual
@ eGpencilModifierMode_Realtime
struct GpencilModifierData GpencilModifierData
@ eGpencilModifierFlag_OverrideLibrary_Local
@ eGpencilModifierType_Dash
@ eGpencilModifierType_Noise
@ eGpencilModifierType_Color
@ eGpencilModifierType_Lattice
@ eGpencilModifierType_Opacity
@ eGpencilModifierType_Hook
@ eGpencilModifierType_Shrinkwrap
@ eGpencilModifierType_Armature
@ eGpencilModifierType_Lineart
@ eGpencilModifierType_Smooth
@ eGpencilModifierType_Tint
@ NUM_GREASEPENCIL_MODIFIER_TYPES
@ eGpencilModifierType_Thick
@ eGpencilModifierType_Offset
#define GPENCIL_MULTIEDIT_SESSIONS_ON(gpd)
#define GPENCIL_CURVE_EDIT_SESSIONS_ON(gpd)
#define GPENCIL_ANY_EDIT_MODE(gpd)
Object is a sort of wrapper for general info.
@ UI_PANEL_DATA_EXPAND_ROOT
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[])
static VirtualModifierData virtualModifierCommonData
const Depsgraph * depsgraph
bool BKE_gpencil_has_geometry_modifiers(Object *ob)
bool BKE_gpencil_has_transform_modifiers(Object *ob)
void BKE_gpencil_modifier_panel_expand(GpencilModifierData *md)
void BKE_gpencil_modifiers_calc(Depsgraph *depsgraph, Scene *scene, Object *ob)
void BKE_gpencil_modifiers_foreach_ID_link(Object *ob, GreasePencilIDWalkFunc walk, void *userData)
GpencilModifierData * BKE_gpencil_modifiers_get_virtual_modifierlist(const Object *ob, GpencilVirtualModifierData *UNUSED(virtualModifierData))
GpencilModifierData * BKE_gpencil_modifiers_findby_type(Object *ob, GpencilModifierType type)
void BKE_gpencil_modifier_blend_write(BlendWriter *writer, ListBase *modbase)
static int gpencil_remap_time_get(Depsgraph *depsgraph, Scene *scene, Object *ob, bGPDlayer *gpl)
GpencilModifierData * BKE_gpencil_modifier_new(int type)
static void copy_frame_to_eval_cb(bGPDlayer *gpl, bGPDframe *gpf, bGPDstroke *UNUSED(gps), void *UNUSED(thunk))
void BKE_gpencil_frame_active_set(Depsgraph *depsgraph, bGPdata *gpd)
void BKE_gpencil_modifier_free_ex(GpencilModifierData *md, const int flag)
static bGPdata * gpencil_copy_structure_for_eval(bGPdata *gpd)
static void copy_frame_to_eval_ex(bGPDframe *gpf_orig, bGPDframe *gpf_eval)
void BKE_gpencil_modifierType_panel_id(GpencilModifierType type, char *r_idname)
void BKE_gpencil_modifier_blend_read_lib(BlendLibReader *reader, Object *ob)
static void modifier_free_data_id_us_cb(void *UNUSED(userData), Object *UNUSED(ob), ID **idpoin, int cb_flag)
void BKE_gpencil_modifier_init(void)
void BKE_gpencil_cache_data_init(Depsgraph *depsgraph, Object *ob)
static void gpencil_modifier_copy_data_id_us_cb(void *UNUSED(userData), Object *UNUSED(ob), ID **idpoin, int cb_flag)
bool BKE_gpencil_modifier_is_nonlocal_in_liboverride(const Object *ob, const GpencilModifierData *gmd)
int BKE_gpencil_time_modifier_cfra(Depsgraph *depsgraph, Scene *scene, Object *ob, bGPDlayer *gpl, const int cfra, const bool is_render)
bool BKE_gpencil_modifier_depends_ontime(GpencilModifierData *md)
void BKE_gpencil_modifier_set_error(GpencilModifierData *md, const char *format,...)
bool BKE_gpencil_modifier_unique_name(ListBase *modifiers, GpencilModifierData *gmd)
static GpencilModifierTypeInfo * modifier_gpencil_types[NUM_GREASEPENCIL_MODIFIER_TYPES]
void BKE_gpencil_cache_data_clear(Object *ob)
static void gpencil_copy_visible_frames_to_eval(Depsgraph *depsgraph, Scene *scene, Object *ob)
bGPDframe * BKE_gpencil_frame_retime_get(Depsgraph *depsgraph, Scene *scene, Object *ob, bGPDlayer *gpl)
void BKE_gpencil_modifiers_foreach_tex_link(Object *ob, GreasePencilTexWalkFunc walk, void *userData)
void BKE_gpencil_set_lineart_modifier_limits(GpencilModifierData *md, const GpencilLineartLimitInfo *info, const bool is_first_lineart)
void BKE_gpencil_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb)
GpencilLineartLimitInfo BKE_gpencil_get_lineart_modifier_limits(const Object *ob)
bool BKE_gpencil_has_time_modifiers(Object *ob)
void BKE_gpencil_prepare_eval_data(Depsgraph *depsgraph, Scene *scene, Object *ob)
GpencilModifierData * BKE_gpencil_modifiers_findby_name(Object *ob, const char *name)
void BKE_gpencil_modifier_copydata_ex(GpencilModifierData *md, GpencilModifierData *target, const int flag)
void BKE_gpencil_modifier_copydata(GpencilModifierData *md, GpencilModifierData *target)
static void gpencil_assign_object_eval(Object *object)
void BKE_gpencil_modifier_free(GpencilModifierData *md)
const GpencilModifierTypeInfo * BKE_gpencil_modifier_get_info(GpencilModifierType type)
void BKE_gpencil_modifier_copydata_generic(const GpencilModifierData *md_src, GpencilModifierData *md_dst)
bool BKE_gpencil_is_first_lineart_in_stack(const Object *ob, const GpencilModifierData *md)
ccl_global float * buffer
void MOD_lineart_clear_cache(struct LineartCache **lc)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
struct CurveMapping * curve_intensity
DashGpencilModifierSegment * segments
struct DashGpencilModifierData * dmd
char silhouette_selection
struct GpencilModifierData * next
void(* generateStrokes)(struct GpencilModifierData *md, struct Depsgraph *depsgraph, struct Object *ob)
GpencilModifierTypeFlag flags
void(* initData)(struct GpencilModifierData *md)
void(* copyData)(const struct GpencilModifierData *md, struct GpencilModifierData *target)
void(* freeData)(struct GpencilModifierData *md)
bool(* dependsOnTime)(struct GpencilModifierData *md)
void(* foreachIDLink)(struct GpencilModifierData *md, struct Object *ob, GreasePencilIDWalkFunc walk, void *userData)
void(* deformStroke)(struct GpencilModifierData *md, struct Depsgraph *depsgraph, struct Object *ob, struct bGPDlayer *gpl, struct bGPDframe *gpf, struct bGPDstroke *gps)
void(* foreachTexLink)(struct GpencilModifierData *md, struct Object *ob, GreasePencilTexWalkFunc walk, void *userData)
int(* remapTime)(struct GpencilModifierData *md, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct bGPDlayer *gpl, int cfra)
struct CurveMapping * curfalloff
struct LatticeDeformData * cache_data
char shadow_use_silhouette_override
short edge_types_override
char shadow_selection_override
unsigned char shadow_selection
char level_start_override
unsigned char silhouette_selection
struct CurveMapping * curve_intensity
struct bGPdata * gpd_eval
ListBase greasepencil_modifiers
struct CurveMapping * curve_intensity
struct ShrinkwrapTreeData * cache_data
struct CurveMapping * curve_intensity
struct CurveMapping * curve_thickness
struct ColorBand * colorband
struct CurveMapping * curve_intensity
struct bGPDframe * gpf_orig
bGPDframe_Runtime runtime
struct bGPDlayer * gpl_orig
bGPDlayer_Runtime runtime
struct LineartCache * lineart_cache
ListBase vertex_group_names
ccl_device_inline int mod(int x, int m)