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

Reply via email to