Blender V4.3
BKE_gpencil_legacy.h File Reference

Go to the source code of this file.

Macros

#define GPENCIL_SIMPLIFY(scene)    ((scene->r.mode & R_SIMPLIFY) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_ENABLE))
 
#define GPENCIL_SIMPLIFY_ONPLAY(playing)
 
#define GPENCIL_SIMPLIFY_FILL(scene, playing)
 
#define GPENCIL_SIMPLIFY_FX(scene, playing)
 
#define GPENCIL_SIMPLIFY_TINT(scene)    (GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_TINT))
 
#define GPENCIL_SIMPLIFY_AA(scene)    (GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_AA))
 
#define GPENCIL_USE_VERTEX_COLOR(toolsettings)    (((toolsettings)->gp_paint->mode == GPPAINT_FLAG_USE_VERTEXCOLOR))
 
#define GPENCIL_ALPHA_OPACITY_THRESH   0.001f
 
#define GPENCIL_STRENGTH_MIN   0.003f
 

Typedefs

typedef enum eGP_GetFrame_Mode eGP_GetFrame_Mode
 
typedef void(* gpIterCb) (struct bGPDlayer *layer, struct bGPDframe *frame, struct bGPDstroke *stroke, void *thunk)
 

Enumerations

enum  eGP_GetFrame_Mode { GP_GETFRAME_USE_PREV = 0 , GP_GETFRAME_ADD_NEW = 1 , GP_GETFRAME_ADD_COPY = 2 }
 

Functions

void BKE_gpencil_free_point_weights (struct MDeformVert *dvert)
 
void BKE_gpencil_free_stroke_weights (struct bGPDstroke *gps)
 
void BKE_gpencil_free_stroke_editcurve (struct bGPDstroke *gps)
 
void BKE_gpencil_free_stroke (struct bGPDstroke *gps)
 
bool BKE_gpencil_free_strokes (struct bGPDframe *gpf)
 
void BKE_gpencil_free_frames (struct bGPDlayer *gpl)
 
void BKE_gpencil_free_layers (struct ListBase *list)
 
void BKE_gpencil_free_legacy_palette_data (struct ListBase *list)
 
void BKE_gpencil_free_data (struct bGPdata *gpd, bool free_all)
 
void BKE_gpencil_free_layer_masks (struct bGPDlayer *gpl)
 
void BKE_gpencil_tag (struct bGPdata *gpd)
 
void BKE_gpencil_batch_cache_dirty_tag (struct bGPdata *gpd)
 
void BKE_gpencil_batch_cache_free (struct bGPdata *gpd)
 
struct bGPDframeBKE_gpencil_frame_addnew (struct bGPDlayer *gpl, int cframe)
 
struct bGPDframeBKE_gpencil_frame_addcopy (struct bGPDlayer *gpl, int cframe)
 
struct bGPDlayerBKE_gpencil_layer_addnew (struct bGPdata *gpd, const char *name, bool setactive, bool add_to_header)
 
struct bGPdataBKE_gpencil_data_addnew (struct Main *bmain, const char name[])
 
struct bGPDframeBKE_gpencil_frame_duplicate (const struct bGPDframe *gpf_src, bool dup_strokes)
 
struct bGPDlayerBKE_gpencil_layer_duplicate (const struct bGPDlayer *gpl_src, bool dup_frames, bool dup_strokes)
 
struct bGPDstrokeBKE_gpencil_stroke_duplicate (struct bGPDstroke *gps_src, bool dup_points, bool dup_curve)
 
struct bGPdataBKE_gpencil_data_duplicate (struct Main *bmain, const struct bGPdata *gpd, bool internal_copy)
 
struct bGPDstrokeBKE_gpencil_stroke_new (int mat_idx, int totpoints, short thickness)
 
struct bGPDstrokeBKE_gpencil_stroke_add (struct bGPDframe *gpf, int mat_idx, int totpoints, short thickness, bool insert_at_head)
 
struct bGPDcurveBKE_gpencil_stroke_editcurve_new (int tot_curve_points)
 
bool BKE_gpencil_layer_is_editable (const struct bGPDlayer *gpl)
 
struct bGPDframeBKE_gpencil_layer_frame_get (struct bGPDlayer *gpl, int cframe, eGP_GetFrame_Mode addnew)
 
struct bGPDframeBKE_gpencil_layer_frame_find (struct bGPDlayer *gpl, int cframe)
 
bool BKE_gpencil_layer_frame_delete (struct bGPDlayer *gpl, struct bGPDframe *gpf)
 
struct bGPDlayerBKE_gpencil_layer_named_get (struct bGPdata *gpd, const char *name)
 
struct bGPDlayerBKE_gpencil_layer_active_get (struct bGPdata *gpd)
 
void BKE_gpencil_layer_active_set (struct bGPdata *gpd, struct bGPDlayer *active)
 
void BKE_gpencil_layer_delete (struct bGPdata *gpd, struct bGPDlayer *gpl)
 
void BKE_gpencil_layer_autolock_set (struct bGPdata *gpd, bool unlock)
 
void BKE_gpencil_layer_mask_remove (struct bGPDlayer *gpl, struct bGPDlayer_Mask *mask)
 
void BKE_gpencil_layer_mask_remove_ref (struct bGPdata *gpd, const char *name)
 
void BKE_gpencil_layer_mask_sort (struct bGPdata *gpd, struct bGPDlayer *gpl)
 
void BKE_gpencil_layer_mask_sort_all (struct bGPdata *gpd)
 
void BKE_gpencil_layer_mask_copy (const struct bGPDlayer *gpl_src, struct bGPDlayer *gpl_dst)
 
void BKE_gpencil_layer_mask_cleanup (struct bGPdata *gpd, struct bGPDlayer *gpl)
 
void BKE_gpencil_layer_frames_sort (struct bGPDlayer *gpl, bool *r_has_duplicate_frames)
 
void BKE_gpencil_brush_material_set (struct Brush *brush, struct Material *material)
 
void BKE_gpencil_stroke_weights_duplicate (struct bGPDstroke *gps_src, struct bGPDstroke *gps_dst)
 
void BKE_gpencil_frame_range_selected (struct bGPDlayer *gpl, int *r_initframe, int *r_endframe)
 
float BKE_gpencil_multiframe_falloff_calc (struct bGPDframe *gpf, int actnum, int f_init, int f_end, struct CurveMapping *cur_falloff)
 
void BKE_gpencil_palette_ensure (struct Main *bmain, struct Scene *scene)
 
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)
 
void BKE_gpencil_layer_original_pointers_update (const struct bGPDlayer *gpl_orig, const struct bGPDlayer *gpl_eval)
 
void BKE_gpencil_update_orig_pointers (const struct Object *ob_orig, const struct Object *ob_eval)
 
void BKE_gpencil_data_update_orig_pointers (const struct bGPdata *gpd_orig, const struct bGPdata *gpd_eval)
 
void BKE_gpencil_layer_transform_matrix_get (const struct Depsgraph *depsgraph, struct Object *obact, struct bGPDlayer *gpl, float diff_mat[4][4])
 
void BKE_gpencil_update_layer_transforms (const struct Depsgraph *depsgraph, struct Object *ob)
 
int BKE_gpencil_material_find_index_by_name_prefix (struct Object *ob, const char *name_prefix)
 
void BKE_gpencil_blend_read_data (struct BlendDataReader *reader, struct bGPdata *gpd)
 

Variables

void(* BKE_gpencil_batch_cache_dirty_tag_cb )(struct bGPdata *gpd)
 
void(* BKE_gpencil_batch_cache_free_cb )(struct bGPdata *gpd)
 

Macro Definition Documentation

◆ GPENCIL_ALPHA_OPACITY_THRESH

#define GPENCIL_ALPHA_OPACITY_THRESH   0.001f

Definition at line 178 of file BKE_gpencil_legacy.h.

◆ GPENCIL_SIMPLIFY

#define GPENCIL_SIMPLIFY ( scene)     ((scene->r.mode & R_SIMPLIFY) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_ENABLE))

Definition at line 37 of file BKE_gpencil_legacy.h.

◆ GPENCIL_SIMPLIFY_AA

#define GPENCIL_SIMPLIFY_AA ( scene)     (GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_AA))

Definition at line 50 of file BKE_gpencil_legacy.h.

Referenced by GPENCIL_cache_init().

◆ GPENCIL_SIMPLIFY_FILL

#define GPENCIL_SIMPLIFY_FILL ( scene,
playing )
Value:
((GPENCIL_SIMPLIFY_ONPLAY(playing) && GPENCIL_SIMPLIFY(scene) && \
(scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_FILL)))
#define GPENCIL_SIMPLIFY(scene)
#define GPENCIL_SIMPLIFY_ONPLAY(playing)
@ SIMPLIFY_GPENCIL_FILL

Definition at line 42 of file BKE_gpencil_legacy.h.

Referenced by GPENCIL_cache_init().

◆ GPENCIL_SIMPLIFY_FX

#define GPENCIL_SIMPLIFY_FX ( scene,
playing )
Value:
((GPENCIL_SIMPLIFY_ONPLAY(playing) && GPENCIL_SIMPLIFY(scene) && \
(scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_FX)))
@ SIMPLIFY_GPENCIL_FX

Definition at line 45 of file BKE_gpencil_legacy.h.

Referenced by GPENCIL_cache_init().

◆ GPENCIL_SIMPLIFY_ONPLAY

#define GPENCIL_SIMPLIFY_ONPLAY ( playing)
Value:
(((playing == true) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_ON_PLAY)) || \
((scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_ON_PLAY) == 0))
@ SIMPLIFY_GPENCIL_ON_PLAY

Definition at line 39 of file BKE_gpencil_legacy.h.

◆ GPENCIL_SIMPLIFY_TINT

#define GPENCIL_SIMPLIFY_TINT ( scene)     (GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_TINT))

◆ GPENCIL_STRENGTH_MIN

#define GPENCIL_STRENGTH_MIN   0.003f

Definition at line 179 of file BKE_gpencil_legacy.h.

Referenced by annotation_stroke_newfrombuffer().

◆ GPENCIL_USE_VERTEX_COLOR

#define GPENCIL_USE_VERTEX_COLOR ( toolsettings)     (((toolsettings)->gp_paint->mode == GPPAINT_FLAG_USE_VERTEXCOLOR))

Definition at line 54 of file BKE_gpencil_legacy.h.

Typedef Documentation

◆ eGP_GetFrame_Mode

◆ gpIterCb

typedef void(* gpIterCb) (struct bGPDlayer *layer, struct bGPDframe *frame, struct bGPDstroke *stroke, void *thunk)

Frame & stroke are NULL if it is a layer callback.

Definition at line 346 of file BKE_gpencil_legacy.h.

Enumeration Type Documentation

◆ eGP_GetFrame_Mode

Enumerator
GP_GETFRAME_USE_PREV 
GP_GETFRAME_ADD_NEW 
GP_GETFRAME_ADD_COPY 

Definition at line 191 of file BKE_gpencil_legacy.h.

Function Documentation

◆ BKE_gpencil_batch_cache_dirty_tag()

void BKE_gpencil_batch_cache_dirty_tag ( struct bGPdata * gpd)

◆ BKE_gpencil_batch_cache_free()

void BKE_gpencil_batch_cache_free ( struct bGPdata * gpd)

Definition at line 313 of file gpencil_legacy.cc.

References BKE_gpencil_batch_cache_free_cb.

Referenced by BKE_gpencil_free_data().

◆ BKE_gpencil_blend_read_data()

◆ BKE_gpencil_brush_material_set()

void BKE_gpencil_brush_material_set ( struct Brush * brush,
struct Material * material )

Set grease pencil brush material.

Parameters
brushBrush
materialMaterial

Definition at line 1361 of file gpencil_legacy.cc.

References BKE_brush_tag_unsaved_changes(), BLI_assert, Brush::gpencil_settings, Material::id, id_us_min(), id_us_plus(), and BrushGpencilSettings::material.

◆ BKE_gpencil_data_addnew()

◆ BKE_gpencil_data_duplicate()

struct bGPdata * BKE_gpencil_data_duplicate ( struct Main * bmain,
const struct bGPdata * gpd,
bool internal_copy )

Make a copy of a given gpencil data-block.

XXX: Should this be deprecated?

Referenced by gpencil_undo_push().

◆ BKE_gpencil_data_update_orig_pointers()

void BKE_gpencil_data_update_orig_pointers ( const struct bGPdata * gpd_orig,
const struct bGPdata * gpd_eval )

Update pointers of eval data to original data to keep references.

Parameters
gpd_origOriginal grease pencil data
gpd_evalEvaluated grease pencil data

◆ BKE_gpencil_frame_addcopy()

struct bGPDframe * BKE_gpencil_frame_addcopy ( struct bGPDlayer * gpl,
int cframe )

Add a copy of the active gp-frame to the given layer.

Parameters
gplGrease pencil layer
cframeFrame number
Returns
Pointer to new frame

Definition at line 541 of file gpencil_legacy.cc.

References bGPDlayer::actframe, BKE_gpencil_frame_addnew(), BKE_gpencil_frame_duplicate(), BKE_gpencil_free_strokes(), BLI_addtail(), BLI_insertlinkbefore(), bGPDframe::framenum, bGPDlayer::frames, LISTBASE_FOREACH, and MEM_freeN().

Referenced by BKE_gpencil_layer_frame_get(), createTransGPencil_curves(), and createTransGPencil_strokes().

◆ BKE_gpencil_frame_addnew()

struct bGPDframe * BKE_gpencil_frame_addnew ( struct bGPDlayer * gpl,
int cframe )

Add a new gp-frame to the given layer.

Parameters
gplGrease pencil layer
cframeFrame number
Returns
Pointer to new frame

Definition at line 488 of file gpencil_legacy.cc.

References BLI_addtail(), BLI_assert, BLI_insertlinkbefore(), CLOG_ERROR, ListBase::first, bGPDframe::framenum, bGPDlayer::frames, LOG, MEM_callocN, MEM_freeN(), bGPDframe::next, and state.

Referenced by BKE_gpencil_frame_addcopy(), and BKE_gpencil_layer_frame_get().

◆ BKE_gpencil_frame_duplicate()

struct bGPDframe * BKE_gpencil_frame_duplicate ( const struct bGPDframe * gpf_src,
bool dup_strokes )

Make a copy of a given gpencil frame.

Parameters
gpf_srcSource grease pencil frame
Returns
Pointer to new frame

Referenced by do_versions_after_linking_290(), ED_gpencil_anim_copybuf_copy(), and ED_gpencil_layer_frames_duplicate().

◆ BKE_gpencil_frame_original_pointers_update()

void BKE_gpencil_frame_original_pointers_update ( const struct bGPDframe * gpf_orig,
const struct bGPDframe * gpf_eval )

Update original pointers in evaluated frame.

Parameters
gpf_origOriginal grease-pencil frame.
gpf_evalEvaluated grease pencil frame.

◆ BKE_gpencil_frame_range_selected()

void BKE_gpencil_frame_range_selected ( struct bGPDlayer * gpl,
int * r_initframe,
int * r_endframe )

Get range of selected frames in layer. Always the active frame is considered as selected, so if no more selected the range will be equal to the current active frame.

Parameters
gplLayer.
r_initframeNumber of first selected frame.
r_endframeNumber of last selected frame.

Definition at line 1377 of file gpencil_legacy.cc.

References bGPDlayer::actframe, bGPDframe::framenum, bGPDlayer::frames, GP_FRAME_SELECT, and LISTBASE_FOREACH.

Referenced by createTransGPencil_curves(), and createTransGPencil_strokes().

◆ BKE_gpencil_free_data()

void BKE_gpencil_free_data ( struct bGPdata * gpd,
bool free_all )

◆ BKE_gpencil_free_frames()

void BKE_gpencil_free_frames ( struct bGPDlayer * gpl)

◆ BKE_gpencil_free_layer_masks()

void BKE_gpencil_free_layer_masks ( struct bGPDlayer * gpl)

◆ BKE_gpencil_free_layers()

void BKE_gpencil_free_layers ( struct ListBase * list)

Free all of the gp-layers for a viewport (list should be &gpd->layers or so).

Definition at line 428 of file gpencil_legacy.cc.

References BKE_gpencil_free_frames(), BKE_gpencil_free_layer_masks(), BLI_freelinkN(), and bGPDlayer::next.

Referenced by BKE_gpencil_free_data(), ED_gpencil_anim_copybuf_free(), and ED_undo_gpencil_step().

◆ BKE_gpencil_free_legacy_palette_data()

void BKE_gpencil_free_legacy_palette_data ( struct ListBase * list)

Free all of the palettes & colors (list should be &gpd->palettes or so).

Definition at line 451 of file gpencil_legacy.cc.

References BLI_freelistN(), BLI_listbase_clear(), LISTBASE_FOREACH_MUTABLE, and MEM_freeN().

Referenced by BKE_gpencil_free_data().

◆ BKE_gpencil_free_point_weights()

void BKE_gpencil_free_point_weights ( struct MDeformVert * dvert)

Definition at line 323 of file gpencil_legacy.cc.

References MDeformVert::dw, and MEM_SAFE_FREE.

Referenced by BKE_gpencil_free_stroke_weights().

◆ BKE_gpencil_free_stroke()

◆ BKE_gpencil_free_stroke_editcurve()

void BKE_gpencil_free_stroke_editcurve ( struct bGPDstroke * gps)

Definition at line 347 of file gpencil_legacy.cc.

References bGPDcurve::curve_points, bGPDstroke::editcurve, and MEM_freeN().

Referenced by BKE_gpencil_free_stroke().

◆ BKE_gpencil_free_stroke_weights()

void BKE_gpencil_free_stroke_weights ( struct bGPDstroke * gps)

◆ BKE_gpencil_free_strokes()

bool BKE_gpencil_free_strokes ( struct bGPDframe * gpf)

◆ BKE_gpencil_layer_active_get()

◆ BKE_gpencil_layer_active_set()

void BKE_gpencil_layer_active_set ( struct bGPdata * gpd,
struct bGPDlayer * active )

◆ BKE_gpencil_layer_addnew()

◆ BKE_gpencil_layer_autolock_set()

void BKE_gpencil_layer_autolock_set ( struct bGPdata * gpd,
bool unlock )

Set locked layers for autolock mode.

Parameters
gpdGrease pencil data-block
unlockUnlock flag

Definition at line 1309 of file gpencil_legacy.cc.

References BKE_gpencil_layer_active_get(), BLI_assert, bGPdata::flag, GP_DATA_AUTOLOCK_LAYERS, GP_LAYER_LOCKED, bGPdata::layers, and LISTBASE_FOREACH.

Referenced by click_select_channel_gplayer(), and ED_gpencil_set_active_channel().

◆ BKE_gpencil_layer_delete()

void BKE_gpencil_layer_delete ( struct bGPdata * gpd,
struct bGPDlayer * gpl )

◆ BKE_gpencil_layer_duplicate()

struct bGPDlayer * BKE_gpencil_layer_duplicate ( const struct bGPDlayer * gpl_src,
bool dup_frames,
bool dup_strokes )

Make a copy of a given gpencil layer.

Parameters
gpl_srcSource grease pencil layer
Returns
Pointer to new layer

Referenced by ED_undo_gpencil_step().

◆ BKE_gpencil_layer_frame_delete()

bool BKE_gpencil_layer_frame_delete ( struct bGPDlayer * gpl,
struct bGPDframe * gpf )

Delete the given frame from a layer.

Parameters
gplGrease pencil layer
gpfGrease pencil frame
Returns
True if delete was done

Definition at line 1131 of file gpencil_legacy.cc.

References bGPDlayer::actframe, BKE_gpencil_free_strokes(), BLI_freelinkN(), ELEM, bGPDlayer::frames, and bGPDframe::prev.

Referenced by ED_gpencil_anim_copybuf_paste(), ED_gpencil_layer_frames_delete(), gpencil_actframe_delete_exec(), and posttrans_gpd_clean().

◆ BKE_gpencil_layer_frame_find()

struct bGPDframe * BKE_gpencil_layer_frame_find ( struct bGPDlayer * gpl,
int cframe )

Look up the gp-frame on the requested frame number, but don't add a new one.

Parameters
gplGrease pencil layer
cframeFrame number
Returns
Pointer to frame

Definition at line 954 of file gpencil_legacy.cc.

References bGPDlayer::frames, and LISTBASE_FOREACH_BACKWARD.

Referenced by ED_gpencil_select_frame().

◆ BKE_gpencil_layer_frame_get()

struct bGPDframe * BKE_gpencil_layer_frame_get ( struct bGPDlayer * gpl,
int cframe,
eGP_GetFrame_Mode addnew )

Get the appropriate gp-frame from a given layer

  • this sets the layer's actframe var (if allowed to)
  • extension beyond range (if first gp-frame is after all frame in interest and cannot add)
Parameters
gplGrease pencil layer
cframeFrame number
addnewAdd option
Returns
Pointer to new frame

Definition at line 968 of file gpencil_legacy.cc.

References abs(), bGPDlayer::actframe, BKE_gpencil_frame_addcopy(), BKE_gpencil_frame_addnew(), CLOG_STR_ERROR, ListBase::first, bGPDframe::flag, bGPDlayer::flag, bGPDframe::framenum, bGPDlayer::frames, GP_FRAME_PAINT, GP_GETFRAME_ADD_COPY, GP_LAYER_FRAMELOCK, ListBase::last, LOG, bGPDframe::next, and bGPDframe::prev.

Referenced by annotation_draw_data_layers(), annotation_paint_initstroke(), ED_gpencil_anim_copybuf_paste(), gpencil_actframe_delete_exec(), gpencil_layer_add_exec(), insert_gpencil_key(), view3d_ruler_from_gpencil(), and view3d_ruler_to_gpencil().

◆ BKE_gpencil_layer_frames_sort()

void BKE_gpencil_layer_frames_sort ( struct bGPDlayer * gpl,
bool * r_has_duplicate_frames )

Sort grease pencil frames.

Parameters
gplGrease pencil layer
r_has_duplicate_framesDuplicated frames flag

Definition at line 1264 of file gpencil_legacy.cc.

References BLI_listbase_sort_r(), bGPDlayer::frames, and gpencil_cb_cmp_frame().

Referenced by ANIM_animdata_update(), and posttrans_gpd_clean().

◆ BKE_gpencil_layer_is_editable()

bool BKE_gpencil_layer_is_editable ( const struct bGPDlayer * gpl)

Check if the given layer is able to be edited or not.

Parameters
gplGrease pencil layer
Returns
True if layer is editable

Referenced by annotation_paint_initstroke(), createTransGPencil_curves(), and createTransGPencil_strokes().

◆ BKE_gpencil_layer_mask_cleanup()

void BKE_gpencil_layer_mask_cleanup ( struct bGPdata * gpd,
struct bGPDlayer * gpl )

◆ BKE_gpencil_layer_mask_copy()

void BKE_gpencil_layer_mask_copy ( const struct bGPDlayer * gpl_src,
struct bGPDlayer * gpl_dst )

Make a copy of a given gpencil mask layers.

◆ BKE_gpencil_layer_mask_remove()

void BKE_gpencil_layer_mask_remove ( struct bGPDlayer * gpl,
struct bGPDlayer_Mask * mask )

Remove grease pencil mask layer.

Parameters
gplGrease pencil layer
maskGrease pencil mask layer

Definition at line 1162 of file gpencil_legacy.cc.

References bGPDlayer::act_mask, BLI_freelinkN(), CLAMP_MIN, and bGPDlayer::mask_layers.

Referenced by BKE_gpencil_layer_mask_cleanup(), and BKE_gpencil_layer_mask_remove_ref().

◆ BKE_gpencil_layer_mask_remove_ref()

void BKE_gpencil_layer_mask_remove_ref ( struct bGPdata * gpd,
const char * name )

Remove any reference to mask layer.

Parameters
gpdGrease pencil data-block
nameName of the mask layer

Definition at line 1169 of file gpencil_legacy.cc.

References BKE_gpencil_layer_mask_remove(), bGPdata::layers, LISTBASE_FOREACH, mask(), bGPDlayer_Mask::next, and STREQ.

Referenced by BKE_gpencil_layer_delete().

◆ BKE_gpencil_layer_mask_sort()

void BKE_gpencil_layer_mask_sort ( struct bGPdata * gpd,
struct bGPDlayer * gpl )

Sort grease pencil mask layers.

Parameters
gpdGrease pencil data-block
gplGrease pencil layer

Definition at line 1202 of file gpencil_legacy.cc.

References BKE_gpencil_layer_named_get(), BLI_findindex(), BLI_listbase_sort(), gpencil_cb_sort_masks(), bGPdata::layers, LISTBASE_FOREACH, and bGPDlayer::mask_layers.

Referenced by BKE_gpencil_layer_mask_sort_all().

◆ BKE_gpencil_layer_mask_sort_all()

void BKE_gpencil_layer_mask_sort_all ( struct bGPdata * gpd)

Sort all grease pencil mask layer.

Parameters
gpdGrease pencil data-block

Definition at line 1217 of file gpencil_legacy.cc.

References BKE_gpencil_layer_mask_sort(), bGPdata::layers, and LISTBASE_FOREACH.

Referenced by gpencil_layer_move_exec(), and gpencil_layer_remove_exec().

◆ BKE_gpencil_layer_named_get()

struct bGPDlayer * BKE_gpencil_layer_named_get ( struct bGPdata * gpd,
const char * name )

Get layer by name

Parameters
gpdGrease pencil data-block
nameLayer name
Returns
Pointer to layer

Definition at line 1154 of file gpencil_legacy.cc.

References BLI_findstring(), bGPdata::layers, and offsetof.

Referenced by BKE_gpencil_layer_mask_cleanup(), BKE_gpencil_layer_mask_sort(), and gpencil_layer_cache_add().

◆ BKE_gpencil_layer_original_pointers_update()

void BKE_gpencil_layer_original_pointers_update ( const struct bGPDlayer * gpl_orig,
const struct bGPDlayer * gpl_eval )

Update original pointers in evaluated layer.

Parameters
gpl_origOriginal grease-pencil layer.
gpl_evalEvaluated grease pencil layer.

◆ BKE_gpencil_layer_transform_matrix_get()

void BKE_gpencil_layer_transform_matrix_get ( const struct Depsgraph * depsgraph,
struct Object * obact,
struct bGPDlayer * gpl,
float diff_mat[4][4] )

Get parent matrix, including layer parenting.

Parameters
depsgraphDepsgraph
obactGrease pencil object
gplGrease pencil layer
diff_matResult parent matrix

Referenced by createTransGPencil_curves(), createTransGPencil_strokes(), and blender::ed::object::object_origin_set_exec().

◆ BKE_gpencil_material_find_index_by_name_prefix()

int BKE_gpencil_material_find_index_by_name_prefix ( struct Object * ob,
const char * name_prefix )

Find material by name prefix.

Parameters
obObject pointer
name_prefixPrefix name of the material
Returns
Index

Definition at line 1932 of file gpencil_legacy.cc.

References BKE_object_material_get(), Material::gp_style, Material::id, ID::name, STREQLEN, and Object::totcol.

◆ BKE_gpencil_multiframe_falloff_calc()

float BKE_gpencil_multiframe_falloff_calc ( struct bGPDframe * gpf,
int actnum,
int f_init,
int f_end,
struct CurveMapping * cur_falloff )

Get Falloff factor base on frame range

Parameters
gpfFrame.
actnumNumber of active frame in layer.
f_initNumber of first selected frame.
f_endNumber of last selected frame.
cur_falloffCurve with falloff factors.

Definition at line 1394 of file gpencil_legacy.cc.

References BKE_curvemapping_evaluateF(), float, and bGPDframe::framenum.

Referenced by createTransGPencil_curves(), and createTransGPencil_strokes().

◆ BKE_gpencil_palette_ensure()

◆ BKE_gpencil_stroke_add()

struct bGPDstroke * BKE_gpencil_stroke_add ( struct bGPDframe * gpf,
int mat_idx,
int totpoints,
short thickness,
bool insert_at_head )

Create a new stroke and add to frame.

Parameters
gpfGrease pencil frame
mat_idxMaterial index
totpointsTotal points
thicknessStroke thickness
insert_at_headAdd to the head of the strokes list
Returns
Pointer to new stroke

Definition at line 767 of file gpencil_legacy.cc.

References BKE_gpencil_stroke_new(), BLI_addhead(), BLI_addtail(), and bGPDframe::strokes.

◆ BKE_gpencil_stroke_duplicate()

struct bGPDstroke * BKE_gpencil_stroke_duplicate ( struct bGPDstroke * gps_src,
bool dup_points,
bool dup_curve )

Make a copy of a given grease-pencil stroke.

Parameters
gps_srcSource grease pencil strokes.
dup_pointsDuplicate points data.
dup_curveDuplicate curve data.
Returns
Pointer to new stroke.

Definition at line 808 of file gpencil_legacy.cc.

References BKE_gpencil_stroke_weights_duplicate(), bGPDstroke::dvert, bGPDstroke::editcurve, MEM_dupallocN, bGPDstroke::next, bGPDstroke::points, bGPDstroke::prev, and bGPDstroke::triangles.

Referenced by annotation_stroke_newfrombuffer(), BKE_gpencil_frame_duplicate(), BKE_gpencil_stroke_delete_tagged_points(), ED_gpencil_anim_copybuf_paste(), and gpencil_stroke_join_islands().

◆ BKE_gpencil_stroke_editcurve_new()

struct bGPDcurve * BKE_gpencil_stroke_editcurve_new ( int tot_curve_points)

◆ BKE_gpencil_stroke_new()

struct bGPDstroke * BKE_gpencil_stroke_new ( int mat_idx,
int totpoints,
short thickness )

Create a new stroke, with pre-allocated data buffers.

Parameters
mat_idxIndex of the material
totpointsTotal points
thicknessStroke thickness
Returns
Pointer to new stroke

Definition at line 730 of file gpencil_legacy.cc.

References bGPDstroke::aspect_ratio, copy_v2_fl(), bGPDstroke::dvert, bGPDstroke::editcurve, bGPDstroke::fill_opacity_fac, bGPDstroke::flag, GP_STROKE_3DSPACE, bGPDstroke::hardness, bGPDstroke::inittime, bGPDstroke::mat_nr, MEM_callocN, bGPDstroke::points, bGPDstroke::thickness, bGPDstroke::tot_triangles, bGPDstroke::totpoints, bGPDstroke::triangles, and bGPDstroke::uv_scale.

Referenced by BKE_gpencil_stroke_add().

◆ BKE_gpencil_stroke_weights_duplicate()

void BKE_gpencil_stroke_weights_duplicate ( struct bGPDstroke * gps_src,
struct bGPDstroke * gps_dst )

Make a copy of a given gpencil weights.

Parameters
gps_srcSource grease pencil stroke
gps_dstDestination grease pencil stroke

Definition at line 798 of file gpencil_legacy.cc.

References BKE_defvert_array_copy(), BLI_assert, bGPDstroke::dvert, and bGPDstroke::totpoints.

Referenced by BKE_gpencil_stroke_duplicate().

◆ BKE_gpencil_tag()

void BKE_gpencil_tag ( struct bGPdata * gpd)

Tag data-block for depsgraph update. Wrapper to avoid include Depsgraph tag functions in other modules.

Parameters
gpdGrease pencil data-block.

Definition at line 480 of file gpencil_legacy.cc.

References DEG_id_tag_update(), bGPdata::id, ID_RECALC_GEOMETRY, and ID_RECALC_TRANSFORM.

Referenced by insert_gpencil_key().

◆ BKE_gpencil_update_layer_transforms()

void BKE_gpencil_update_layer_transforms ( const struct Depsgraph * depsgraph,
struct Object * ob )

Update parent matrix and local transforms.

Parameters
depsgraphDepsgraph
obGrease pencil object

◆ BKE_gpencil_update_orig_pointers()

void BKE_gpencil_update_orig_pointers ( const struct Object * ob_orig,
const struct Object * ob_eval )

Update pointers of eval data to original data to keep references.

Parameters
ob_origOriginal grease pencil object
ob_evalEvaluated grease pencil object

◆ BKE_gpencil_visible_stroke_advanced_iter()

Variable Documentation

◆ BKE_gpencil_batch_cache_dirty_tag_cb

void(* BKE_gpencil_batch_cache_dirty_tag_cb) (struct bGPdata *gpd) ( struct bGPdata * gpd)
extern

Definition at line 302 of file gpencil_legacy.cc.

Referenced by BKE_gpencil_batch_cache_dirty_tag(), and DRW_engines_register().

◆ BKE_gpencil_batch_cache_free_cb

void(* BKE_gpencil_batch_cache_free_cb) (struct bGPdata *gpd) ( struct bGPdata * gpd)
extern

Definition at line 303 of file gpencil_legacy.cc.

Referenced by BKE_gpencil_batch_cache_free(), and DRW_engines_register().