Blender
V3.3
|
Go to the source code of this file.
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 } |
Variables | |
void(* | BKE_gpencil_batch_cache_dirty_tag_cb )(struct bGPdata *gpd) |
void(* | BKE_gpencil_batch_cache_free_cb )(struct bGPdata *gpd) |
#define GPENCIL_ALPHA_OPACITY_THRESH 0.001f |
Definition at line 323 of file BKE_gpencil.h.
#define GPENCIL_SIMPLIFY | ( | scene | ) | ((scene->r.mode & R_SIMPLIFY) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_ENABLE)) |
Definition at line 37 of file BKE_gpencil.h.
#define GPENCIL_SIMPLIFY_AA | ( | scene | ) | (GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_AA)) |
Definition at line 52 of file BKE_gpencil.h.
Definition at line 42 of file BKE_gpencil.h.
Definition at line 47 of file BKE_gpencil.h.
#define GPENCIL_SIMPLIFY_MODIF | ( | scene | ) | ((GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_MODIFIER))) |
Definition at line 45 of file BKE_gpencil.h.
#define GPENCIL_SIMPLIFY_ONPLAY | ( | playing | ) |
Definition at line 39 of file BKE_gpencil.h.
#define GPENCIL_SIMPLIFY_TINT | ( | scene | ) | (GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_TINT)) |
Definition at line 50 of file BKE_gpencil.h.
#define GPENCIL_STRENGTH_MIN 0.003f |
Definition at line 324 of file BKE_gpencil.h.
#define GPENCIL_TINT_VERTEX_COLOR_FILL | ( | brush | ) |
Definition at line 69 of file BKE_gpencil.h.
#define GPENCIL_TINT_VERTEX_COLOR_STROKE | ( | brush | ) |
Definition at line 66 of file BKE_gpencil.h.
#define GPENCIL_USE_VERTEX_COLOR | ( | toolsettings | ) | (((toolsettings)->gp_paint->mode == GPPAINT_FLAG_USE_VERTEXCOLOR)) |
Definition at line 56 of file BKE_gpencil.h.
#define GPENCIL_USE_VERTEX_COLOR_FILL | ( | toolsettings, | |
brush | |||
) |
Definition at line 62 of file BKE_gpencil.h.
#define GPENCIL_USE_VERTEX_COLOR_STROKE | ( | toolsettings, | |
brush | |||
) |
Definition at line 58 of file BKE_gpencil.h.
typedef enum eGP_GetFrame_Mode eGP_GetFrame_Mode |
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 654 of file BKE_gpencil.h.
enum eGP_GetFrame_Mode |
Enumerator | |
---|---|
GP_GETFRAME_USE_PREV | |
GP_GETFRAME_ADD_NEW | |
GP_GETFRAME_ADD_COPY |
Definition at line 336 of file BKE_gpencil.h.
Definition at line 335 of file gpencil.c.
References BKE_gpencil_batch_cache_dirty_tag_cb, DEG_id_tag_update(), bGPdata::id, and ID_RECALC_GEOMETRY.
Referenced by BKE_object_data_batch_cache_dirty_tag(), and gpencil_convert_old_files_exec().
Definition at line 343 of file gpencil.c.
References BKE_gpencil_batch_cache_free_cb.
Referenced by BKE_gpencil_free_data().
void BKE_gpencil_blend_read_data | ( | struct BlendDataReader * | reader, |
struct bGPdata * | gpd | ||
) |
Definition at line 183 of file gpencil.c.
References bGPdata::adt, BKE_animdata_blend_read_data(), BKE_defvert_blend_read(), BLO_read_data_address, BLO_read_list(), BLO_read_pointer_array(), bGPdata::flag, GP_DATA_STROKE_EDITMODE, GP_DATA_STROKE_PAINTMODE, GP_DATA_STROKE_SCULPTMODE, GP_DATA_STROKE_VERTEXMODE, GP_DATA_STROKE_WEIGHTMODE, ID_IS_LINKED, bGPdata::layers, LISTBASE_FOREACH, bGPdata::mat, NULL, bGPdata::runtime, bGPdata_Runtime::sbuffer, bGPdata_Runtime::sbuffer_size, bGPdata_Runtime::sbuffer_used, bGPdata_Runtime::tot_cp_points, bGPdata_Runtime::update_cache, and bGPdata::vertex_group_names.
Referenced by direct_link_area(), and greasepencil_blend_read_data().
Get grease pencil material from brush.
brush | Brush |
Definition at line 1675 of file gpencil.c.
References Brush::gpencil_settings, BrushGpencilSettings::material, and NULL.
Referenced by BKE_gpencil_object_material_ensure_from_brush(), and BKE_gpencil_object_material_from_brush_get().
Set grease pencil brush material.
Definition at line 1687 of file gpencil.c.
References BLI_assert, Brush::gpencil_settings, Material::id, id_us_min(), id_us_plus(), and BrushGpencilSettings::material.
Referenced by BKE_gpencil_brush_preset_set().
bool BKE_gpencil_can_avoid_full_copy_on_write | ( | const struct Depsgraph * | depsgraph, |
struct bGPdata * | gpd | ||
) |
Referenced by blender::deg::deg_update_copy_on_write_datablock().
void BKE_gpencil_curve_sync_selection | ( | struct bGPdata * | gpd, |
struct bGPDstroke * | gps | ||
) |
Definition at line 1120 of file gpencil.c.
References bGPDcurve_point::bezt, BEZT_ISSEL_ANY, BKE_gpencil_stroke_select_index_reset(), BKE_gpencil_stroke_select_index_set(), bGPDcurve::curve_points, bGPDstroke::editcurve, bGPDcurve_point::flag, bGPDcurve::flag, bGPDstroke::flag, GP_CURVE_SELECT, GP_SPOINT_SELECT, GP_STROKE_SELECT, NULL, and bGPDcurve::tot_curve_points.
Referenced by gpencil_do_curve_circle_sel(), gpencil_generic_curve_select(), gpencil_select_alternate_exec(), gpencil_select_exec(), and gpencil_select_random_exec().
Add a new grease pencil data-block.
bmain | Main pointer |
name | Name of the datablock |
Definition at line 705 of file gpencil.c.
References ARRAY_SET_ITEMS, BKE_libblock_alloc(), bGPgrid::color, bGPdata::curve_edit_corner_angle, bGPdata::curve_edit_resolution, bGPdata::curve_edit_threshold, bGPdata::flag, bGPdata::gcolor_next, bGPdata::gcolor_prev, GP_DATA_CURVE_ADAPTIVE_RESOLUTION, GP_DATA_DISPINFO, GP_DATA_EXPAND, GP_DATA_SHOW_ONIONSKINS, GP_DATA_VIEWALIGN, GP_DEFAULT_CURVE_EDIT_CORNER_ANGLE, GP_DEFAULT_CURVE_ERROR, GP_DEFAULT_CURVE_RESOLUTION, GP_DEFAULT_GRID_LINES, GP_DEFAULT_PIX_FACTOR, GP_ONION_FADE, GP_ONION_GHOST_NEXTCOL, GP_ONION_GHOST_PREVCOL, GP_ONION_MODE_RELATIVE, bGPdata::grid, bGPdata::gstep, bGPdata::gstep_next, ID_GD, bGPdata::line_color, bGPgrid::lines, bGPdata::onion_factor, bGPdata::onion_flag, bGPdata::onion_keytype, bGPdata::onion_mode, bGPdata::pixfactor, bGPgrid::scale, and bGPdata::zdepth_offset.
Referenced by annotation_session_initdata(), BKE_object_obdata_add_from_type(), gpencil_data_add_exec(), gpencil_layer_add_exec(), gpencil_session_initdata(), gpencil_stroke_separate_exec(), and view3d_ruler_to_gpencil().
Make a copy of a given gpencil data settings.
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().
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.
gpd_orig | Original grease pencil data |
gpd_eval | Evaluated grease pencil data |
Referenced by blender::deg::GPencilBackup::restore_to_gpencil().
void BKE_gpencil_dvert_ensure | ( | struct bGPDstroke * | gps | ) |
Ensure stroke has vertex group.
gps | Grease pencil stroke |
Definition at line 1891 of file gpencil.c.
References bGPDstroke::dvert, MEM_callocN, NULL, and bGPDstroke::totpoints.
Referenced by brush_draw_apply(), deformStroke(), ED_gpencil_vgroup_assign(), generate_geometry(), gpencil_add_verts_to_dgroups(), gpencil_deform_verts(), gpencil_primitive_interaction_end(), gpencil_stroke_from_buffer(), gpencil_stroke_newfrombuffer(), lineart_gpencil_generate(), and stroke_dash().
Delete grease pencil evaluated data
gpd_eval | Grease pencil data-block |
Definition at line 498 of file gpencil.c.
References BKE_gpencil_free_data(), BKE_libblock_free_data(), BLI_assert, bGPdata::id, MEM_freeN, and ID::py_instance.
Referenced by BKE_gpencil_prepare_eval_data(), and BKE_object_free_derived_caches().
Set current grease pencil active frame.
depsgraph | Current depsgraph |
gpd | Grease pencil data-block. |
Definition at line 306 of file gpencil_modifier.c.
References BKE_gpencil_layer_frame_get(), DEG_debug_print_eval(), DEG_get_ctime(), DEG_get_original_id(), DEG_is_active(), depsgraph, GP_GETFRAME_USE_PREV, bGPdata::id, bGPdata::layers, LISTBASE_FOREACH, and ID::name.
Referenced by blender::deg::DepsgraphNodeBuilder::build_object_data_geometry_datablock(), and generateStrokes().
Add a copy of the active gp-frame to the given layer.
gpl | Grease pencil layer |
cframe | Frame number |
Definition at line 567 of file gpencil.c.
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, MEM_freeN, and NULL.
Referenced by BKE_gpencil_layer_frame_get(), createTransGPencil_curves(), createTransGPencil_strokes(), gpencil_frame_duplicate_exec(), and gpencil_sculpt_brush_init_stroke().
Add a new gp-frame to the given layer.
gpl | Grease pencil layer |
cframe | Frame number |
Definition at line 514 of file gpencil.c.
References BLI_addtail(), BLI_assert, BLI_insertlinkbefore(), CLOG_ERROR, ListBase::first, bGPDframe::framenum, bGPDlayer::frames, LOG, MEM_callocN, MEM_freeN, NULL, and state.
Referenced by BKE_gpencil_frame_addcopy(), BKE_gpencil_layer_frame_get(), BKE_gpencil_stroke_copy_to_keyframes(), ED_gpencil_create_blank(), ED_gpencil_create_lineart(), ED_gpencil_create_monkey(), ED_gpencil_create_stroke(), gpencil_layer_duplicate_object_exec(), image_to_gpencil_exec(), and lineart_gpencil_clear_strokes_exec_common().
void BKE_gpencil_frame_copy_settings | ( | const struct bGPDframe * | gpf_src, |
struct bGPDframe * | gpf_dst | ||
) |
Make a copy of a given gpencil frame settings.
Make a copy of strokes between gpencil frames.
gpf_src | Source grease pencil frame |
gpf_dst | Destination grease pencil frame |
Definition at line 920 of file gpencil.c.
References BKE_gpencil_stroke_duplicate(), BLI_addtail(), BLI_listbase_clear(), LISTBASE_FOREACH, NULL, and bGPDframe::strokes.
Referenced by copy_frame_to_eval_ex().
Delete the last stroke of the given frame.
gpl | Grease pencil layer |
gpf | Grease pencil frame |
Definition at line 1169 of file gpencil.c.
References BKE_gpencil_free_stroke_weights(), BKE_gpencil_layer_frame_delete(), BKE_gpencil_layer_frame_get(), BLI_freelinkN(), BLI_listbase_is_empty(), bGPDstroke::dvert, ELEM, bGPDframe::framenum, GP_GETFRAME_USE_PREV, ListBase::last, MEM_freeN, NULL, bGPDstroke::points, bGPDframe::strokes, and bGPDstroke::triangles.
struct bGPDframe* BKE_gpencil_frame_duplicate | ( | const struct bGPDframe * | gpf_src, |
bool | dup_strokes | ||
) |
Make a copy of a given gpencil frame.
gpf_src | Source grease pencil frame |
Referenced by do_versions_after_linking_290(), ED_gpencil_anim_copybuf_copy(), ED_gpencil_layer_frames_duplicate(), gpencil_bake_grease_pencil_animation_exec(), gpencil_interpolate_seq_exec(), and gpencil_interpolate_set_points().
void BKE_gpencil_frame_original_pointers_update | ( | const struct bGPDframe * | gpf_orig, |
const struct bGPDframe * | gpf_eval | ||
) |
Update original pointers in evaluated frame.
gpf_orig | Original grease-pencil frame. |
gpf_eval | Evaluated grease pencil frame. |
Definition at line 2630 of file gpencil.c.
References ListBase::first, bGPDstroke_Runtime::gps_orig, bGPDspoint_Runtime::idx_orig, LISTBASE_FOREACH, bGPDstroke::next, NULL, bGPDstroke::points, bGPDspoint_Runtime::pt_orig, bGPDspoint::runtime, bGPDstroke::runtime, bGPDframe::strokes, and bGPDstroke::totpoints.
Referenced by BKE_gpencil_layer_original_pointers_update(), copy_frame_to_eval_ex(), and gpencil_update_on_write_frame_cb().
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.
gpl | Layer. |
r_initframe | Number of first selected frame. |
r_endframe | Number of last selected frame. |
Definition at line 1900 of file gpencil.c.
References bGPDlayer::actframe, bGPDframe::framenum, bGPDlayer::frames, GP_FRAME_SELECT, and LISTBASE_FOREACH.
Referenced by createTransGPencil_curves(), createTransGPencil_strokes(), gpencil_sculpt_brush_apply_standard(), gpencil_vertexpaint_brush_apply_to_layers(), and gpencil_weightpaint_brush_apply_to_layers().
Definition at line 2869 of file gpencil.c.
References bGPDlayer::actframe, BKE_gpencil_layer_active_get(), BLI_ghash_insert(), BLI_ghash_lookup(), bool, GP_FRAME_SELECT, GPENCIL_MULTIEDIT_SESSIONS_ON, bGPdata::layers, LISTBASE_FOREACH, NULL, and POINTER_FROM_INT.
Referenced by BKE_gpencil_stroke_copy_to_keyframes(), and gpencil_fill_modal().
Free (or release) any data used by this grease pencil (does not free the gpencil itself).
Definition at line 479 of file gpencil.c.
References BKE_gpencil_batch_cache_free(), BKE_gpencil_free_layers(), BKE_gpencil_free_update_cache(), BLI_freelistN(), bGPdata::layers, bGPdata::mat, MEM_SAFE_FREE, and bGPdata::vertex_group_names.
Referenced by animchannels_delete_exec(), BKE_gpencil_eval_delete(), gpencil_layer_remove_exec(), gpencil_undo_free_node(), and greasepencil_free_data().
Free all of a gp-layer's frames.
Definition at line 427 of file gpencil.c.
References bGPDlayer::actframe, BKE_gpencil_free_strokes(), BLI_freelinkN(), ListBase::first, bGPDlayer::frames, bGPDframe::next, and NULL.
Referenced by BKE_gpencil_free_layers(), BKE_gpencil_layer_delete(), and lineart_gpencil_clear_strokes_exec_common().
Definition at line 447 of file gpencil.c.
References BLI_freelinkN(), ListBase::first, mask(), bGPDlayer::mask_layers, and NULL.
Referenced by BKE_gpencil_free_layers(), and BKE_gpencil_layer_delete().
Free all of the gp-layers for a viewport (list should be &gpd->layers
or so).
Definition at line 456 of file gpencil.c.
References BKE_gpencil_free_frames(), BKE_gpencil_free_layer_masks(), BLI_freelinkN(), ListBase::first, bGPDlayer::next, and NULL.
Referenced by BKE_gpencil_free_data(), ED_gpencil_anim_copybuf_free(), and ED_undo_gpencil_step().
void BKE_gpencil_free_point_weights | ( | struct MDeformVert * | dvert | ) |
Definition at line 353 of file gpencil.c.
References MDeformVert::dw, MEM_SAFE_FREE, and NULL.
Referenced by BKE_gpencil_free_stroke_weights(), BKE_gpencil_stroke_simplify_adaptive(), BKE_gpencil_stroke_simplify_fixed(), and reduce_stroke_points().
void BKE_gpencil_free_stroke | ( | struct bGPDstroke * | gps | ) |
Free stroke, doesn't unlink from any ListBase.
Definition at line 391 of file gpencil.c.
References BKE_gpencil_free_stroke_editcurve(), BKE_gpencil_free_stroke_weights(), bGPDstroke::dvert, bGPDstroke::editcurve, MEM_freeN, NULL, bGPDstroke::points, and bGPDstroke::triangles.
Referenced by apply_dash_for_frame(), BKE_gpencil_curve_delete_tagged_points(), BKE_gpencil_free_strokes(), BKE_gpencil_stroke_delete_tagged_points(), BKE_gpencil_stroke_perimeter_from_view(), clear_stroke(), ED_gpencil_stroke_join_and_trim(), ED_gpencil_trace_data_to_strokes(), generate_geometry(), gpencil_cutter_dissolve(), gpencil_delete_selected_strokes(), gpencil_delete_temp_stroke_extension(), gpencil_dissolve_selected_curve_points(), gpencil_dissolve_selected_stroke_points(), gpencil_fill_modal(), gpencil_interpolate_free_tagged_strokes(), gpencil_stroke_join_exec(), gpencil_stroke_join_islands(), gpencil_update_on_write_stroke_cb(), and blender::io::gpencil::GpencilIO::stroke_point_radius_get().
void BKE_gpencil_free_stroke_editcurve | ( | struct bGPDstroke * | gps | ) |
Definition at line 377 of file gpencil.c.
References bGPDcurve::curve_points, bGPDstroke::editcurve, MEM_freeN, and NULL.
Referenced by BKE_gpencil_free_stroke(), and BKE_gpencil_stroke_editcurve_update().
void BKE_gpencil_free_stroke_weights | ( | struct bGPDstroke * | gps | ) |
Definition at line 361 of file gpencil.c.
References BKE_gpencil_free_point_weights(), bGPDstroke::dvert, NULL, and bGPDstroke::totpoints.
Referenced by annotation_free_stroke(), BKE_gpencil_dissolve_points(), BKE_gpencil_frame_delete_laststroke(), BKE_gpencil_free_stroke(), BKE_gpencil_stroke_extra_points(), BKE_gpencil_stroke_sample(), BKE_gpencil_stroke_trim_points(), ED_gpencil_strokes_copybuf_free(), gpencil_dissolve_selected_stroke_points(), gpencil_frame_clean_fill_exec(), gpencil_frame_clean_loose_exec(), and gpencil_free_stroke().
Free strokes belonging to a gp-frame.
Definition at line 414 of file gpencil.c.
References BKE_gpencil_free_stroke(), BLI_listbase_clear(), BLI_listbase_is_empty(), LISTBASE_FOREACH_MUTABLE, and bGPDframe::strokes.
Referenced by BKE_gpencil_frame_addcopy(), BKE_gpencil_free_frames(), BKE_gpencil_layer_frame_delete(), copy_frame_to_eval_ex(), gpencil_interpolate_exit(), gpencil_interpolate_reverse_exec(), gpencil_interpolate_seq_exec(), gpencil_primitive_exit(), gpencil_update_on_write_frame_cb(), and view3d_ruler_to_gpencil().
bool BKE_gpencil_from_image | ( | struct SpaceImage * | sima, |
struct bGPdata * | gpd, | ||
struct bGPDframe * | gpf, | ||
float | size, | ||
bool | mask | ||
) |
Create grease pencil strokes from image
Definition at line 2290 of file gpencil.c.
References BKE_gpencil_stroke_add(), BKE_gpencil_stroke_geometry_update(), BKE_gpencil_stroke_select_index_set(), BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), col, color, copy_v3_v3(), bGPDspoint::flag, bGPDstroke::flag, GP_SPOINT_SELECT, GP_STROKE_SELECT, image(), SpaceImage::image, IMB_sampleImageAtLocation(), SpaceImage::iuser, lock, mask(), NULL, bGPDstroke::points, bGPDspoint::pressure, ImBuf::rect, size(), bGPDspoint::strength, bGPDspoint::vert_color, ImBuf::x, bGPDspoint::x, ImBuf::y, bGPDspoint::z, and zero_v3().
Referenced by image_to_gpencil_exec().
Get the active grease pencil layer for editing.
gpd | Grease pencil data-block |
Definition at line 1558 of file gpencil.c.
References ELEM, ListBase::first, GP_LAYER_ACTIVE, bGPdata::layers, LISTBASE_FOREACH, and NULL.
Referenced by annotation_actframe_delete_poll(), annotation_paint_initstroke(), BKE_gpencil_convert_curve(), BKE_gpencil_frame_selected_hash(), BKE_gpencil_layer_addnew(), BKE_gpencil_layer_autolock_set(), ED_gpencil_drawing_reference_get(), ED_gpencil_has_keyframe_v3d(), ED_gpencil_set_active_channel(), get_automasking_strokes_list(), gpencil_actframe_delete_exec(), gpencil_actframe_delete_poll(), gpencil_active_layer_annotation_poll(), gpencil_active_layer_poll(), gpencil_blank_frame_add_exec(), GPENCIL_cache_init(), gpencil_convert_layer_exec(), gpencil_convert_poll(), gpencil_create_extensions(), gpencil_curve_edit_mode_poll(), gpencil_draw_datablock(), gpencil_fill_init(), gpencil_frame_duplicate_exec(), gpencil_hide_exec(), gpencil_interpolate_reverse_poll(), gpencil_isolate_layer_exec(), gpencil_layer_copy_exec(), gpencil_layer_duplicate_object_exec(), gpencil_layer_duplicate_object_poll(), gpencil_layer_mask_add_exec(), gpencil_layer_mask_move_exec(), gpencil_layer_mask_remove_exec(), gpencil_layer_move_exec(), gpencil_layer_remove_exec(), gpencil_merge_by_distance_poll(), gpencil_merge_layer_exec(), gpencil_paint_initstroke(), gpencil_primitive_add_poll(), gpencil_primitive_invoke(), gpencil_session_init_fill(), gpencil_stroke_apply_thickness_exec(), gpencil_stroke_arrange_exec(), gpencil_stroke_join_exec(), gpencil_stroke_normalize_poll(), gpencil_stroke_not_in_curve_edit_mode(), gpencil_stroke_separate_exec(), gpencil_strokes_paste_exec(), gpencil_transform_fill_poll(), gpencil_zoom_level_set(), OVERLAY_gpencil_cache_init(), screen_ctx_active_annotation_layer(), screen_ctx_active_gpencil_frame(), screen_ctx_active_gpencil_layer(), and trace_initialize_job_data().
Set active grease pencil layer.
gpd | Grease pencil data-block |
active | Grease pencil layer to set as active |
Definition at line 1601 of file gpencil.c.
References blender::compositor::active, ELEM, ListBase::first, bGPdata::flag, GP_DATA_AUTOLOCK_LAYERS, GP_LAYER_ACTIVE, GP_LAYER_LOCKED, bGPdata::layers, LISTBASE_FOREACH, and NULL.
Referenced by BKE_gpencil_layer_addnew(), click_select_channel_gplayer(), ED_gpencil_layer_merge(), ED_gpencil_set_active_channel(), gpencil_layer_active_exec(), gpencil_layer_change_exec(), gpencil_layer_copy_exec(), gpencil_layer_remove_exec(), gpencil_stroke_separate_exec(), namebutton_fn(), and tree_element_gplayer_activate().
struct bGPDlayer* BKE_gpencil_layer_addnew | ( | struct bGPdata * | gpd, |
const char * | name, | ||
bool | setactive, | ||
bool | add_to_header | ||
) |
Add a new gp-layer and make it the active layer.
gpd | Grease pencil data-block |
name | Name of the layer |
setactive | Set as active |
add_to_header | Used to force the layer added at header |
Definition at line 621 of file gpencil.c.
References ARRAY_SET_ITEMS, BKE_gpencil_layer_active_get(), BKE_gpencil_layer_active_set(), BLI_addhead(), BLI_addtail(), BLI_insertlinkafter(), BLI_strncpy(), BLI_uniquename(), bGPDlayer::color, copy_v3_fl(), copy_v4_v4(), DATA_, bGPDlayer::flag, bGPdata::flag, bGPDlayer::gcolor_next, bGPDlayer::gcolor_prev, GP_DATA_ANNOTATIONS, GP_LAYER_ONIONSKIN, GP_LAYER_USE_LIGHTS, bGPDlayer::info, invert_m4_m4(), bGPDlayer::layer_invmat, bGPDlayer::layer_mat, bGPdata::layers, loc_eul_size_to_mat4(), bGPDlayer::location, MEM_callocN, NULL, bGPDlayer::onion_flag, bGPDlayer::opacity, bGPDlayer::rotation, bGPDlayer::scale, bGPDlayer::thickness, bGPDlayer::vertex_paint_opacity, and zero_v3().
Referenced by annotation_paint_initstroke(), BKE_gpencil_convert_curve(), BKE_gpencil_convert_mesh(), ED_gpencil_create_blank(), ED_gpencil_create_lineart(), ED_gpencil_create_monkey(), ED_gpencil_create_stroke(), gpencil_bake_grease_pencil_animation_exec(), gpencil_data_add_exec(), gpencil_layer_add_exec(), gpencil_layer_change_exec(), gpencil_layer_duplicate_object_exec(), gpencil_paint_initstroke(), gpencil_primitive_set_initdata(), gpencil_session_init_fill(), gpencil_stroke_separate_exec(), gpencil_strokes_paste_exec(), image_to_gpencil_exec(), blender::io::gpencil::GpencilImporterSVG::read(), trace_initialize_job_data(), and view3d_ruler_to_gpencil().
Set locked layers for autolock mode.
gpd | Grease pencil data-block |
unlock | Unlock flag |
Definition at line 1623 of file gpencil.c.
References BKE_gpencil_layer_active_get(), BLI_assert, bGPdata::flag, GP_DATA_AUTOLOCK_LAYERS, GP_LAYER_LOCKED, bGPdata::layers, LISTBASE_FOREACH, and NULL.
Referenced by click_select_channel_gplayer(), and ED_gpencil_set_active_channel().
void BKE_gpencil_layer_copy_settings | ( | const struct bGPDlayer * | gpl_src, |
struct bGPDlayer * | gpl_dst | ||
) |
Make a copy of a given gpencil layer settings.
Referenced by gpencil_stroke_separate_exec().
Delete grease pencil layer.
gpd | Grease pencil data-block |
gpl | Grease pencil layer |
Definition at line 1653 of file gpencil.c.
References BKE_gpencil_free_frames(), BKE_gpencil_free_layer_masks(), BKE_gpencil_layer_mask_remove_ref(), BKE_icon_delete(), BLI_freelinkN(), ELEM, bGPDlayer_Runtime::icon_id, bGPDlayer::info, bGPdata::layers, NULL, and bGPDlayer::runtime.
Referenced by animchannels_delete_exec(), ED_gpencil_layer_merge(), gpencil_layer_remove_exec(), and gpencil_update_on_write_layer_cb().
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.
gpl_src | Source grease pencil layer |
Referenced by ED_gpencil_join_objects_exec(), ED_undo_gpencil_step(), gpencil_copy_structure_for_eval(), and gpencil_layer_copy_exec().
Delete the given frame from a layer.
gpl | Grease pencil layer |
gpf | Grease pencil frame |
Definition at line 1396 of file gpencil.c.
References bGPDlayer::actframe, BKE_gpencil_free_strokes(), BLI_freelinkN(), ELEM, bGPDlayer::frames, NULL, and bGPDframe::prev.
Referenced by BKE_gpencil_frame_delete_laststroke(), clear_strokes(), ED_gpencil_anim_copybuf_paste(), ED_gpencil_layer_frames_delete(), gpencil_actframe_delete_all_exec(), gpencil_actframe_delete_exec(), gpencil_frame_clean_duplicate_exec(), and posttrans_gpd_clean().
Look up the gp-frame on the requested frame number, but don't add a new one.
gpl | Grease pencil layer |
cframe | Frame number |
Definition at line 1216 of file gpencil.c.
References bGPDframe::framenum, bGPDlayer::frames, ListBase::last, NULL, and bGPDframe::prev.
Referenced by bake_strokes(), BKE_gpencil_stroke_copy_to_keyframes(), clear_strokes(), ED_gpencil_select_frame(), and gpencil_blank_frame_add_exec().
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
gpl | Grease pencil layer |
cframe | Frame number |
addnew | Add option |
Definition at line 1232 of file gpencil.c.
References blender::math::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, NULL, and bGPDframe::prev.
Referenced by annotation_draw_data_layers(), annotation_paint_initstroke(), bake_strokes(), BKE_gpencil_convert_curve(), BKE_gpencil_convert_mesh(), BKE_gpencil_frame_active_set(), BKE_gpencil_frame_delete_laststroke(), BKE_gpencil_frame_retime_get(), ED_gpencil_anim_copybuf_paste(), ED_gpencil_layer_merge(), gpencil_actframe_delete_all_exec(), gpencil_actframe_delete_exec(), gpencil_bake_grease_pencil_animation_exec(), gpencil_blank_frame_add_exec(), gpencil_brush_clone_add(), GPENCIL_cache_populate(), gpencil_convert_check_has_valid_timing(), gpencil_convert_poll(), gpencil_copy_visible_frames_to_eval(), gpencil_create_extensions(), gpencil_delete_temp_stroke_extension(), gpencil_draw_datablock(), gpencil_fill_modal(), gpencil_interpolate_modal(), gpencil_interpolate_seq_exec(), gpencil_layer_add_exec(), gpencil_layer_to_curve(), gpencil_paint_initstroke(), gpencil_prepare_stroke(), gpencil_primitive_interaction_end(), gpencil_select_same_layer(), gpencil_stroke_from_buffer(), gpencil_stroke_separate_exec(), gpencil_strokes_paste_exec(), gpencil_zoom_level_set(), insert_gpencil_key(), blender::io::gpencil::GpencilImporterSVG::read(), trace_start_job(), view3d_ruler_from_gpencil(), and view3d_ruler_to_gpencil().
Sort grease pencil frames.
gpl | Grease pencil layer |
r_has_duplicate_frames | Duplicated frames flag |
Definition at line 1553 of file gpencil.c.
References BLI_listbase_sort_r(), bGPDlayer::frames, and gpencil_cb_cmp_frame().
Referenced by ANIM_animdata_update(), and posttrans_gpd_clean().
struct bGPDlayer* BKE_gpencil_layer_get_by_name | ( | struct bGPdata * | gpd, |
char * | name, | ||
int | first_if_not_found | ||
) |
Definition at line 1576 of file gpencil.c.
References ELEM, ListBase::first, bGPDlayer::info, bGPdata::layers, bGPDlayer_Mask::name, bGPDlayer::next, NULL, and STREQ.
Referenced by bake_strokes(), bakeModifier(), clear_strokes(), generateStrokes(), and lineart_gpencil_clear_strokes_exec_common().
Check if the given layer is able to be edited or not.
gpl | Grease pencil layer |
Referenced by annotation_paint_initstroke(), BKE_gpencil_strokes_selected_sync_selection_editcurve(), BKE_gpencil_strokes_selected_update_editcurve(), createTransGPencil_curves(), createTransGPencil_strokes(), ED_gpencil_update_color_uv(), ED_transform_calc_gizmo_stats(), get_automasking_strokes_list(), gpencil_draw_invoke(), gpencil_frame_clean_duplicate_exec(), gpencil_interpolate_reverse_exec(), gpencil_interpolate_seq_exec(), gpencil_interpolate_set_points(), gpencil_lock_layer_exec(), gpencil_material_lock_unsused_exec(), gpencil_paint_initstroke(), gpencil_sculpt_brush_apply_standard(), gpencil_sculpt_brush_init_stroke(), gpencil_snap_to_cursor(), gpencil_snap_to_grid(), gpencil_stroke_doeraser(), gpencil_stroke_points_centroid(), gpencil_strokes_paste_exec(), gpencil_vertexpaint_brush_apply_to_layers(), gpencil_weightpaint_brush_apply_to_layers(), screen_ctx_editable_gpencil_layers(), and screen_ctx_editable_gpencil_strokes().
struct bGPDlayer_Mask* BKE_gpencil_layer_mask_add | ( | struct bGPDlayer * | gpl, |
const char * | name | ||
) |
Add grease pencil mask layer.
gpl | Grease pencil layer |
name | Name of the mask |
Definition at line 1435 of file gpencil.c.
References bGPDlayer::act_mask, BLI_addtail(), BLI_strncpy(), mask(), bGPDlayer::mask_layers, and MEM_callocN.
Referenced by gpencil_layer_mask_add_exec().
Clean any invalid mask layer.
Definition at line 1516 of file gpencil.c.
References BKE_gpencil_layer_mask_remove(), BKE_gpencil_layer_named_get(), LISTBASE_FOREACH_MUTABLE, mask(), bGPDlayer::mask_layers, and NULL.
Referenced by BKE_gpencil_layer_mask_cleanup_all_layers(), and gpencil_merge_layer_exec().
Clean any invalid mask layer for all layers.
Definition at line 1525 of file gpencil.c.
References BKE_gpencil_layer_mask_cleanup(), bGPdata::layers, and LISTBASE_FOREACH.
Referenced by gpencil_stroke_separate_exec().
Make a copy of a given gpencil mask layers.
Referenced by gpencil_stroke_separate_exec().
struct bGPDlayer_Mask* BKE_gpencil_layer_mask_named_get | ( | struct bGPDlayer * | gpl, |
const char * | name | ||
) |
Get mask layer by name.
gpl | Grease pencil layer |
name | Mask name |
Definition at line 1427 of file gpencil.c.
References BLI_findstring(), bGPDlayer::mask_layers, and NULL.
Referenced by ED_gpencil_layer_merge(), and gpencil_layer_mask_add_exec().
void BKE_gpencil_layer_mask_remove | ( | struct bGPDlayer * | gpl, |
struct bGPDlayer_Mask * | mask | ||
) |
Remove grease pencil mask layer.
gpl | Grease pencil layer |
mask | Grease pencil mask layer |
Definition at line 1446 of file gpencil.c.
References bGPDlayer::act_mask, BLI_freelinkN(), CLAMP_MIN, mask(), and bGPDlayer::mask_layers.
Referenced by BKE_gpencil_layer_mask_cleanup(), BKE_gpencil_layer_mask_remove_ref(), and gpencil_layer_mask_remove_exec().
Remove any reference to mask layer.
gpd | Grease pencil data-block |
name | Name of the mask layer |
Definition at line 1453 of file gpencil.c.
References BKE_gpencil_layer_mask_remove(), bGPdata::layers, LISTBASE_FOREACH, mask(), and STREQ.
Referenced by BKE_gpencil_layer_delete().
Sort grease pencil mask layers.
gpd | Grease pencil data-block |
gpl | Grease pencil layer |
Definition at line 1484 of file gpencil.c.
References BKE_gpencil_layer_named_get(), BLI_findindex(), BLI_listbase_sort(), gpencil_cb_sort_masks(), bGPdata::layers, LISTBASE_FOREACH, mask(), bGPDlayer::mask_layers, and NULL.
Referenced by BKE_gpencil_layer_mask_sort_all(), ED_gpencil_layer_merge(), gpencil_layer_mask_add_exec(), and gpencil_layer_mask_remove_exec().
Sort all grease pencil mask layer.
gpd | Grease pencil data-block |
Definition at line 1499 of file gpencil.c.
References BKE_gpencil_layer_mask_sort(), bGPdata::layers, and LISTBASE_FOREACH.
Referenced by gpencil_layer_move_exec(), and gpencil_layer_remove_exec().
Get layer by name
gpd | Grease pencil data-block |
name | Layer name |
Definition at line 1419 of file gpencil.c.
References BLI_findstring(), bGPdata::layers, and NULL.
Referenced by BKE_gpencil_convert_curve(), BKE_gpencil_convert_mesh(), BKE_gpencil_layer_mask_cleanup(), BKE_gpencil_layer_mask_sort(), ED_gpencil_layer_merge(), gpencil_bake_grease_pencil_animation_exec(), gpencil_brush_clone_add(), gpencil_layer_cache_add(), and gpencil_layer_mask_add_exec().
void BKE_gpencil_layer_original_pointers_update | ( | const struct bGPDlayer * | gpl_orig, |
const struct bGPDlayer * | gpl_eval | ||
) |
Update original pointers in evaluated layer.
gpl_orig | Original grease-pencil layer. |
gpl_eval | Evaluated grease pencil layer. |
Definition at line 2663 of file gpencil.c.
References BKE_gpencil_frame_original_pointers_update(), ListBase::first, bGPDlayer::frames, bGPDframe_Runtime::gpf_orig, LISTBASE_FOREACH, bGPDframe::next, NULL, and bGPDframe::runtime.
Referenced by BKE_gpencil_data_update_orig_pointers(), gpencil_copy_structure_for_eval(), and gpencil_update_on_write_layer_cb().
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.
depsgraph | Depsgraph |
obact | Grease pencil object |
gpl | Grease pencil layer |
diff_mat | Result parent matrix |
Referenced by createTransGPencil_curves(), createTransGPencil_strokes(), ED_gpencil_join_objects_exec(), ED_gpencil_project_stroke_to_view(), ED_gpencil_reset_layers_parent(), ED_gpencil_stroke_nearest_to_ends(), ED_gpencil_stroke_reproject(), ED_transform_calc_gizmo_stats(), get_automasking_strokes_list(), gpencil_apply_parent(), gpencil_apply_parent_point(), gpencil_cutter_lasso_select(), gpencil_draw_datablock(), gpencil_primitive_interaction_end(), gpencil_sculpt_brush_apply_standard(), gpencil_sculpt_brush_do_frame(), gpencil_snap_to_cursor(), gpencil_snap_to_grid(), gpencil_stroke_doeraser(), gpencil_stroke_eraser_is_occluded(), gpencil_stroke_need_flip(), gpencil_stroke_newfrombuffer(), gpencil_stroke_points_centroid(), gpencil_strokepoint_convertcoords(), gpencil_vertexpaint_brush_apply_to_layers(), gpencil_weightpaint_brush_apply_to_layers(), gpencil_zoom_level_set(), object_origin_set_exec(), blender::io::gpencil::GpencilIO::prepare_layer_export_matrix(), and blender::io::gpencil::GpencilIO::selected_objects_boundbox_calc().
int BKE_gpencil_material_find_index_by_name_prefix | ( | struct Object * | ob, |
const char * | name_prefix | ||
) |
Find material by name prefix.
ob | Object pointer |
name_prefix | Prefix name of the material |
Definition at line 2855 of file gpencil.c.
References BKE_object_material_get(), Material::gp_style, Material::id, ID::name, NULL, STREQLEN, and Object::totcol.
Referenced by BKE_gpencil_convert_mesh(), blender::io::gpencil::GpencilImporter::create_material(), and ED_gpencil_trace_data_to_strokes().
Reassign strokes using a material.
gpd | Grease pencil data-block |
totcol | Total materials |
index | Index of the material |
Definition at line 1948 of file gpencil.c.
References CLAMP_MIN, bGPdata::layers, and LISTBASE_FOREACH.
Referenced by BKE_object_material_slot_remove().
Remove strokes using a material.
gpd | Grease pencil data-block |
index | Index of the material |
Definition at line 1963 of file gpencil.c.
References bGPdata::layers, and LISTBASE_FOREACH.
Referenced by BKE_object_material_slot_used().
void BKE_gpencil_material_remap | ( | struct bGPdata * | gpd, |
const unsigned int * | remap, | ||
unsigned int | remap_len | ||
) |
Remap material
gpd | Grease pencil data-block |
remap | Remap index |
remap_len | Remap length |
Definition at line 1978 of file gpencil.c.
References bGPdata::layers, LISTBASE_FOREACH, and MAT_NR_REMAP.
Referenced by BKE_object_material_remap().
bool BKE_gpencil_merge_materials | ( | struct Object * | ob, |
float | hue_threshold, | ||
float | sat_threshold, | ||
float | val_threshold, | ||
int * | r_removed | ||
) |
Merge similar materials
ob | Grease pencil object |
hue_threshold | Threshold for Hue |
sat_threshold | Threshold for Saturation |
val_threshold | Threshold for Value |
r_removed | Number of materials removed |
Definition at line 2122 of file gpencil.c.
References BKE_gpencil_material_settings(), BKE_gpencil_merge_materials_table_get(), BKE_object_material_len_p(), BLI_ghash_free(), BLI_ghash_haskey(), BLI_ghash_int_new(), BLI_ghash_len(), BLI_ghash_lookup(), Object::data, MaterialGPencilStyle::flag, GP_LAYER_HIDE, GP_LAYER_UNLOCK_COLOR, GP_MATERIAL_HIDE, GP_MATERIAL_LOCKED, bGPdata::layers, LISTBASE_FOREACH, NULL, POINTER_AS_INT, and POINTER_FROM_INT.
Referenced by BKE_gpencil_convert_curve(), and gpencil_stroke_merge_material_exec().
bool BKE_gpencil_merge_materials_table_get | ( | struct Object * | ob, |
float | hue_threshold, | ||
float | sat_threshold, | ||
float | val_threshold, | ||
struct GHash * | r_mat_table | ||
) |
Load a table with material conversion index for merged materials.
ob | Grease pencil object. |
hue_threshold | Threshold for Hue. |
sat_threshold | Threshold for Saturation. |
val_threshold | Threshold for Value. |
r_mat_table | return material table. |
Definition at line 2003 of file gpencil.c.
References BKE_gpencil_material(), BKE_object_material_len_p(), BLI_ghash_free(), BLI_ghash_haskey(), BLI_ghash_insert(), BLI_ghash_int_new(), col, compare_ff(), copy_v3_v3(), MaterialGPencilStyle::fill_rgba, MaterialGPencilStyle::fill_style, MaterialGPencilStyle::flag, GP_MATERIAL_FILL_SHOW, GP_MATERIAL_LOCKED, GP_MATERIAL_STROKE_SHOW, Material::gp_style, MaterialGPencilStyle::mode, NULL, POINTER_FROM_INT, rgb_to_hsv_compat_v(), MaterialGPencilStyle::stroke_rgba, MaterialGPencilStyle::stroke_style, and zero_v3().
Referenced by BKE_gpencil_merge_materials().
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
gpf | Frame. |
actnum | Number of active frame in layer. |
f_init | Number of first selected frame. |
f_end | Number of last selected frame. |
cur_falloff | Curve with falloff factors. |
Definition at line 1917 of file gpencil.c.
References BKE_curvemapping_evaluateF(), float(), bGPDframe::framenum, and NULL.
Referenced by createTransGPencil_curves(), createTransGPencil_strokes(), gpencil_sculpt_brush_apply_standard(), gpencil_vertexpaint_brush_apply_to_layers(), and gpencil_weightpaint_brush_apply_to_layers().
int BKE_gpencil_object_material_ensure | ( | struct Main * | bmain, |
struct Object * | ob, | ||
struct Material * | material | ||
) |
Assigns the material to object (if not already present) and returns its index (mat_nr).
Definition at line 1720 of file gpencil.c.
References BKE_gpencil_object_material_index_get(), BKE_MAT_ASSIGN_USERPREF, BKE_object_material_assign(), BKE_object_material_slot_add(), material, and Object::totcol.
Referenced by ED_gpencil_join_objects_exec(), gpencil_copybuf_validate_colormap(), gpencil_layer_duplicate_object_exec(), gpencil_materials_copy_to_object_exec(), and gpencil_stroke_separate_exec().
Get active color, and add all default settings if we don't find anything.
ob | Grease pencil object |
Definition at line 1807 of file gpencil.c.
References BKE_gpencil_material_attr_init(), BKE_gpencil_object_material_ensure_from_active_input_material(), Material::gp_style, and NULL.
struct Material* BKE_gpencil_object_material_ensure_by_name | ( | struct Main * | bmain, |
struct Object * | ob, | ||
const char * | name, | ||
int * | r_index | ||
) |
Definition at line 2228 of file gpencil.c.
References BKE_gpencil_object_material_index_get_by_name(), BKE_gpencil_object_material_new(), BKE_object_material_get(), and bGPDlayer_Mask::name.
Referenced by gpencil_lineart_material(), gpencil_monkey_color(), and gpencil_stroke_material().
struct Material* BKE_gpencil_object_material_ensure_from_active_input_brush | ( | struct Main * | bmain, |
struct Object * | ob, | ||
struct Brush * | brush | ||
) |
Guaranteed to return a material assigned to object. Returns never NULL.
Definition at line 1780 of file gpencil.c.
References BKE_gpencil_object_material_ensure_from_active_input_material(), BKE_gpencil_object_material_ensure_from_brush(), BrushGpencilSettings::flag, GP_BRUSH_MATERIAL_PINNED, and Brush::gpencil_settings.
Referenced by BKE_gpencil_object_material_ensure_from_active_input_toolsettings(), gpencil_init_colors(), and gpencil_session_init_fill().
struct Material* BKE_gpencil_object_material_ensure_from_active_input_material | ( | struct Object * | ob | ) |
Guaranteed to return a material assigned to object. Returns never NULL. Only use this for materials unrelated to user input.
ob | Grease pencil object |
Definition at line 1797 of file gpencil.c.
References Object::actcol, BKE_material_default_gpencil(), and BKE_object_material_get().
Referenced by BKE_gpencil_object_material_ensure_active(), and BKE_gpencil_object_material_ensure_from_active_input_brush().
struct Material* BKE_gpencil_object_material_ensure_from_active_input_toolsettings | ( | struct Main * | bmain, |
struct Object * | ob, | ||
struct ToolSettings * | ts | ||
) |
Guaranteed to return a material assigned to object. Returns never NULL.
bmain | Main pointer |
ob | Grease pencil object |
Definition at line 1768 of file gpencil.c.
References BKE_gpencil_object_material_ensure_from_active_input_brush(), Paint::brush, ToolSettings::gp_paint, NULL, and GpPaint::paint.
Referenced by ED_gpencil_add_defaults(), and gpencil_primitive_init().
struct Material* BKE_gpencil_object_material_ensure_from_brush | ( | struct Main * | bmain, |
struct Object * | ob, | ||
struct Brush * | brush | ||
) |
Adds the pinned material to the object if necessary.
Definition at line 1702 of file gpencil.c.
References Object::actcol, BKE_gpencil_brush_material_get(), BKE_gpencil_object_material_index_get(), BKE_MAT_ASSIGN_USERPREF, BKE_object_material_assign(), BKE_object_material_get(), BKE_object_material_slot_add(), BrushGpencilSettings::flag, GP_BRUSH_MATERIAL_PINNED, Brush::gpencil_settings, and Object::totcol.
Referenced by BKE_gpencil_object_material_ensure_from_active_input_brush().
struct Material* BKE_gpencil_object_material_from_brush_get | ( | struct Object * | ob, |
struct Brush * | brush | ||
) |
Returns the material for a brush with respect to its pinned state.
ob | Grease pencil object |
brush | Brush |
Definition at line 1748 of file gpencil.c.
References Object::actcol, BKE_gpencil_brush_material_get(), BKE_object_material_get(), BrushGpencilSettings::flag, GP_BRUSH_MATERIAL_PINNED, and Brush::gpencil_settings.
Referenced by gpencil_brush_cursor_draw().
Returns the material index for a brush with respect to its pinned state.
ob | Grease pencil object |
brush | Brush |
Definition at line 1759 of file gpencil.c.
References Object::actcol, BKE_gpencil_object_material_index_get(), BrushGpencilSettings::flag, GP_BRUSH_MATERIAL_PINNED, Brush::gpencil_settings, and BrushGpencilSettings::material.
Referenced by gpencil_primitive_set_initdata(), gpencil_stroke_from_buffer(), and gpencil_stroke_newfrombuffer().
Get material index (0-based like mat_nr not actcol).
ob | Grease pencil object |
ma | Material |
Definition at line 2199 of file gpencil.c.
References BKE_object_material_get(), BKE_object_material_len_p(), and NULL.
Referenced by bake_strokes(), BKE_gpencil_object_material_ensure(), BKE_gpencil_object_material_ensure_from_brush(), BKE_gpencil_object_material_get_index_from_brush(), generate_strokes_actual(), gpencil_bake_grease_pencil_animation_exec(), gpencil_brush_clone_add(), gpencil_stroke_change_color_exec(), gpencil_strokes_paste_exec(), and panel_draw().
int BKE_gpencil_object_material_index_get_by_name | ( | struct Object * | ob, |
const char * | name | ||
) |
Definition at line 2213 of file gpencil.c.
References BKE_object_material_get(), BKE_object_material_len_p(), Material::id, bGPDlayer_Mask::name, ID::name, NULL, and STREQ.
Referenced by BKE_gpencil_object_material_ensure_by_name().
struct Material* BKE_gpencil_object_material_new | ( | struct Main * | bmain, |
struct Object * | ob, | ||
const char * | name, | ||
int * | r_index | ||
) |
Creates a new grease-pencil material and assigns it to object.
bmain | Main pointer |
ob | Grease pencil object |
name | Material name |
r_index | value is set to zero based index of the new material if r_index is not NULL. |
Definition at line 1734 of file gpencil.c.
References Object::actcol, BKE_gpencil_material_add(), BKE_MAT_ASSIGN_USERPREF, BKE_object_material_assign(), BKE_object_material_slot_add(), Material::id, id_us_min(), bGPDlayer_Mask::name, and Object::totcol.
Referenced by BKE_gpencil_object_material_ensure_by_name(), blender::io::gpencil::GpencilImporter::create_material(), ED_gpencil_trace_data_to_strokes(), eyedropper_add_material(), gpencil_add_from_curve_material(), gpencil_add_material(), gpencil_convert_old_files_exec(), and image_to_gpencil_exec().
Create a default palette.
Definition at line 2241 of file gpencil.c.
References ARRAY_SIZE, BKE_paint_palette_set(), BKE_palette_add(), BKE_palette_color_add(), BLI_assert, BLI_findstring(), ListBase::first, ToolSettings::gp_paint, ToolSettings::gp_vertexpaint, hex_to_rgb(), Palette::id, id_us_min(), NULL, GpPaint::paint, GpVertexPaint::paint, Paint::palette, Main::palettes, PaletteColor::rgb, scene, and Scene::toolsettings.
Referenced by BLO_update_defaults_startup_blend(), gpencil_paintmode_toggle_exec(), and gpencil_vertexmode_toggle_exec().
Calc grease pencil statistics functions.
gpd | Grease pencil data-block |
Definition at line 2180 of file gpencil.c.
References bGPdata::layers, LISTBASE_FOREACH, bGPdata::totframe, bGPdata::totlayer, bGPdata::totpoint, and bGPdata::totstroke.
Referenced by stats_object().
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.
gpf | Grease pencil frame |
mat_idx | Material index |
totpoints | Total points |
thickness | Stroke thickness |
insert_at_head | Add to the head of the strokes list |
Definition at line 792 of file gpencil.c.
References BKE_gpencil_stroke_new(), BLI_addhead(), BLI_addtail(), NULL, and bGPDframe::strokes.
Referenced by BKE_gpencil_convert_mesh(), BKE_gpencil_from_image(), BKE_gpencil_stroke_add_existing_style(), ED_gpencil_create_monkey(), ED_gpencil_create_stroke(), ED_gpencil_trace_data_to_strokes(), gpencil_generate_edgeloops(), and lineart_gpencil_generate().
struct bGPDstroke* BKE_gpencil_stroke_add_existing_style | ( | struct bGPDframe * | gpf, |
struct bGPDstroke * | existing, | ||
int | mat_idx, | ||
int | totpoints, | ||
short | thickness | ||
) |
Add a stroke and copy the temporary drawing color value from one of the existing stroke.
gpf | Grease pencil frame |
existing | Stroke with the style to copy |
mat_idx | Material index |
totpoints | Total points |
thickness | Stroke thickness |
Definition at line 810 of file gpencil.c.
References BKE_gpencil_stroke_add(), and bGPDstroke::runtime.
Referenced by BKE_gpencil_stroke_split().
void BKE_gpencil_stroke_copy_settings | ( | const struct bGPDstroke * | gps_src, |
struct bGPDstroke * | gps_dst | ||
) |
Make a copy of a given gpencil stroke settings.
Definition at line 844 of file gpencil.c.
References bGPDcurve::curve_points, MEM_dupallocN, and NULL.
Referenced by 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.
gps_src | Source grease pencil strokes. |
dup_points | Duplicate points data. |
dup_curve | Duplicate curve data. |
Definition at line 855 of file gpencil.c.
References BKE_gpencil_stroke_curve_duplicate(), BKE_gpencil_stroke_weights_duplicate(), bGPDstroke::dvert, bGPDstroke::editcurve, MEM_dupallocN, bGPDstroke::next, NULL, bGPDstroke::points, bGPDstroke::prev, and bGPDstroke::triangles.
Referenced by annotation_stroke_newfrombuffer(), BKE_gpencil_curve_delete_tagged_points(), BKE_gpencil_frame_copy_strokes(), BKE_gpencil_frame_duplicate(), BKE_gpencil_stroke_copy_to_keyframes(), BKE_gpencil_stroke_delete_tagged_points(), duplicateStroke(), ED_gpencil_anim_copybuf_paste(), ED_gpencil_stroke_reproject(), generate_geometry(), gpencil_add_move_points(), gpencil_brush_clone_add(), gpencil_curve_extrude_points(), gpencil_duplicate_exec(), gpencil_duplicate_points(), gpencil_interpolate_modal(), gpencil_interpolate_seq_exec(), gpencil_interpolate_set_points(), gpencil_interpolate_update_strokes(), gpencil_layer_duplicate_object_exec(), gpencil_stroke_join_exec(), gpencil_stroke_join_islands(), gpencil_stroke_separate_exec(), gpencil_stroke_split_exec(), gpencil_strokes_copy_exec(), gpencil_strokes_paste_exec(), and gpencil_update_on_write_stroke_cb().
struct bGPDcurve* BKE_gpencil_stroke_editcurve_new | ( | int | tot_curve_points | ) |
Definition at line 821 of file gpencil.c.
References bGPDcurve::curve_points, MEM_callocN, and bGPDcurve::tot_curve_points.
Referenced by BKE_gpencil_curve_delete_tagged_points(), BKE_gpencil_stroke_editcurve_generate(), gpencil_curve_extrude_points(), and gpencil_stroke_editcurve_generate_edgecases().
struct bGPDstroke* BKE_gpencil_stroke_new | ( | int | mat_idx, |
int | totpoints, | ||
short | thickness | ||
) |
Create a new stroke, with pre-allocated data buffers.
mat_idx | Index of the material |
totpoints | Total points |
thickness | Stroke thickness |
Definition at line 756 of file gpencil.c.
References bGPDstroke::aspect_ratio, copy_v2_fl(), bGPDstroke::dvert, bGPDstroke::editcurve, bGPDstroke::fill_opacity_fac, bGPDstroke::flag, GP_STROKE_3DSPACE, bGPDstroke::hardeness, bGPDstroke::inittime, bGPDstroke::mat_nr, MEM_callocN, NULL, bGPDstroke::points, bGPDstroke::thickness, bGPDstroke::tot_triangles, bGPDstroke::totpoints, bGPDstroke::triangles, and bGPDstroke::uv_scale.
Referenced by add_stroke(), add_stroke_cyclic(), add_stroke_simple(), BKE_gpencil_stroke_add(), BKE_gpencil_stroke_perimeter_from_view(), gpencil_create_extensions(), gpencil_fill_modal(), gpencil_prepare_stroke(), and stroke_dash().
bool BKE_gpencil_stroke_select_check | ( | const struct bGPDstroke * | gps | ) |
Check if stroke has any point selected
gps | Grease pencil stroke |
Referenced by gpencil_generic_stroke_select().
void BKE_gpencil_stroke_select_index_reset | ( | struct bGPDstroke * | gps | ) |
Reset unique stroke ID for selection.
Definition at line 1161 of file gpencil.c.
References bGPDstroke::select_index.
Referenced by BKE_gpencil_curve_sync_selection(), BKE_gpencil_stroke_editcurve_sync_selection(), BKE_gpencil_stroke_sync_selection(), BKE_gpencil_stroke_update_geometry_from_editcurve(), deselect_all_selected(), ED_gpencil_select_curve_toggle_all(), ED_gpencil_select_toggle_all(), ED_gpencil_stroke_reproject(), gpencil_add_move_points(), gpencil_calc_points_factor(), gpencil_cutter_lasso_select(), gpencil_delete_selected_points(), gpencil_dissolve_selected_stroke_points(), gpencil_duplicate_exec(), gpencil_generic_stroke_select(), gpencil_material_select_exec(), gpencil_primitive_set_initdata(), gpencil_select_exec(), gpencil_stroke_do_circle_sel(), gpencil_stroke_separate_exec(), gpencil_stroke_unselect(), gpencil_strokes_paste_exec(), select_all_curve_points(), and select_all_stroke_points().
void BKE_gpencil_stroke_select_index_set | ( | struct bGPdata * | gpd, |
struct bGPDstroke * | gps | ||
) |
Assign unique stroke ID for selection.
Definition at line 1155 of file gpencil.c.
References bGPDstroke::select_index, and bGPdata::select_last_index.
Referenced by BKE_gpencil_curve_sync_selection(), BKE_gpencil_from_image(), BKE_gpencil_stroke_editcurve_sync_selection(), BKE_gpencil_stroke_sync_selection(), BKE_gpencil_stroke_uniform_subdivide(), ED_gpencil_select_curve_toggle_all(), ED_gpencil_select_toggle_all(), ED_gpencil_vgroup_select(), gpencil_cutter_lasso_select(), gpencil_material_select_exec(), gpencil_prepare_stroke(), gpencil_select_exec(), gpencil_select_first_exec(), gpencil_select_last_exec(), gpencil_select_same_layer(), gpencil_select_same_material(), gpencil_select_vertex_color_exec(), gpencil_stroke_do_circle_sel(), select_all_curve_points(), and select_all_stroke_points().
void BKE_gpencil_stroke_sync_selection | ( | struct bGPdata * | gpd, |
struct bGPDstroke * | gps | ||
) |
Ensure selection status of stroke is in sync with its points.
gps | Grease pencil stroke |
Definition at line 1092 of file gpencil.c.
References BKE_gpencil_stroke_select_index_reset(), BKE_gpencil_stroke_select_index_set(), bGPDspoint::flag, bGPDstroke::flag, GP_SPOINT_SELECT, GP_STROKE_SELECT, NULL, and bGPDstroke::points.
Referenced by gpencil_generic_stroke_select(), gpencil_select_exec(), gpencil_select_random_exec(), and gpencil_stroke_do_circle_sel().
void BKE_gpencil_stroke_weights_duplicate | ( | struct bGPDstroke * | gps_src, |
struct bGPDstroke * | gps_dst | ||
) |
Make a copy of a given gpencil weights.
gps_src | Source grease pencil stroke |
gps_dst | Destination grease pencil stroke |
Definition at line 834 of file gpencil.c.
References BKE_defvert_array_copy(), BLI_assert, bGPDstroke::dvert, NULL, and bGPDstroke::totpoints.
Referenced by BKE_gpencil_stroke_duplicate(), and gpencil_strokes_copy_exec().
Tag data-block for depsgraph update. Wrapper to avoid include Depsgraph tag functions in other modules.
gpd | Grease pencil data-block. |
Definition at line 506 of file gpencil.c.
References DEG_id_tag_update(), bGPdata::id, ID_RECALC_GEOMETRY, and ID_RECALC_TRANSFORM.
Referenced by insert_gpencil_key().
Update parent matrix and local transforms.
depsgraph | Depsgraph |
ob | Grease pencil object |
Referenced by BKE_object_handle_data_update().
Update the geometry of the evaluated bGPdata. This function will: 1) Copy the original data over to the evaluated object. 2) Update the original pointers in the runtime structs.
Definition at line 3029 of file gpencil.c.
References BKE_gpencil_data_copy_settings(), BKE_gpencil_free_update_cache(), BKE_gpencil_traverse_update_cache(), data, ListBase::first, GPencilUpdateCache::flag, bGPdata::flag, GP_DATA_CACHE_IS_DIRTY, GP_UPDATE_NODE_FULL_COPY, GP_UPDATE_NODE_LIGHT_COPY, gpencil_update_on_write_frame_cb(), gpencil_update_on_write_layer_cb(), gpencil_update_on_write_stroke_cb(), bGPdata::layers, NULL, bGPdata::runtime, and bGPdata_Runtime::update_cache.
Referenced by blender::deg::deg_update_copy_on_write_datablock().
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.
ob_orig | Original grease pencil object |
ob_eval | Evaluated grease pencil object |
void BKE_gpencil_vgroup_remove | ( | struct Object * | ob, |
struct bDeformGroup * | defgroup | ||
) |
Remove a vertex group.
ob | Grease pencil object |
defgroup | deform group |
Definition at line 1840 of file gpencil.c.
References BKE_defvert_find_index(), BKE_defvert_remove_group(), BKE_object_defgroup_active_index_get(), BKE_object_defgroup_active_index_set(), BLI_findindex(), BLI_freelinkN(), BLI_listbase_count(), BLI_listbase_is_empty(), Object::data, MDeformWeight::def_nr, DEG_id_tag_update(), usdtokens::g(), bGPdata::id, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, bGPdata::layers, LISTBASE_FOREACH, NULL, and bGPdata::vertex_group_names.
Referenced by BKE_object_defgroup_remove().
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 | ||
) |
Definition at line 2430 of file gpencil.c.
References Object::data, bGPdata::flag, frame_len(), bGPDframe_Runtime::frameid, bGPDframe::framenum, GP_DATA_STROKE_WEIGHTMODE, GP_FRAME_SELECT, GP_LAYER_HIDE, GP_LAYER_ONIONSKIN, GP_LAYER_SOLO_MODE, GP_ONION_LOOP, GP_ONION_MODE_ABSOLUTE, GP_ONION_MODE_SELECTED, gpencil_is_layer_mask(), GPENCIL_MULTIEDIT_SESSIONS_ON, GPENCIL_PAINT_MODE, GPENCIL_PLAY_ON, bGPdata::gstep, is_zero_v3(), bGPdata::layers, LISTBASE_FOREACH, ViewLayer::name, bGPDframe::next, NULL, bGPdata::onion_flag, bGPDframe_Runtime::onion_id, bGPdata::onion_keytype, bGPdata::onion_mode, bGPDframe::runtime, bGPdata::runtime, bGPdata_Runtime::sbuffer_used, STREQ, and bGPDframe::strokes.
Referenced by DRW_cache_gpencil_face_wireframe_get(), gpencil_batches_ensure(), GPENCIL_cache_populate(), gpencil_copy_visible_frames_to_eval(), gpencil_edit_batches_ensure(), OVERLAY_gpencil_color_names(), and OVERLAY_outline_gpencil().
void BKE_gpencil_visible_stroke_iter | ( | struct bGPdata * | gpd, |
gpIterCb | layer_cb, | ||
gpIterCb | stroke_cb, | ||
void * | thunk | ||
) |
Definition at line 2389 of file gpencil.c.
References GP_LAYER_HIDE, is_zero_v3(), bGPdata::layers, LISTBASE_FOREACH, NULL, and bGPDframe::strokes.
Referenced by BKE_object_foreach_display_point(), and blender::eevee::SyncModule::sync_gpencil().
Definition at line 332 of file gpencil.c.
Referenced by BKE_gpencil_batch_cache_dirty_tag(), and DRW_engines_register().
Definition at line 333 of file gpencil.c.
Referenced by BKE_gpencil_batch_cache_free(), and DRW_engines_register().