105 bool only_use_existing_gp_frames =
false;
106 bGPDframe *gpf = (only_use_existing_gp_frames ?
164 bool touched =
false;
262 bool bake_all_targets,
267 if (!bake_all_targets) {
321 float pseduo_progress;
322 short pseduo_do_update;
418 ot->
name =
"Bake Line Art";
419 ot->
description =
"Bake Line Art for current GPencil object";
420 ot->
idname =
"OBJECT_OT_lineart_bake_strokes";
430 ot->
name =
"Bake Line Art (All)";
431 ot->
description =
"Bake all Grease Pencil objects that have a line art modifier";
432 ot->
idname =
"OBJECT_OT_lineart_bake_strokes_all";
442 ot->
name =
"Clear Baked Line Art";
443 ot->
description =
"Clear all strokes in current GPencil object";
444 ot->
idname =
"OBJECT_OT_lineart_clear";
452 ot->
name =
"Clear Baked Line Art (All)";
453 ot->
description =
"Clear all strokes in all Grease Pencil objects that have a line art modifier";
454 ot->
idname =
"OBJECT_OT_lineart_clear_all";
typedef float(TangentPoint)[2]
struct Scene * CTX_data_scene(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
#define CTX_DATA_BEGIN(C, Type, instance, member)
struct Object * CTX_data_active_object(const bContext *C)
struct Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
struct bGPDframe * BKE_gpencil_frame_addnew(struct bGPDlayer *gpl, int cframe)
void BKE_gpencil_free_frames(struct bGPDlayer *gpl)
bool BKE_gpencil_layer_frame_delete(struct bGPDlayer *gpl, struct bGPDframe *gpf)
int BKE_gpencil_object_material_index_get(struct Object *ob, struct Material *ma)
struct bGPDframe * BKE_gpencil_layer_frame_find(struct bGPDlayer *gpl, int cframe)
struct bGPDlayer * BKE_gpencil_layer_get_by_name(struct bGPdata *gpd, char *name, int first_if_not_found)
struct bGPDframe * BKE_gpencil_layer_frame_get(struct bGPDlayer *gpl, int cframe, eGP_GetFrame_Mode addnew)
const GpencilModifierTypeInfo * BKE_gpencil_modifier_get_info(GpencilModifierType type)
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_scene_frame_set(struct Scene *scene, double cfra)
void BKE_scene_graph_update_for_newframe(struct Depsgraph *depsgraph)
void BLI_linklist_free(LinkNode *list, LinkNodeFreeFP freefunc)
void void BLI_linklist_prepend(LinkNode **listp, void *ptr) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
struct Depsgraph Depsgraph
void DEG_id_tag_update(struct ID *id, int flag)
@ eGpencilModifierMode_Render
@ eGpencilModifierMode_Realtime
@ eGpencilModifierType_Lineart
Read Guarded memory(de)allocation.
ATTR_WARN_UNUSED_RESULT const BMLoop * l
void MOD_lineart_destroy_render_data(LineartGpencilModifierData *lmd)
bool MOD_lineart_compute_feature_lines(Depsgraph *depsgraph, LineartGpencilModifierData *lmd)
void MOD_lineart_gpencil_generate(LineartRenderBuffer *rb, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, char source_type, void *source_reference, int level_start, int level_end, int mat_nr, short edge_types, uchar transparency_flags, uchar transparency_mask, short thickness, float opacity, const char *source_vgname, const char *vgname, int modifier_flags)
static bool lineart_mod_is_disabled(GpencilModifierData *md)
void OBJECT_OT_lineart_bake_strokes_all(wmOperatorType *ot)
static int lineart_gpencil_bake_strokes_all_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int lineart_gpencil_clear_strokes_exec(bContext *C, wmOperator *UNUSED(op))
static void lineart_gpencil_bake_endjob(void *customdata)
void OBJECT_OT_lineart_bake_strokes(wmOperatorType *ot)
static void lineart_gpencil_guard_modifiers(LineartBakeJob *bj)
static int lineart_gpencil_bake_strokes_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void OBJECT_OT_lineart_clear_all(wmOperatorType *ot)
void OBJECT_OT_lineart_clear(wmOperatorType *ot)
static int lineart_gpencil_clear_strokes_all_exec(bContext *C, wmOperator *op)
static int lineart_gpencil_bake_strokes_exec(bContext *C, wmOperator *op)
static bool lineart_gpencil_bake_single_target(LineartBakeJob *bj, Object *ob, int frame)
static void lineart_gpencil_bake_startjob(void *customdata, short *stop, short *do_update, float *progress)
static int lineart_gpencil_bake_common(bContext *C, wmOperator *op, bool bake_all_targets, bool do_background)
void WM_operatortypes_lineart(void)
static int lineart_gpencil_bake_strokes_all_exec(bContext *C, wmOperator *op)
static int lineart_gpencil_bake_strokes_commom_modal(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static void lineart_gpencil_clear_strokes_exec_common(Object *ob)
struct LineartBakeJob LineartBakeJob
static bool bake_strokes(Object *ob, Depsgraph *dg, GpencilModifierData *md, int frame)
static void clear_strokes(Object *ob, GpencilModifierData *md, int frame)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
bool(* isDisabled)(struct GpencilModifierData *md, int userRenderParams)
struct Collection * source_collection
char source_vertex_group[64]
unsigned char transparency_flags
unsigned char transparency_mask
struct Material * target_material
struct Object * source_object
ListBase greasepencil_modifiers
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
int(* modal)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_report(ReportType type, const char *message)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_set_locked_interface(wmWindowManager *wm, bool lock)
void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
wmJob * WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag, int job_type)
bool WM_jobs_test(wmWindowManager *wm, void *owner, int job_type)
void WM_jobs_callbacks(wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *))
void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void(*free)(void *))
void WM_jobs_timer(wmJob *wm_job, double timestep, unsigned int note, unsigned int endnote)
void WM_operatortype_append(void(*opfunc)(wmOperatorType *))