Space_node: Add draw backdrop callback.
authorRay Molenkamp <github@lazydodo.com>
Tue, 23 Apr 2019 15:15:45 +0000 (09:15 -0600)
committerRay Molenkamp <github@lazydodo.com>
Tue, 23 Apr 2019 15:15:45 +0000 (09:15 -0600)
Add a callback to allow custom node editors to draw their own
backdrop.

Differential Revision: https://developer.blender.org/D4709

Reviewed by: JacquesLucke

source/blender/editors/include/ED_space_api.h
source/blender/editors/space_node/drawnode.c
source/blender/python/intern/bpy_rna.c
source/blender/python/intern/bpy_rna_callback.c

index 01de5fd..766f2b3 100644 (file)
@@ -62,6 +62,7 @@ void ED_file_exit(void);
 #define REGION_DRAW_POST_VIEW 0
 #define REGION_DRAW_POST_PIXEL 1
 #define REGION_DRAW_PRE_VIEW 2
+#define REGION_DRAW_BACKDROP 3
 
 void *ED_region_draw_cb_activate(struct ARegionType *,
                                  void (*draw)(const struct bContext *, struct ARegion *, void *),
index eb9c1cc..447fea8 100644 (file)
@@ -55,6 +55,7 @@
 #include "RNA_define.h"
 
 #include "ED_node.h"
+#include "ED_space_api.h"
 
 #include "WM_api.h"
 #include "WM_types.h"
@@ -3414,6 +3415,14 @@ void draw_nodespace_back_pix(const bContext *C,
   void *lock;
   ImBuf *ibuf;
 
+  GPU_matrix_push_projection();
+  GPU_matrix_push();
+  wmOrtho2_region_pixelspace(ar);
+  GPU_matrix_identity_set();
+  ED_region_draw_cb_draw(C, ar, REGION_DRAW_BACKDROP);
+  GPU_matrix_pop_projection();
+  GPU_matrix_pop();
+
   if (!(snode->flag & SNODE_BACKDRAW) || !ED_node_is_compositor(snode)) {
     return;
   }
index ed8bbe9..6f93e42 100644 (file)
@@ -8836,7 +8836,7 @@ PyDoc_STRVAR(
     "(:class:`bpy.types.Region.type`)\n"
     "   :type region_type: str\n"
     "   :param draw_type: Usually `POST_PIXEL` for 2D drawing and `POST_VIEW` for 3D drawing. In "
-    "some cases `PRE_VIEW` can be used.\n"
+    "some cases `PRE_VIEW` can be used. `BACKDROP` can be used for backdrops in the node editor.\n"
     "   :type draw_type: str\n"
     "   :return: Handler that can be removed later on.\n"
     "   :rtype: object");
index 7d690cb..e44fda1 100644 (file)
@@ -54,6 +54,7 @@ static const EnumPropertyItem region_draw_mode_items[] = {
     {REGION_DRAW_POST_PIXEL, "POST_PIXEL", 0, "Post Pixel", ""},
     {REGION_DRAW_POST_VIEW, "POST_VIEW", 0, "Post View", ""},
     {REGION_DRAW_PRE_VIEW, "PRE_VIEW", 0, "Pre View", ""},
+    {REGION_DRAW_BACKDROP, "BACKDROP", 0, "Backdrop", ""},
     {0, NULL, 0, NULL, NULL},
 };