Space_node: Add draw backdrop callback.

Add a callback to allow custom node editors to draw their own
backdrop.

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

Reviewed by: JacquesLucke
This commit is contained in:
Ray Molenkamp
2019-04-23 09:15:45 -06:00
parent 58a1eb9a00
commit 8e861725dc
4 changed files with 12 additions and 1 deletions

View 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 *),

View 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;
}

View 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");

View 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},
};