|
Blender V4.3
|
#include <cmath>#include <cstddef>#include <cstdio>#include <cstdlib>#include <cstring>#include <optional>#include "CLG_log.h"#include "MEM_guardedalloc.h"#include "BLI_blenlib.h"#include "BLI_math_matrix.h"#include "BLI_math_vector.h"#include "BLI_string_utils.hh"#include "BLT_translation.hh"#include "IMB_interp.hh"#include "DNA_gpencil_legacy_types.h"#include "DNA_material_types.h"#include "DNA_meshdata_types.h"#include "DNA_space_types.h"#include "BKE_action.hh"#include "BKE_anim_data.hh"#include "BKE_brush.hh"#include "BKE_collection.hh"#include "BKE_colortools.hh"#include "BKE_deform.hh"#include "BKE_gpencil_geom_legacy.h"#include "BKE_gpencil_legacy.h"#include "BKE_gpencil_update_cache_legacy.h"#include "BKE_icons.h"#include "BKE_idtype.hh"#include "BKE_image.hh"#include "BKE_lib_id.hh"#include "BKE_lib_query.hh"#include "BKE_main.hh"#include "BKE_material.h"#include "BKE_paint.hh"#include "BLI_math_color.h"#include "DEG_depsgraph_query.hh"#include "BLO_read_write.hh"Go to the source code of this file.
Macros | |
| #define | DNA_DEPRECATED_ALLOW |
Variables | |
| static CLG_LogRef | LOG = {"bke.gpencil"} |
| IDTypeInfo | IDType_ID_GD_LEGACY |
| void(* | BKE_gpencil_batch_cache_dirty_tag_cb )(bGPdata *gpd) = nullptr |
| void(* | BKE_gpencil_batch_cache_free_cb )(bGPdata *gpd) = nullptr |
| #define DNA_DEPRECATED_ALLOW |
Definition at line 30 of file gpencil_legacy.cc.
| void BKE_gpencil_batch_cache_dirty_tag | ( | bGPdata * | gpd | ) |
Definition at line 305 of file gpencil_legacy.cc.
References BKE_gpencil_batch_cache_dirty_tag_cb, DEG_id_tag_update(), bGPdata::id, and ID_RECALC_GEOMETRY.
| void BKE_gpencil_batch_cache_free | ( | bGPdata * | gpd | ) |
Definition at line 313 of file gpencil_legacy.cc.
References BKE_gpencil_batch_cache_free_cb.
Referenced by BKE_gpencil_free_data().
| void BKE_gpencil_blend_read_data | ( | BlendDataReader * | reader, |
| bGPdata * | gpd ) |
Definition at line 184 of file gpencil_legacy.cc.
References BKE_defvert_blend_read(), BLO_read_pointer_array(), BLO_read_struct, BLO_read_struct_array, BLO_read_struct_list, bGPdata::flag, ID_IS_LINKED, bGPdata::layers, LISTBASE_FOREACH, bGPdata::mat, bGPdata::runtime, bGPdata_Runtime::sbuffer, bGPdata_Runtime::sbuffer_size, bGPdata_Runtime::sbuffer_used, bGPdata_Runtime::tot_cp_points, bGPDcurve::tot_curve_points, bGPdata::totcol, bGPdata_Runtime::update_cache, and bGPdata::vertex_group_names.
Referenced by greasepencil_blend_read_data(), image_space_blend_read_data(), blender::ed::space_node::node_space_blend_read_data(), sequencer_space_blend_read_data(), and view3d_space_blend_read_data().
Set grease pencil brush material.
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.
Add a new grease pencil data-block.
| bmain | Main pointer |
| name | Name of the datablock |
Definition at line 679 of file gpencil_legacy.cc.
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_LEGACY, 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(), and view3d_ruler_gpencil_ensure().
Definition at line 906 of file gpencil_legacy.cc.
References BKE_id_copy(), BLI_assert, greasepencil_copy_data(), bGPdata::id, and MEM_dupallocN.
Definition at line 1756 of file gpencil_legacy.cc.
References BKE_gpencil_layer_original_pointers_update(), ListBase::first, bGPDlayer_Runtime::gpl_orig, bGPdata::layers, LISTBASE_FOREACH, bGPDlayer::next, and bGPDlayer::runtime.
Referenced by BKE_gpencil_update_orig_pointers().
Add a copy of the active gp-frame to the given layer.
| gpl | Grease pencil layer |
| cframe | Frame number |
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().
Add a new gp-frame to the given layer.
| gpl | Grease pencil layer |
| cframe | Frame number |
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().
Definition at line 840 of file gpencil_legacy.cc.
References BKE_gpencil_stroke_duplicate(), BLI_addtail(), BLI_listbase_clear(), LISTBASE_FOREACH, MEM_dupallocN, bGPDframe::next, bGPDframe::prev, and bGPDframe::strokes.
Referenced by BKE_gpencil_frame_addcopy(), and BKE_gpencil_layer_duplicate().
| void BKE_gpencil_frame_original_pointers_update | ( | const bGPDframe * | gpf_orig, |
| const bGPDframe * | gpf_eval ) |
Definition at line 1714 of file gpencil_legacy.cc.
References ListBase::first, bGPDstroke_Runtime::gps_orig, bGPDspoint_Runtime::idx_orig, LISTBASE_FOREACH, bGPDstroke::next, bGPDstroke::points, bGPDspoint_Runtime::pt_orig, bGPDspoint::runtime, bGPDstroke::runtime, bGPDframe::strokes, and bGPDstroke::totpoints.
Referenced by BKE_gpencil_layer_original_pointers_update().
| 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 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().
| void BKE_gpencil_free_data | ( | struct bGPdata * | gpd, |
| bool | free_all ) |
Free (or release) any data used by this grease pencil (does not free the gpencil itself).
Definition at line 460 of file gpencil_legacy.cc.
References BKE_gpencil_batch_cache_free(), BKE_gpencil_free_layers(), BKE_gpencil_free_legacy_palette_data(), BKE_gpencil_free_update_cache(), BLI_freelistN(), bGPdata::layers, bGPdata::mat, MEM_SAFE_FREE, and bGPdata::vertex_group_names.
Referenced by animchannels_delete_exec(), gpencil_layer_remove_exec(), gpencil_undo_free_node(), greasepencil_free_data(), and sequencer_free().
| void BKE_gpencil_free_frames | ( | struct bGPDlayer * | gpl | ) |
Free all of a gp-layer's frames.
Definition at line 397 of file gpencil_legacy.cc.
References bGPDlayer::actframe, BKE_gpencil_free_strokes(), BLI_freelinkN(), ListBase::first, bGPDlayer::frames, and bGPDframe::next.
Referenced by BKE_gpencil_free_layers(), and BKE_gpencil_layer_delete().
| void BKE_gpencil_free_layer_masks | ( | bGPDlayer * | gpl | ) |
Definition at line 417 of file gpencil_legacy.cc.
References BLI_freelinkN(), ListBase::first, mask(), bGPDlayer::mask_layers, and bGPDlayer_Mask::next.
Referenced by BKE_gpencil_free_layers(), and BKE_gpencil_layer_delete().
| 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().
| 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().
| void BKE_gpencil_free_point_weights | ( | 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().
| void BKE_gpencil_free_stroke | ( | struct bGPDstroke * | gps | ) |
Free stroke, doesn't unlink from any ListBase.
Definition at line 361 of file gpencil_legacy.cc.
References BKE_gpencil_free_stroke_editcurve(), BKE_gpencil_free_stroke_weights(), bGPDstroke::dvert, bGPDstroke::editcurve, MEM_freeN(), bGPDstroke::points, and bGPDstroke::triangles.
Referenced by BKE_gpencil_free_strokes(), BKE_gpencil_stroke_delete_tagged_points(), and gpencil_stroke_join_islands().
| void BKE_gpencil_free_stroke_editcurve | ( | 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().
| void BKE_gpencil_free_stroke_weights | ( | bGPDstroke * | gps | ) |
Definition at line 331 of file gpencil_legacy.cc.
References BKE_gpencil_free_point_weights(), bGPDstroke::dvert, and bGPDstroke::totpoints.
Referenced by annotation_free_stroke(), BKE_gpencil_free_stroke(), and ED_gpencil_strokes_copybuf_free().
| bool BKE_gpencil_free_strokes | ( | struct bGPDframe * | gpf | ) |
Free strokes belonging to a gp-frame.
Definition at line 384 of file gpencil_legacy.cc.
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(), and view3d_ruler_to_gpencil().
Get the active grease pencil layer for editing.
| gpd | Grease pencil data-block |
Definition at line 1269 of file gpencil_legacy.cc.
References ELEM, ListBase::first, GP_LAYER_ACTIVE, bGPdata::layers, and LISTBASE_FOREACH.
Referenced by annotation_actframe_delete_poll(), annotation_paint_initstroke(), BKE_gpencil_layer_addnew(), BKE_gpencil_layer_autolock_set(), ED_gpencil_drawing_reference_get(), ED_gpencil_set_active_channel(), gpencil_actframe_delete_exec(), gpencil_active_layer_annotation_poll(), gpencil_layer_move_exec(), gpencil_layer_remove_exec(), OVERLAY_gpencil_legacy_cache_init(), and screen_ctx_active_annotation_layer().
Set active grease pencil layer.
| gpd | Grease pencil data-block |
| active | Grease pencil layer to set as active |
Definition at line 1287 of file gpencil_legacy.cc.
References ELEM, ListBase::first, bGPdata::flag, bGPDlayer::flag, GP_DATA_AUTOLOCK_LAYERS, GP_LAYER_ACTIVE, GP_LAYER_LOCKED, bGPdata::layers, and LISTBASE_FOREACH.
Referenced by BKE_gpencil_layer_addnew(), click_select_channel_gplayer(), ED_gpencil_set_active_channel(), gpencil_layer_remove_exec(), blender::ed::outliner::namebutton_fn(), and blender::ed::outliner::tree_element_gplayer_activate().
| 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 595 of file gpencil_legacy.cc.
References ARRAY_SET_ITEMS, BKE_gpencil_layer_active_get(), BKE_gpencil_layer_active_set(), BLI_addhead(), BLI_addtail(), BLI_insertlinkafter(), BLI_uniquename(), bGPDlayer::color, copy_v3_fl(), copy_v4_v4(), DATA_, bGPdata::flag, bGPDlayer::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, offsetof, bGPDlayer::onion_flag, bGPDlayer::opacity, bGPDlayer::rotation, bGPDlayer::scale, STRNCPY_UTF8, bGPDlayer::thickness, bGPDlayer::vertex_paint_opacity, and zero_v3().
Referenced by annotation_paint_initstroke(), gpencil_data_add_exec(), gpencil_layer_add_exec(), and view3d_ruler_to_gpencil().
| void BKE_gpencil_layer_autolock_set | ( | struct bGPdata * | gpd, |
| bool | unlock ) |
Set locked layers for autolock mode.
| gpd | Grease pencil data-block |
| unlock | Unlock 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().
Delete grease pencil layer.
| gpd | Grease pencil data-block |
| gpl | Grease pencil layer |
Definition at line 1339 of file gpencil_legacy.cc.
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, and bGPDlayer::runtime.
Referenced by animchannels_delete_exec(), and gpencil_layer_remove_exec().
| bGPDlayer * BKE_gpencil_layer_duplicate | ( | const bGPDlayer * | gpl_src, |
| const bool | dup_frames, | ||
| const bool | dup_strokes ) |
Definition at line 868 of file gpencil_legacy.cc.
References bGPDlayer::actframe, BKE_gpencil_frame_duplicate(), BKE_gpencil_layer_mask_copy(), BLI_addtail(), BLI_listbase_clear(), bGPDlayer::frames, LISTBASE_FOREACH, MEM_dupallocN, bGPDlayer::next, and bGPDlayer::prev.
Referenced by greasepencil_copy_data().
Delete the given frame from a layer.
| gpl | Grease pencil layer |
| gpf | Grease pencil frame |
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().
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 954 of file gpencil_legacy.cc.
References bGPDlayer::frames, and LISTBASE_FOREACH_BACKWARD.
Referenced by ED_gpencil_select_frame().
| bGPDframe * BKE_gpencil_layer_frame_get | ( | struct bGPDlayer * | gpl, |
| int | cframe, | ||
| eGP_GetFrame_Mode | addnew ) |
Get the appropriate gp-frame from a given layer
actframe var (if allowed to)| gpl | Grease pencil layer |
| cframe | Frame number |
| addnew | Add option |
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().
| void BKE_gpencil_layer_frames_sort | ( | struct bGPDlayer * | gpl, |
| bool * | r_has_duplicate_frames ) |
Sort grease pencil frames.
| gpl | Grease pencil layer |
| r_has_duplicate_frames | Duplicated 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().
| bool BKE_gpencil_layer_is_editable | ( | const bGPDlayer * | gpl | ) |
Definition at line 938 of file gpencil_legacy.cc.
References bGPDlayer::flag, GP_LAYER_HIDE, and GP_LAYER_LOCKED.
Clean any invalid mask layer.
Definition at line 1234 of file gpencil_legacy.cc.
References BKE_gpencil_layer_mask_remove(), BKE_gpencil_layer_named_get(), LISTBASE_FOREACH_MUTABLE, and bGPDlayer::mask_layers.
Definition at line 1224 of file gpencil_legacy.cc.
References BLI_addtail(), BLI_listbase_clear(), LISTBASE_FOREACH, bGPDlayer::mask_layers, MEM_dupallocN, bGPDlayer_Mask::next, and bGPDlayer_Mask::prev.
Referenced by BKE_gpencil_layer_duplicate().
| 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 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().
| void BKE_gpencil_layer_mask_remove_ref | ( | struct bGPdata * | gpd, |
| const char * | name ) |
Remove any reference to mask layer.
| gpd | Grease pencil data-block |
| name | Name 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().
Sort grease pencil mask layers.
| gpd | Grease pencil data-block |
| gpl | Grease 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().
| void BKE_gpencil_layer_mask_sort_all | ( | struct bGPdata * | gpd | ) |
Sort all grease pencil mask layer.
| gpd | Grease 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().
Get layer by name
| gpd | Grease pencil data-block |
| name | Layer name |
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().
| void BKE_gpencil_layer_original_pointers_update | ( | const bGPDlayer * | gpl_orig, |
| const bGPDlayer * | gpl_eval ) |
Definition at line 1742 of file gpencil_legacy.cc.
References BKE_gpencil_frame_original_pointers_update(), ListBase::first, bGPDlayer::frames, bGPDframe_Runtime::gpf_orig, LISTBASE_FOREACH, bGPDframe::next, and bGPDframe::runtime.
Referenced by BKE_gpencil_data_update_orig_pointers().
| void BKE_gpencil_layer_transform_matrix_get | ( | const Depsgraph * | depsgraph, |
| Object * | obact, | ||
| bGPDlayer * | gpl, | ||
| float | diff_mat[4][4] ) |
Definition at line 1779 of file gpencil_legacy.cc.
References add_v3_v3(), BKE_pose_channel_find_name(), copy_m4_m4(), DEG_get_evaluated_object(), depsgraph, ELEM, bGPDlayer::inverse, bGPDlayer::layer_mat, mul_m4_m4m4(), OB_GPENCIL_LEGACY, PARBONE, bGPDlayer::parent, PAROBJECT, PARSKEL, bGPDlayer::parsubstr, bGPDlayer::partype, Object::pose, bPoseChannel::pose_mat, Object::type, and unit_m4().
Find material by name prefix.
| ob | Object pointer |
| name_prefix | Prefix name of the material |
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.
| 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 1394 of file gpencil_legacy.cc.
References BKE_curvemapping_evaluateF(), float, and bGPDframe::framenum.
Referenced by createTransGPencil_curves(), and createTransGPencil_strokes().
Create a default palette.
Definition at line 1425 of file gpencil_legacy.cc.
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(), offsetof, GpPaint::paint, GpVertexPaint::paint, Paint::palette, Main::palettes, and PaletteColor::rgb.
Referenced by BLO_update_defaults_startup_blend(), blender::ed::greasepencil::paintmode_toggle_exec(), and blender::ed::greasepencil::vertexmode_toggle_exec().
| 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 767 of file gpencil_legacy.cc.
References BKE_gpencil_stroke_new(), BLI_addhead(), BLI_addtail(), and bGPDframe::strokes.
| 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 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().
Definition at line 785 of file gpencil_legacy.cc.
References bGPDcurve::curve_points, MEM_callocN, and bGPDcurve::tot_curve_points.
Referenced by BKE_gpencil_stroke_editcurve_generate(), and gpencil_stroke_editcurve_generate_edgecases().
| 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 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().
| 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 798 of file gpencil_legacy.cc.
References BKE_defvert_array_copy(), BLI_assert, bGPDstroke::dvert, and bGPDstroke::totpoints.
Referenced by BKE_gpencil_stroke_duplicate().
| void BKE_gpencil_tag | ( | struct bGPdata * | gpd | ) |
Tag data-block for depsgraph update. Wrapper to avoid include Depsgraph tag functions in other modules.
| gpd | Grease 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().
| void BKE_gpencil_update_layer_transforms | ( | const Depsgraph * | depsgraph, |
| Object * | ob ) |
Definition at line 1827 of file gpencil_legacy.cc.
References BKE_pose_channel_find_name(), BLI_listbase_is_empty(), copy_m4_m4(), Object::data, DEG_get_evaluated_object(), depsgraph, ELEM, equals_m4m4(), GP_LAYER_HIDE, GP_LAYER_ONIONSKIN, is_one_v3(), is_zero_v3(), bGPdata::layers, LISTBASE_FOREACH, loc_eul_size_to_mat4(), mul_m4_m4m4(), mul_m4_series, mul_m4_v3(), bGPDframe::next, OB_GPENCIL_LEGACY, PARBONE, PAROBJECT, PARSKEL, Object::pose, bPoseChannel::pose_mat, Object::type, unit_m4(), and bGPDspoint::x.
Definition at line 1774 of file gpencil_legacy.cc.
References BKE_gpencil_data_update_orig_pointers(), and Object::data.
| void BKE_gpencil_visible_stroke_advanced_iter | ( | ViewLayer * | view_layer, |
| Object * | ob, | ||
| gpIterCb | layer_cb, | ||
| gpIterCb | stroke_cb, | ||
| void * | thunk, | ||
| bool | do_onion, | ||
| int | cfra ) |
Definition at line 1510 of file gpencil_legacy.cc.
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, bGPdata::onion_flag, bGPDframe_Runtime::onion_id, bGPdata::onion_keytype, bGPdata::onion_mode, bGPdata::runtime, bGPDframe::runtime, bGPdata_Runtime::sbuffer_used, STREQ, and bGPDframe::strokes.
|
static |
Definition at line 1243 of file gpencil_legacy.cc.
References b, bGPDframe::flag, bGPDframe::framenum, and GP_FRAME_SELECT.
Referenced by BKE_gpencil_layer_frames_sort().
|
static |
Definition at line 1185 of file gpencil_legacy.cc.
References bGPDlayer_Mask::sort_index.
Referenced by BKE_gpencil_layer_mask_sort().
|
static |
Helper to check if a layers is used as mask
| view_layer | Actual view layer. |
| gpd | Grease pencil data-block. |
| gpl_mask | Actual Layer. |
Definition at line 1481 of file gpencil_legacy.cc.
References GP_LAYER_DISABLE_MASKS_IN_VIEWLAYER, bGPDlayer::info, bGPdata::layers, LISTBASE_FOREACH, ViewLayer::name, and STREQ.
Referenced by BKE_gpencil_visible_stroke_advanced_iter().
|
static |
Definition at line 263 of file gpencil_legacy.cc.
References BKE_gpencil_blend_read_data().
|
static |
Definition at line 138 of file gpencil_legacy.cc.
References BKE_defbase_blend_write(), BKE_defvert_blend_write(), BKE_id_blend_write(), BLO_write_id_struct, BLO_write_pointer_array(), BLO_write_struct, BLO_write_struct_array, BLO_write_struct_list, bGPDcurve::curve_points, bGPdata::id, bGPdata::layers, LISTBASE_FOREACH, bGPdata::mat, bGPdata::runtime, bGPdata_Runtime::sbuffer, bGPdata_Runtime::sbuffer_size, bGPdata_Runtime::sbuffer_used, bGPdata_Runtime::tot_cp_points, bGPDcurve::tot_curve_points, bGPdata::totcol, bGPdata_Runtime::update_cache, and bGPdata::vertex_group_names.
|
static |
Definition at line 63 of file gpencil_legacy.cc.
References bGPDlayer::actframe, BKE_defgroup_copy_list(), BKE_gpencil_layer_duplicate(), BLI_addtail(), BLI_listbase_clear(), ListBase::first, bGPDlayer::frames, GP_LAYER_ONIONSKIN, is_one_v3(), is_zero_v3(), bGPDlayer::layer_mat, bGPdata::layers, LISTBASE_FOREACH, loc_eul_size_to_mat4(), bGPDlayer::location, bGPdata::mat, MEM_dupallocN, mul_m4_v3(), bGPDframe::next, bGPDlayer::onion_flag, bGPDlayer::rotation, bGPDlayer::scale, bGPdata::vertex_group_names, and bGPDspoint::x.
Referenced by BKE_gpencil_data_duplicate().
|
static |
Definition at line 125 of file gpencil_legacy.cc.
References BKE_LIB_FOREACHID_PROCESS_IDSUPER, IDWALK_CB_NOP, IDWALK_CB_USER, bGPdata::layers, LISTBASE_FOREACH, bGPdata::mat, and bGPdata::totcol.
|
static |
Definition at line 118 of file gpencil_legacy.cc.
References BKE_gpencil_free_data().
Definition at line 302 of file gpencil_legacy.cc.
Referenced by BKE_gpencil_batch_cache_dirty_tag(), and DRW_engines_register().
Definition at line 303 of file gpencil_legacy.cc.
Referenced by BKE_gpencil_batch_cache_free(), and DRW_engines_register().
| IDTypeInfo IDType_ID_GD_LEGACY |
Definition at line 269 of file gpencil_legacy.cc.
|
static |
Definition at line 61 of file gpencil_legacy.cc.
Referenced by BKE_gpencil_frame_addnew(), and BKE_gpencil_layer_frame_get().