37 #define GPENCIL_SIMPLIFY(scene) \
38 ((scene->r.mode & R_SIMPLIFY) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_ENABLE))
39 #define GPENCIL_SIMPLIFY_ONPLAY(playing) \
40 (((playing == true) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_ON_PLAY)) || \
41 ((scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_ON_PLAY) == 0))
42 #define GPENCIL_SIMPLIFY_FILL(scene, playing) \
43 ((GPENCIL_SIMPLIFY_ONPLAY(playing) && GPENCIL_SIMPLIFY(scene) && \
44 (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_FILL)))
45 #define GPENCIL_SIMPLIFY_MODIF(scene) \
46 ((GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_MODIFIER)))
47 #define GPENCIL_SIMPLIFY_FX(scene, playing) \
48 ((GPENCIL_SIMPLIFY_ONPLAY(playing) && GPENCIL_SIMPLIFY(scene) && \
49 (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_FX)))
50 #define GPENCIL_SIMPLIFY_TINT(scene) \
51 (GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_TINT))
52 #define GPENCIL_SIMPLIFY_AA(scene) \
53 (GPENCIL_SIMPLIFY(scene) && (scene->r.simplify_gpencil & SIMPLIFY_GPENCIL_AA))
56 #define GPENCIL_USE_VERTEX_COLOR(toolsettings) \
57 (((toolsettings)->gp_paint->mode == GPPAINT_FLAG_USE_VERTEXCOLOR))
58 #define GPENCIL_USE_VERTEX_COLOR_STROKE(toolsettings, brush) \
59 ((GPENCIL_USE_VERTEX_COLOR(toolsettings) && \
60 (((brush)->gpencil_settings->vertex_mode == GPPAINT_MODE_STROKE) || \
61 ((brush)->gpencil_settings->vertex_mode == GPPAINT_MODE_BOTH))))
62 #define GPENCIL_USE_VERTEX_COLOR_FILL(toolsettings, brush) \
63 ((GPENCIL_USE_VERTEX_COLOR(toolsettings) && \
64 (((brush)->gpencil_settings->vertex_mode == GPPAINT_MODE_FILL) || \
65 ((brush)->gpencil_settings->vertex_mode == GPPAINT_MODE_BOTH))))
66 #define GPENCIL_TINT_VERTEX_COLOR_STROKE(brush) \
67 (((brush)->gpencil_settings->vertex_mode == GPPAINT_MODE_STROKE) || \
68 ((brush)->gpencil_settings->vertex_mode == GPPAINT_MODE_BOTH))
69 #define GPENCIL_TINT_VERTEX_COLOR_FILL(brush) \
70 (((brush)->gpencil_settings->vertex_mode == GPPAINT_MODE_FILL) || \
71 ((brush)->gpencil_settings->vertex_mode == GPPAINT_MODE_BOTH))
246 const unsigned int *remap,
247 unsigned int remap_len);
261 struct GHash *r_mat_table);
323 #define GPENCIL_ALPHA_OPACITY_THRESH 0.001f
324 #define GPENCIL_STRENGTH_MIN 0.003f
465 int first_if_not_found);
497 struct Brush *brush);
542 struct Brush *brush);
568 struct Brush *brush);
698 const struct bGPdata *gpd_eval);
710 float diff_mat[4][4]);
void BKE_gpencil_eval_delete(struct bGPdata *gpd_eval)
bool BKE_gpencil_free_strokes(struct bGPDframe *gpf)
void BKE_gpencil_curve_sync_selection(struct bGPdata *gpd, struct bGPDstroke *gps)
void BKE_gpencil_stroke_select_index_set(struct bGPdata *gpd, struct bGPDstroke *gps)
struct Material * BKE_gpencil_brush_material_get(struct Brush *brush)
struct bGPDframe * BKE_gpencil_frame_addnew(struct bGPDlayer *gpl, int cframe)
void BKE_gpencil_layer_active_set(struct bGPdata *gpd, struct bGPDlayer *active)
struct Material * BKE_gpencil_object_material_new(struct Main *bmain, struct Object *ob, const char *name, int *r_index)
struct Material * BKE_gpencil_object_material_ensure_by_name(struct Main *bmain, struct Object *ob, const char *name, int *r_index)
struct bGPDlayer_Mask * BKE_gpencil_layer_mask_named_get(struct bGPDlayer *gpl, const char *name)
void BKE_gpencil_free_data(struct bGPdata *gpd, bool free_all)
void BKE_gpencil_layer_mask_sort(struct bGPdata *gpd, struct bGPDlayer *gpl)
struct bGPDstroke * BKE_gpencil_stroke_duplicate(struct bGPDstroke *gps_src, bool dup_points, bool dup_curve)
struct bGPDframe * BKE_gpencil_frame_duplicate(const struct bGPDframe *gpf_src, bool dup_strokes)
bool BKE_gpencil_material_index_used(struct bGPdata *gpd, int index)
void BKE_gpencil_batch_cache_dirty_tag(struct bGPdata *gpd)
struct bGPDlayer * BKE_gpencil_layer_active_get(struct bGPdata *gpd)
struct bGPDframe * BKE_gpencil_frame_addcopy(struct bGPDlayer *gpl, int cframe)
void BKE_gpencil_free_stroke_weights(struct bGPDstroke *gps)
int BKE_gpencil_object_material_ensure(struct Main *bmain, struct Object *ob, struct Material *material)
void BKE_gpencil_material_remap(struct bGPdata *gpd, const unsigned int *remap, unsigned int remap_len)
void BKE_gpencil_material_index_reassign(struct bGPdata *gpd, int totcol, int index)
void BKE_gpencil_layer_mask_sort_all(struct bGPdata *gpd)
float BKE_gpencil_multiframe_falloff_calc(struct bGPDframe *gpf, int actnum, int f_init, int f_end, struct CurveMapping *cur_falloff)
struct Material * BKE_gpencil_object_material_ensure_active(struct Object *ob)
struct bGPDlayer * BKE_gpencil_layer_duplicate(const struct bGPDlayer *gpl_src, bool dup_frames, bool dup_strokes)
void BKE_gpencil_frame_delete_laststroke(struct bGPDlayer *gpl, struct bGPDframe *gpf)
void BKE_gpencil_layer_mask_copy(const struct bGPDlayer *gpl_src, struct bGPDlayer *gpl_dst)
void BKE_gpencil_free_point_weights(struct MDeformVert *dvert)
void BKE_gpencil_palette_ensure(struct Main *bmain, struct Scene *scene)
struct bGPDcurve * BKE_gpencil_stroke_editcurve_new(int tot_curve_points)
void(* gpIterCb)(struct bGPDlayer *layer, struct bGPDframe *frame, struct bGPDstroke *stroke, void *thunk)
void BKE_gpencil_stroke_select_index_reset(struct bGPDstroke *gps)
struct bGPDstroke * BKE_gpencil_stroke_add_existing_style(struct bGPDframe *gpf, struct bGPDstroke *existing, int mat_idx, int totpoints, short thickness)
void BKE_gpencil_free_frames(struct bGPDlayer *gpl)
struct bGPDcurve * BKE_gpencil_stroke_curve_duplicate(struct bGPDcurve *gpc_src)
void BKE_gpencil_layer_mask_remove(struct bGPDlayer *gpl, struct bGPDlayer_Mask *mask)
struct bGPDlayer_Mask * BKE_gpencil_layer_mask_add(struct bGPDlayer *gpl, const char *name)
void BKE_gpencil_frame_active_set(struct Depsgraph *depsgraph, struct bGPdata *gpd)
struct bGPDlayer * BKE_gpencil_layer_addnew(struct bGPdata *gpd, const char *name, bool setactive, bool add_to_header)
void BKE_gpencil_layer_frames_sort(struct bGPDlayer *gpl, bool *r_has_duplicate_frames)
void BKE_gpencil_layer_original_pointers_update(const struct bGPDlayer *gpl_orig, const struct bGPDlayer *gpl_eval)
bool BKE_gpencil_can_avoid_full_copy_on_write(const struct Depsgraph *depsgraph, struct bGPdata *gpd)
void BKE_gpencil_stroke_copy_settings(const struct bGPDstroke *gps_src, struct bGPDstroke *gps_dst)
void BKE_gpencil_dvert_ensure(struct bGPDstroke *gps)
bool BKE_gpencil_layer_is_editable(const struct bGPDlayer *gpl)
bool BKE_gpencil_layer_frame_delete(struct bGPDlayer *gpl, struct bGPDframe *gpf)
void BKE_gpencil_stats_update(struct bGPdata *gpd)
struct bGPDstroke * BKE_gpencil_stroke_add(struct bGPDframe *gpf, int mat_idx, int totpoints, short thickness, bool insert_at_head)
bool BKE_gpencil_from_image(struct SpaceImage *sima, struct bGPdata *gpd, struct bGPDframe *gpf, float size, bool mask)
void BKE_gpencil_layer_mask_remove_ref(struct bGPdata *gpd, const char *name)
void BKE_gpencil_visible_stroke_iter(struct bGPdata *gpd, gpIterCb layer_cb, gpIterCb stroke_cb, void *thunk)
void BKE_gpencil_data_copy_settings(const struct bGPdata *gpd_src, struct bGPdata *gpd_dst)
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)
int BKE_gpencil_object_material_index_get_by_name(struct Object *ob, const char *name)
struct Material * BKE_gpencil_object_material_ensure_from_active_input_material(struct Object *ob)
void BKE_gpencil_data_update_orig_pointers(const struct bGPdata *gpd_orig, const struct bGPdata *gpd_eval)
bool BKE_gpencil_stroke_select_check(const struct bGPDstroke *gps)
struct Material * BKE_gpencil_object_material_ensure_from_active_input_brush(struct Main *bmain, struct Object *ob, struct Brush *brush)
void BKE_gpencil_blend_read_data(struct BlendDataReader *reader, struct bGPdata *gpd)
int BKE_gpencil_object_material_index_get(struct Object *ob, struct Material *ma)
struct bGPDstroke * BKE_gpencil_stroke_new(int mat_idx, int totpoints, short thickness)
void BKE_gpencil_update_on_write(struct bGPdata *gpd_orig, struct bGPdata *gpd_eval)
void BKE_gpencil_free_layer_masks(struct bGPDlayer *gpl)
void BKE_gpencil_frame_copy_settings(const struct bGPDframe *gpf_src, struct bGPDframe *gpf_dst)
void BKE_gpencil_frame_range_selected(struct bGPDlayer *gpl, int *r_initframe, int *r_endframe)
void BKE_gpencil_frame_original_pointers_update(const struct bGPDframe *gpf_orig, const struct bGPDframe *gpf_eval)
void BKE_gpencil_layer_mask_cleanup(struct bGPdata *gpd, struct bGPDlayer *gpl)
void BKE_gpencil_update_layer_transforms(const struct Depsgraph *depsgraph, struct Object *ob)
void BKE_gpencil_free_stroke_editcurve(struct bGPDstroke *gps)
struct bGPDlayer * BKE_gpencil_layer_named_get(struct bGPdata *gpd, const char *name)
struct bGPDframe * BKE_gpencil_layer_frame_find(struct bGPDlayer *gpl, int cframe)
bool BKE_gpencil_merge_materials(struct Object *ob, float hue_threshold, float sat_threshold, float val_threshold, int *r_removed)
struct bGPDlayer * BKE_gpencil_layer_get_by_name(struct bGPdata *gpd, char *name, int first_if_not_found)
void BKE_gpencil_free_stroke(struct bGPDstroke *gps)
struct Material * BKE_gpencil_object_material_ensure_from_active_input_toolsettings(struct Main *bmain, struct Object *ob, struct ToolSettings *ts)
struct Material * BKE_gpencil_object_material_from_brush_get(struct Object *ob, struct Brush *brush)
void BKE_gpencil_vgroup_remove(struct Object *ob, struct bDeformGroup *defgroup)
struct bGPDframe * BKE_gpencil_layer_frame_get(struct bGPDlayer *gpl, int cframe, eGP_GetFrame_Mode addnew)
int BKE_gpencil_object_material_get_index_from_brush(struct Object *ob, struct Brush *brush)
void(* BKE_gpencil_batch_cache_dirty_tag_cb)(struct bGPdata *gpd)
struct bGPdata * BKE_gpencil_data_addnew(struct Main *bmain, const char name[])
void BKE_gpencil_update_orig_pointers(const struct Object *ob_orig, const struct Object *ob_eval)
void BKE_gpencil_layer_transform_matrix_get(const struct Depsgraph *depsgraph, struct Object *obact, struct bGPDlayer *gpl, float diff_mat[4][4])
struct Material * BKE_gpencil_object_material_ensure_from_brush(struct Main *bmain, struct Object *ob, struct Brush *brush)
bool BKE_gpencil_merge_materials_table_get(struct Object *ob, float hue_threshold, float sat_threshold, float val_threshold, struct GHash *r_mat_table)
int BKE_gpencil_material_find_index_by_name_prefix(struct Object *ob, const char *name_prefix)
void BKE_gpencil_batch_cache_free(struct bGPdata *gpd)
void BKE_gpencil_frame_copy_strokes(struct bGPDframe *gpf_src, struct bGPDframe *gpf_dst)
void BKE_gpencil_layer_mask_cleanup_all_layers(struct bGPdata *gpd)
void BKE_gpencil_layer_delete(struct bGPdata *gpd, struct bGPDlayer *gpl)
struct bGPdata * BKE_gpencil_data_duplicate(struct Main *bmain, const struct bGPdata *gpd, bool internal_copy)
void BKE_gpencil_free_layers(struct ListBase *list)
void(* BKE_gpencil_batch_cache_free_cb)(struct bGPdata *gpd)
void BKE_gpencil_stroke_weights_duplicate(struct bGPDstroke *gps_src, struct bGPDstroke *gps_dst)
void BKE_gpencil_tag(struct bGPdata *gpd)
void BKE_gpencil_frame_selected_hash(struct bGPdata *gpd, struct GHash *r_list)
void BKE_gpencil_brush_material_set(struct Brush *brush, struct Material *material)
void BKE_gpencil_layer_autolock_set(struct bGPdata *gpd, bool unlock)
void BKE_gpencil_layer_copy_settings(const struct bGPDlayer *gpl_src, struct bGPDlayer *gpl_dst)
void BKE_gpencil_stroke_sync_selection(struct bGPdata *gpd, struct bGPDstroke *gps)
struct Depsgraph Depsgraph
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
const Depsgraph * depsgraph
SyclQueue void void size_t num_bytes void
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
bool active
all scheduled work for the GPU.