Commit: 70a41a520009ddad4b1fa950b46a36b4888a26f8 Author: Joshua Leung Date: Wed Feb 7 13:09:19 2018 +1300 Branches: greasepencil-object https://developer.blender.org/rB70a41a520009ddad4b1fa950b46a36b4888a26f8
Cleanup: Move modal operator draw callbacks out of ED_gpencil.h Turns out that these were only actually used from within the gpencil module (i.e. they were defined in drawgpencil.c, and called from the gpencil_<opname>.c files), so it's not even necessary to export these function prototypes in the ED_gpencil.h header. =================================================================== M source/blender/editors/gpencil/gpencil_fill.c M source/blender/editors/gpencil/gpencil_intern.h M source/blender/editors/include/ED_gpencil.h =================================================================== diff --git a/source/blender/editors/gpencil/gpencil_fill.c b/source/blender/editors/gpencil/gpencil_fill.c index 06b18c64f4a..a6e4d0e2fac 100644 --- a/source/blender/editors/gpencil/gpencil_fill.c +++ b/source/blender/editors/gpencil/gpencil_fill.c @@ -38,8 +38,9 @@ #include "BLT_translation.h" -#include "DNA_object_types.h" #include "DNA_gpencil_types.h" +#include "DNA_image_types.h" +#include "DNA_object_types.h" #include "DNA_windowmanager_types.h" #include "BKE_main.h" @@ -76,6 +77,48 @@ #define LEAK_HORZ 0 #define LEAK_VERT 1 + +/* Temporary fill operation data (op->customdata) */ +typedef struct tGPDfill { + struct Depsgraph *depsgraph; + struct wmWindow *win; /* window where painting originated */ + struct Scene *scene; /* current scene from context */ + struct Object *ob; /* current active gp object */ + struct EvaluationContext *eval_ctx; /* eval context */ + struct ScrArea *sa; /* area where painting originated */ + struct RegionView3D *rv3d; /* region where painting originated */ + struct View3D *v3d; /* view3 where painting originated */ + struct ARegion *ar; /* region where painting originated */ + struct bGPdata *gpd; /* current GP datablock */ + struct Palette *palette; /* current palette */ + struct PaletteColor *palcolor; /* current palette color */ + struct bGPDlayer *gpl; /* layer */ + struct bGPDframe *gpf; /* frame */ + + short flag; /* flags */ + short oldkey; /* avoid too fast events */ + bool on_back; /* send to back stroke */ + + int center[2]; /* mouse fill center position */ + int sizex; /* windows width */ + int sizey; /* window height */ + int lock_axis; /* lock to viewport axis */ + + short fill_leak; /* number of pixel to consider the leak is too small (x 2) */ + float fill_threshold; /* factor for transparency */ + int fill_simplylvl; /* number of simplify steps */ + int fill_draw_mode; /* boundary limits drawing mode */ + + short sbuffer_size; /* number of elements currently in cache */ + void *sbuffer; /* temporary points */ + float *depth_arr; /* depth array for reproject */ + + Image *ima; /* temp image */ + BLI_Stack *stack; /* temp points data */ + void *draw_handle_3d; /* handle for drawing strokes while operator is running 3d stuff */ +} tGPDfill; + + /* draw a given stroke using same thickness and color for all points */ static void gp_draw_basic_stroke(bGPDstroke *gps, const float diff_mat[4][4], bool cyclic, float ink[4], int flag, float thershold) diff --git a/source/blender/editors/gpencil/gpencil_intern.h b/source/blender/editors/gpencil/gpencil_intern.h index a908e8599fe..08ea551c440 100644 --- a/source/blender/editors/gpencil/gpencil_intern.h +++ b/source/blender/editors/gpencil/gpencil_intern.h @@ -43,7 +43,6 @@ struct bGPDstroke; struct bGPDspoint; struct tGPspoint; -struct BLI_Stack; struct GHash; struct Scene; @@ -51,7 +50,6 @@ struct ARegion; struct View3D; struct View2D; struct wmOperatorType; -struct Image; struct PointerRNA; struct PropertyRNA; @@ -59,16 +57,22 @@ struct EnumPropertyItem; /* ***************************************************** */ -/* Internal Data Structures +/* Modal Operator Geometry Preview * - * These are used to store the state data for modal operators - * when they are running (i.e. op->customdata). They are exported - * so that the drawing callbacks in drawgpencil.c can access the - * necessary preview geometry that is shown when the operators run. - * Since these are the *private (state) data* for the operators, - * we shouldn't be exporting these in the public ED_gpencil.h header. + * Several modal operators (Fill, Interpolate, Primitive) + * need to run some drawing code to display previews, or + * to perform screen-space/image-based analysis routines. + * The following structs + function prototypes are used + * by these operators so that the operator code + * (in gpencil_<opname>.c) can communicate with the drawing + * code (in drawgpencil.c). + * + * NOTE: All this is within the gpencil module, so nothing needs + * to be exported to other modules. */ +/* Internal Operator-State Data ------------------------ */ + /* Temporary draw data (no draw manager mode) */ typedef struct tGPDdraw { struct RegionView3D *rv3d; /* region to draw */ @@ -157,46 +161,11 @@ typedef struct tGPDprimitive { } tGPDprimitive; -/* Temporary fill operation data */ -typedef struct tGPDfill { - struct Depsgraph *depsgraph; - struct wmWindow *win; /* window where painting originated */ - struct Scene *scene; /* current scene from context */ - struct Object *ob; /* current active gp object */ - struct EvaluationContext *eval_ctx; /* eval context */ - struct ScrArea *sa; /* area where painting originated */ - struct RegionView3D *rv3d; /* region where painting originated */ - struct View3D *v3d; /* view3 where painting originated */ - struct ARegion *ar; /* region where painting originated */ - struct bGPdata *gpd; /* current GP datablock */ - struct Palette *palette; /* current palette */ - struct PaletteColor *palcolor; /* current palette color */ - struct bGPDlayer *gpl; /* layer */ - struct bGPDframe *gpf; /* frame */ - - short flag; /* flags */ - short oldkey; /* avoid too fast events */ - bool on_back; /* send to back stroke */ - - int center[2]; /* mouse fill center position */ - int sizex; /* windows width */ - int sizey; /* window height */ - int lock_axis; /* lock to viewport axis */ - - short fill_leak; /* number of pixel to consider the leak is too small (x 2) */ - float fill_threshold; /* factor for transparency */ - int fill_simplylvl; /* number of simplify steps */ - int fill_draw_mode; /* boundary limits drawing mode */ - - short sbuffer_size; /* number of elements currently in cache */ - void *sbuffer; /* temporary points */ - float *depth_arr; /* depth array for reproject */ - - struct Image *ima; /* temp image */ - struct BLI_Stack *stack; /* temp points data */ - void *draw_handle_3d; /* handle for drawing strokes while operator is running 3d stuff */ -} tGPDfill; +/* Modal Operator Drawing Callbacks ------------------------ */ +void ED_gp_draw_interpolation(const struct bContext *C, struct tGPDinterpolate *tgpi, const int type); +void ED_gp_draw_primitives(const struct bContext *C, struct tGPDprimitive *tgpi, const int type); +void ED_gp_draw_fill(struct tGPDdraw *tgpw); /* ***************************************************** */ /* Internal API */ diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h index de1128c3ef2..d834677eb69 100644 --- a/source/blender/editors/include/ED_gpencil.h +++ b/source/blender/editors/include/ED_gpencil.h @@ -64,11 +64,6 @@ struct wmOperator; struct wmWindow; struct wmWindowManager; -struct tGPDdraw; -struct tGPDinterpolate; -struct tGPDprimitive; -struct tGPDfill; - /* ------------- Grease-Pencil Runtime Data ---------------- */ /* Temporary 'Stroke Point' data (2D / screen-space) @@ -149,12 +144,6 @@ void ED_gpencil_draw_view3d_object(struct wmWindowManager *wm, void ED_gpencil_draw_ex(struct RegionView3D *rv3d, struct Scene *scene, struct bGPdata *gpd, int winx, int winy, const int cfra, const char spacetype); -/* Modal Operator Geometry Preview */ -// XXX: Are these called from the draw engine at all? Can we hide these? -void ED_gp_draw_interpolation(const struct bContext *C, struct tGPDinterpolate *tgpi, const int type); -void ED_gp_draw_primitives(const struct bContext *C, struct tGPDprimitive *tgpi, const int type); -void ED_gp_draw_fill(struct tGPDdraw *tgpw); - /* ----------- Grease-Pencil AnimEdit API ------------------ */ bool ED_gplayer_frames_looper(struct bGPDlayer *gpl, struct Scene *scene, short (*gpf_cb)(struct bGPDframe *, struct Scene *)); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs