Blender  V3.3
ED_gpencil.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2008 Blender Foundation. */
3 
8 #pragma once
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 struct ID;
15 struct ListBase;
16 struct PointerRNA;
17 
18 struct Brush;
19 struct GP_SpaceConversion;
20 struct GpRandomSettings;
21 struct bGPDframe;
22 struct bGPDlayer;
23 struct bGPDspoint;
24 struct bGPDstroke;
25 struct bGPdata;
26 struct tGPspoint;
27 
28 struct ARegion;
29 struct Depsgraph;
30 struct Main;
31 struct RegionView3D;
32 struct ReportList;
33 struct Scene;
34 struct ScrArea;
35 struct SnapObjectContext;
36 struct ToolSettings;
37 struct View3D;
38 struct bContext;
39 
40 struct Material;
41 struct Object;
42 
43 struct KeyframeEditData;
44 struct bAnimContext;
45 
46 struct wmKeyConfig;
47 struct wmOperator;
48 
49 #define GPENCIL_MINIMUM_JOIN_DIST 20.0f
50 
51 /* Reproject stroke modes. */
52 typedef enum eGP_ReprojectModes {
53  /* Axis */
57  /* On same plane, parallel to view-plane. */
59  /* Reprojected on to the scene geometry */
61  /* Reprojected on 3D cursor orientation */
63  /* Keep equals (used in some operators) */
66 
67 /* Target object modes. */
68 typedef enum eGP_TargetObjectMode {
72 
73 /* ------------- Grease-Pencil Runtime Data ---------------- */
74 
75 /* Temporary 'Stroke Point' data (2D / screen-space)
76  *
77  * Used as part of the 'stroke cache' used during drawing of new strokes
78  */
79 typedef struct tGPspoint {
81  float m_xy[2];
83  float pressure;
85  float strength;
87  float time;
89  float uv_fac;
91  float uv_rot;
93  float rnd[3];
95  bool rnd_dirty;
97  float vert_color[4];
99 
100 /* ----------- Grease Pencil Tools/Context ------------- */
101 
102 /* Context-dependent */
103 
108 struct bGPdata **ED_gpencil_data_get_pointers(const struct bContext *C, struct PointerRNA *r_ptr);
109 
123 
132  struct Object *ob,
133  struct PointerRNA *r_ptr);
134 /* Get the active Grease Pencil data-block, when context is not available */
135 struct bGPdata *ED_gpencil_data_get_active_direct(struct ScrArea *area, struct Object *ob);
136 
148  struct PointerRNA *r_ptr);
154 struct bGPdata **ED_annotation_data_get_pointers_direct(struct ID *screen_id,
155  struct ScrArea *area,
156  struct Scene *scene,
157  struct PointerRNA *r_ptr);
161 struct bGPdata *ED_annotation_data_get_active_direct(struct ID *screen_id,
162  struct ScrArea *area,
163  struct Scene *scene);
164 
169 bool ED_gpencil_data_owner_is_annotation(struct PointerRNA *owner_ptr);
170 
171 /* 3D View */
172 
176 bool ED_gpencil_has_keyframe_v3d(struct Scene *scene, struct Object *ob, int cfra);
177 
178 /* ----------- Stroke Editing Utilities ---------------- */
180 bool ED_gpencil_layer_has_selected_stroke(const struct bGPDlayer *gpl, bool is_multiedit);
181 
186 bool ED_gpencil_stroke_can_use_direct(const struct ScrArea *area, const struct bGPDstroke *gps);
187 /* Check whether given stroke can be edited in the current context */
188 bool ED_gpencil_stroke_can_use(const struct bContext *C, const struct bGPDstroke *gps);
189 /* Check whether given stroke can be edited for the current color */
191  const struct bGPDlayer *gpl,
192  const struct bGPDstroke *gps);
193 /* Check whether given stroke is visible for the current material. */
194 bool ED_gpencil_stroke_material_visible(struct Object *ob, const struct bGPDstroke *gps);
195 
196 /* ----------- Grease Pencil Operators ----------------- */
197 
198 void ED_keymap_gpencil(struct wmKeyConfig *keyconf);
199 
200 void ED_operatortypes_gpencil(void);
201 void ED_operatormacros_gpencil(void);
202 
203 /* ------------- Copy-Paste Buffers -------------------- */
204 
205 /* Strokes copybuf */
206 
211 
212 /* ------------ Grease-Pencil Drawing API ------------------ */
213 /* drawgpencil.c */
214 
226 void ED_annotation_draw_view2d(const struct bContext *C, bool onlyv2d);
233  struct Depsgraph *depsgraph,
234  struct View3D *v3d,
235  struct ARegion *region,
236  bool only3d);
238  struct Scene *scene, struct bGPdata *gpd, int winx, int winy, int cfra, char spacetype);
239 
240 /* ----------- Grease-Pencil AnimEdit API ------------------ */
245  struct Scene *scene,
246  bool (*gpf_cb)(struct bGPDframe *, struct Scene *));
250 void ED_gpencil_layer_make_cfra_list(struct bGPDlayer *gpl, ListBase *elems, bool onlysel);
251 
259 void ED_gpencil_layer_frame_select_set(struct bGPDlayer *gpl, short mode);
264  float min,
265  float max,
266  short select_mode);
271  struct bGPDlayer *gpl,
272  short tool,
273  short select_mode);
277 void ED_gpencil_select_frames(struct bGPDlayer *gpl, short select_mode);
281 void ED_gpencil_select_frame(struct bGPDlayer *gpl, int selx, short select_mode);
282 
286 void ED_gpencil_set_active_channel(struct bGPdata *gpd, struct bGPDlayer *gpl);
287 
291 bool ED_gpencil_layer_frames_delete(struct bGPDlayer *gpl);
296 
300 void ED_gpencil_layer_merge(struct bGPdata *gpd,
301  struct bGPDlayer *gpl_src,
302  struct bGPDlayer *gpl_dst,
303  bool reverse);
304 
310 void ED_gpencil_layer_frames_keytype_set(struct bGPDlayer *gpl, short type);
314 void ED_gpencil_layer_snap_frames(struct bGPDlayer *gpl, struct Scene *scene, short mode);
315 
320 void ED_gpencil_layer_mirror_frames(struct bGPDlayer *gpl, struct Scene *scene, short mode);
321 
336 bool ED_gpencil_anim_copybuf_paste(struct bAnimContext *ac, short copy_mode);
337 
338 /* ------------ Grease-Pencil Undo System ------------------ */
339 int ED_gpencil_session_active(void);
343 int ED_undo_gpencil_step(struct bContext *C, int step); /* eUndoStepDir. */
344 
345 /* ------------ Grease-Pencil Armature ------------------ */
346 bool ED_gpencil_add_armature(const struct bContext *C,
347  struct ReportList *reports,
348  struct Object *ob,
349  struct Object *ob_arm);
351  struct ReportList *reports,
352  struct Object *ob,
353  struct Object *ob_arm,
354  int mode);
355 
361  struct ReportList *reports,
362  struct Object *ob,
363  struct Object *ob_latt);
364 
365 /* keep this aligned with gpencil_armature enum */
366 #define GP_PAR_ARMATURE_NAME 0
367 #define GP_PAR_ARMATURE_AUTO 1
368 
369 /* ------------ Transformation Utilities ------------ */
370 
375  struct Object *obact,
376  struct bGPdata *gpd);
377 
378 /* Cursor utilities. */
379 
383 void ED_gpencil_brush_draw_eraser(struct Brush *brush, int x, int y);
384 
385 /* ----------- Add Primitive Utilities -------------- */
386 
388 #define GP_PRIM_DATABUF_SIZE 5
396 void ED_gpencil_stroke_init_data(struct bGPDstroke *gps,
397  const float *array,
398  int totpoints,
399  const float mat[4][4]);
400 
404 void ED_gpencil_create_blank(struct bContext *C, struct Object *ob, float mat[4][4]);
408 void ED_gpencil_create_monkey(struct bContext *C, struct Object *ob, float mat[4][4]);
413 void ED_gpencil_create_stroke(struct bContext *C, struct Object *ob, float mat[4][4]);
417 void ED_gpencil_create_lineart(struct bContext *C, struct Object *ob);
418 
419 /* ------------ Object Utilities ------------ */
423 struct Object *ED_gpencil_add_object(struct bContext *C,
424  const float loc[3],
425  unsigned short local_view_bits);
429 void ED_gpencil_add_defaults(struct bContext *C, struct Object *ob);
433 void ED_gpencil_setup_modes(struct bContext *C, struct bGPdata *gpd, int newmode);
434 bool ED_object_gpencil_exit(struct Main *bmain, struct Object *ob);
435 
440  const struct Object *ob,
441  const struct RegionView3D *rv3d,
442  struct bGPDlayer *gpl,
443  struct bGPDstroke *gps,
444  const float origin[3],
445  int axis);
451  const struct Object *ob,
452  struct bGPDlayer *gpl,
453  const struct RegionView3D *rv3d,
454  const float origin[3],
455  int axis,
456  struct bGPDspoint *pt);
462  const struct Object *ob,
463  char align_flag,
464  float r_vec[3]);
466  struct bGPDlayer *gpl,
467  struct bGPDstroke *gps);
468 
473  const struct GP_SpaceConversion *gsc,
474  struct SnapObjectContext *sctx,
475  struct bGPDlayer *gpl,
476  struct bGPDframe *gpf,
477  struct bGPDstroke *gps,
479  bool keep_original);
480 
484 void ED_gpencil_toggle_brush_cursor(struct bContext *C, bool enable, void *customdata);
485 
486 /* vertex groups */
487 
491 void ED_gpencil_vgroup_assign(struct bContext *C, struct Object *ob, float weight);
495 void ED_gpencil_vgroup_remove(struct bContext *C, struct Object *ob);
499 void ED_gpencil_vgroup_select(struct bContext *C, struct Object *ob);
503 void ED_gpencil_vgroup_deselect(struct bContext *C, struct Object *ob);
504 
505 /* join objects */
506 
510 int ED_gpencil_join_objects_exec(struct bContext *C, struct wmOperator *op);
511 
512 /* texture coordinate utilities */
513 
518  float origin[3],
519  const struct tGPspoint *tpt,
520  struct bGPDspoint *pt);
524 void ED_gpencil_update_color_uv(struct Main *bmain, struct Material *mat);
525 
535  struct bGPDlayer *gpl,
536  struct bGPDstroke *gps,
537  struct bGPDspoint *pt,
538  bool select,
539  bool insert,
540  float scale,
541  float r_hita[3],
542  float r_hitb[3]);
543 
544 void ED_gpencil_select_toggle_all(struct bContext *C, int action);
545 void ED_gpencil_select_curve_toggle_all(struct bContext *C, int action);
546 
551 struct tGPspoint *ED_gpencil_sbuffer_ensure(struct tGPspoint *buffer_array,
552  int *buffer_size,
553  int *buffer_used,
554  bool clear);
555 void ED_gpencil_sbuffer_update_eval(struct bGPdata *gpd, struct Object *ob_eval);
556 
561 
562 /* Vertex color set. */
563 
565  struct Brush *brush,
566  struct bGPDstroke *gps);
568  struct Brush *brush,
569  struct bGPDspoint *pt,
570  struct tGPspoint *tpt);
572  struct Object *ob,
573  struct ToolSettings *ts,
574  struct Brush *brush,
575  struct Material *material,
576  float random_color[3],
577  float pen_pressure);
578 void ED_gpencil_init_random_settings(struct Brush *brush,
579  const int mval[2],
580  struct GpRandomSettings *random_settings);
581 
586  struct bGPDstroke *gps,
587  const float mval[2],
588  int radius,
589  const float diff_mat[4][4]);
600  const struct GP_SpaceConversion *gsc,
601  const int mval[2],
602  const float diff_mat[4][4]);
607  const struct bGPDstroke *gps,
608  const float diff_mat[4][4],
609  float r_min[2],
610  float r_max[2]);
611 
613  const struct GP_SpaceConversion *gsc,
614  struct bGPDlayer *gpl,
615  struct bGPDframe *gpf,
616  struct bGPDstroke *gps,
617  const float ctrl1[2],
618  const float ctrl2[2],
619  float radius,
620  int *r_index);
625  const float diff_mat[4][4],
626  struct bGPDstroke *gps,
627  float r_ctrl1[2],
628  float r_ctrl2[2]);
629 
634  struct bGPDframe *gpf,
635  struct bGPDstroke *gps,
636  struct bGPDstroke *gps_dst,
637  int pt_index);
638 
643 
644 #ifdef __cplusplus
645 }
646 #endif
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:35
void ED_gpencil_layer_frames_keytype_set(struct bGPDlayer *gpl, short type)
void ED_annotation_draw_ex(struct Scene *scene, struct bGPdata *gpd, int winx, int winy, int cfra, char spacetype)
void ED_gpencil_create_blank(struct bContext *C, struct Object *ob, float mat[4][4])
void ED_gpencil_strokes_copybuf_free(void)
void ED_gpencil_point_vertex_color_set(struct ToolSettings *ts, struct Brush *brush, struct bGPDspoint *pt, struct tGPspoint *tpt)
struct bGPdata ** ED_annotation_data_get_pointers(const struct bContext *C, struct PointerRNA *r_ptr)
struct bGPdata ** ED_gpencil_data_get_pointers_direct(struct ScrArea *area, struct Object *ob, struct PointerRNA *r_ptr)
Definition: gpencil_utils.c:85
bool ED_gpencil_anim_copybuf_paste(struct bAnimContext *ac, short copy_mode)
void ED_gpencil_sbuffer_vertex_color_set(struct Depsgraph *depsgraph, struct Object *ob, struct ToolSettings *ts, struct Brush *brush, struct Material *material, float random_color[3], float pen_pressure)
struct bGPdata * ED_gpencil_data_get_active_direct(struct ScrArea *area, struct Object *ob)
void ED_gpencil_vgroup_select(struct bContext *C, struct Object *ob)
struct bGPdata * ED_annotation_data_get_active(const struct bContext *C)
struct bGPdata ** ED_annotation_data_get_pointers_direct(struct ID *screen_id, struct ScrArea *area, struct Scene *scene, struct PointerRNA *r_ptr)
int ED_gpencil_join_objects_exec(struct bContext *C, struct wmOperator *op)
void ED_gpencil_projected_2d_bound_box(const struct GP_SpaceConversion *gsc, const struct bGPDstroke *gps, const float diff_mat[4][4], float r_min[2], float r_max[2])
void ED_gpencil_set_active_channel(struct bGPdata *gpd, struct bGPDlayer *gpl)
void ED_operatormacros_gpencil(void)
Definition: gpencil_ops.c:690
void ED_gpencil_reset_layers_parent(struct Depsgraph *depsgraph, struct Object *obact, struct bGPdata *gpd)
struct bGPdata ** ED_gpencil_data_get_pointers(const struct bContext *C, struct PointerRNA *r_ptr)
void ED_gpencil_drawing_reference_get(const struct Scene *scene, const struct Object *ob, char align_flag, float r_vec[3])
bool ED_gpencil_anim_copybuf_copy(struct bAnimContext *ac)
bool ED_gpencil_layer_has_selected_stroke(const struct bGPDlayer *gpl, bool is_multiedit)
void ED_gpencil_layer_frames_duplicate(struct bGPDlayer *gpl)
bool ED_gpencil_has_keyframe_v3d(struct Scene *scene, struct Object *ob, int cfra)
struct bGPdata * ED_gpencil_data_get_active_evaluated(const struct bContext *C)
void ED_gpencil_tpoint_to_point(struct ARegion *region, float origin[3], const struct tGPspoint *tpt, struct bGPDspoint *pt)
void ED_gpencil_toggle_brush_cursor(struct bContext *C, bool enable, void *customdata)
void ED_gpencil_brush_draw_eraser(struct Brush *brush, int x, int y)
bool ED_gpencil_stroke_check_collision(const struct GP_SpaceConversion *gsc, struct bGPDstroke *gps, const float mval[2], int radius, const float diff_mat[4][4])
bool ED_gpencil_add_armature(const struct bContext *C, struct ReportList *reports, struct Object *ob, struct Object *ob_arm)
struct tGPspoint * ED_gpencil_sbuffer_ensure(struct tGPspoint *buffer_array, int *buffer_size, int *buffer_used, bool clear)
void ED_gpencil_layer_make_cfra_list(struct bGPDlayer *gpl, ListBase *elems, bool onlysel)
void ED_gpencil_layer_frames_select_box(struct bGPDlayer *gpl, float min, float max, short select_mode)
void ED_gpencil_tag_scene_gpencil(struct Scene *scene)
void ED_gpencil_add_defaults(struct bContext *C, struct Object *ob)
void ED_gpencil_stroke_close_by_distance(struct bGPDstroke *gps, float threshold)
struct Object * ED_gpencil_add_object(struct bContext *C, const float loc[3], unsigned short local_view_bits)
void ED_gpencil_select_frames(struct bGPDlayer *gpl, short select_mode)
void ED_gpencil_vgroup_deselect(struct bContext *C, struct Object *ob)
int ED_gpencil_session_active(void)
Definition: gpencil_undo.c:44
void ED_gpencil_create_monkey(struct bContext *C, struct Object *ob, float mat[4][4])
void ED_annotation_draw_view2d(const struct bContext *C, bool onlyv2d)
eGP_TargetObjectMode
Definition: ED_gpencil.h:68
@ GP_TARGET_OB_SELECTED
Definition: ED_gpencil.h:70
@ GP_TARGET_OB_NEW
Definition: ED_gpencil.h:69
struct bGPDstroke * ED_gpencil_stroke_nearest_to_ends(struct bContext *C, const struct GP_SpaceConversion *gsc, struct bGPDlayer *gpl, struct bGPDframe *gpf, struct bGPDstroke *gps, const float ctrl1[2], const float ctrl2[2], float radius, int *r_index)
int ED_undo_gpencil_step(struct bContext *C, int step)
Definition: gpencil_undo.c:49
void ED_gpencil_update_color_uv(struct Main *bmain, struct Material *mat)
bool ED_gpencil_stroke_can_use_direct(const struct ScrArea *area, const struct bGPDstroke *gps)
void ED_gpencil_select_frame(struct bGPDlayer *gpl, int selx, short select_mode)
void ED_gpencil_setup_modes(struct bContext *C, struct bGPdata *gpd, int newmode)
bool ED_gpencil_stroke_material_editable(struct Object *ob, const struct bGPDlayer *gpl, const struct bGPDstroke *gps)
struct bGPdata * ED_gpencil_data_get_active(const struct bContext *C)
void ED_gpencil_init_random_settings(struct Brush *brush, const int mval[2], struct GpRandomSettings *random_settings)
bool ED_object_gpencil_exit(struct Main *bmain, struct Object *ob)
void ED_gpencil_stroke_extremes_to2d(const struct GP_SpaceConversion *gsc, const float diff_mat[4][4], struct bGPDstroke *gps, float r_ctrl1[2], float r_ctrl2[2])
void ED_keymap_gpencil(struct wmKeyConfig *keyconf)
Definition: gpencil_ops.c:466
eGP_ReprojectModes
Definition: ED_gpencil.h:52
@ GP_REPROJECT_VIEW
Definition: ED_gpencil.h:58
@ GP_REPROJECT_CURSOR
Definition: ED_gpencil.h:62
@ GP_REPROJECT_KEEP
Definition: ED_gpencil.h:64
@ GP_REPROJECT_SIDE
Definition: ED_gpencil.h:55
@ GP_REPROJECT_TOP
Definition: ED_gpencil.h:56
@ GP_REPROJECT_FRONT
Definition: ED_gpencil.h:54
@ GP_REPROJECT_SURFACE
Definition: ED_gpencil.h:60
bool ED_gpencil_stroke_point_is_inside(const struct bGPDstroke *gps, const struct GP_SpaceConversion *gsc, const int mval[2], const float diff_mat[4][4])
bool ED_gpencil_stroke_material_visible(struct Object *ob, const struct bGPDstroke *gps)
void ED_gpencil_sbuffer_update_eval(struct bGPdata *gpd, struct Object *ob_eval)
void ED_gpencil_vgroup_remove(struct bContext *C, struct Object *ob)
struct bGPDstroke * ED_gpencil_stroke_join_and_trim(struct bGPdata *gpd, struct bGPDframe *gpf, struct bGPDstroke *gps, struct bGPDstroke *gps_dst, int pt_index)
struct tGPspoint tGPspoint
void ED_gpencil_layer_mirror_frames(struct bGPDlayer *gpl, struct Scene *scene, short mode)
void ED_operatortypes_gpencil(void)
Definition: gpencil_ops.c:498
void ED_gpencil_stroke_reproject(struct Depsgraph *depsgraph, const struct GP_SpaceConversion *gsc, struct SnapObjectContext *sctx, struct bGPDlayer *gpl, struct bGPDframe *gpf, struct bGPDstroke *gps, eGP_ReprojectModes mode, bool keep_original)
void ED_gpencil_layer_frame_select_set(struct bGPDlayer *gpl, short mode)
void ED_gpencil_layer_frames_select_region(struct KeyframeEditData *ked, struct bGPDlayer *gpl, short tool, short select_mode)
void ED_gpencil_create_stroke(struct bContext *C, struct Object *ob, float mat[4][4])
void ED_gpencil_project_stroke_to_view(struct bContext *C, struct bGPDlayer *gpl, struct bGPDstroke *gps)
int ED_gpencil_select_stroke_segment(struct bGPdata *gpd, struct bGPDlayer *gpl, struct bGPDstroke *gps, struct bGPDspoint *pt, bool select, bool insert, float scale, float r_hita[3], float r_hitb[3])
void ED_gpencil_project_point_to_plane(const struct Scene *scene, const struct Object *ob, struct bGPDlayer *gpl, const struct RegionView3D *rv3d, const float origin[3], int axis, struct bGPDspoint *pt)
bool ED_gpencil_stroke_can_use(const struct bContext *C, const struct bGPDstroke *gps)
void ED_gpencil_project_stroke_to_plane(const struct Scene *scene, const struct Object *ob, const struct RegionView3D *rv3d, struct bGPDlayer *gpl, struct bGPDstroke *gps, const float origin[3], int axis)
void ED_gpencil_layer_merge(struct bGPdata *gpd, struct bGPDlayer *gpl_src, struct bGPDlayer *gpl_dst, bool reverse)
void ED_annotation_draw_2dimage(const struct bContext *C)
bool ED_gpencil_add_lattice_modifier(const struct bContext *C, struct ReportList *reports, struct Object *ob, struct Object *ob_latt)
bool ED_gpencil_layer_frame_select_check(const struct bGPDlayer *gpl)
void ED_gpencil_create_lineart(struct bContext *C, struct Object *ob)
void ED_annotation_draw_view3d(struct Scene *scene, struct Depsgraph *depsgraph, struct View3D *v3d, struct ARegion *region, bool only3d)
bool ED_gpencil_layer_frames_delete(struct bGPDlayer *gpl)
bool ED_gpencil_layer_frames_looper(struct bGPDlayer *gpl, struct Scene *scene, bool(*gpf_cb)(struct bGPDframe *, struct Scene *))
bool ED_gpencil_frame_has_selected_stroke(const struct bGPDframe *gpf)
struct bGPdata * ED_annotation_data_get_active_direct(struct ID *screen_id, struct ScrArea *area, struct Scene *scene)
void ED_gpencil_layer_snap_frames(struct bGPDlayer *gpl, struct Scene *scene, short mode)
void ED_gpencil_fill_vertex_color_set(struct ToolSettings *ts, struct Brush *brush, struct bGPDstroke *gps)
void ED_gpencil_vgroup_assign(struct bContext *C, struct Object *ob, float weight)
void ED_gpencil_anim_copybuf_free(void)
bool ED_gpencil_data_owner_is_annotation(struct PointerRNA *owner_ptr)
bool ED_gpencil_add_armature_weights(const struct bContext *C, struct ReportList *reports, struct Object *ob, struct Object *ob_arm, int mode)
void ED_gpencil_select_curve_toggle_all(struct bContext *C, int action)
void ED_gpencil_select_toggle_all(struct bContext *C, int action)
void ED_gpencil_stroke_init_data(struct bGPDstroke *gps, const float *array, int totpoints, const float mat[4][4])
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
#define C
Definition: RandGen.cpp:25
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
Definition: avxb.h:154
Scene scene
Material material
const Depsgraph * depsgraph
ccl_gpu_kernel_postfix ccl_global float int int int int float threshold
static void clear(Message *msg)
Definition: msgfmt.c:278
Insertion insert(const float3 &point_prev, const float3 &handle_prev, const float3 &handle_next, const float3 &point_next, float parameter)
Definition: curve_bezier.cc:61
static void area(int d1, int d2, int e1, int e2, float weights[2])
#define min(a, b)
Definition: sort.c:35
Definition: DNA_ID.h:368
Definition: BKE_main.h:121
struct Material ** mat
float loc[3]
float scale[3]
struct Material ** mat
float pressure
Definition: ED_gpencil.h:83
float m_xy[2]
Definition: ED_gpencil.h:81
float uv_rot
Definition: ED_gpencil.h:91
bool rnd_dirty
Definition: ED_gpencil.h:95
float time
Definition: ED_gpencil.h:87
float strength
Definition: ED_gpencil.h:85
float rnd[3]
Definition: ED_gpencil.h:93
float vert_color[4]
Definition: ED_gpencil.h:97
float uv_fac
Definition: ED_gpencil.h:89
float max