diff options
Diffstat (limited to 'source/blender/render/extern/include/RE_engine.h')
-rw-r--r-- | source/blender/render/extern/include/RE_engine.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index faa4c8b3184..8a6282aee01 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -37,6 +37,8 @@ #include "RNA_types.h" #include "RE_bake.h" +#include "BLI_threads.h" + struct bNode; struct bNodeTree; struct BakePixel; @@ -111,6 +113,9 @@ typedef struct RenderEngineType { ExtensionRNA ext; } RenderEngineType; +typedef void (*update_render_passes_cb_t)(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer, + const char *name, int channels, const char *chanid, int type); + typedef struct RenderEngine { RenderEngineType *type; void *py_instance; @@ -137,6 +142,10 @@ typedef struct RenderEngine { int update_flag; int job_update_flag; + /* callback for render pass query */ + ThreadMutex update_render_passes_mutex; + update_render_passes_cb_t update_render_passes_cb; + rctf last_viewplane; rcti last_disprect; float last_viewmat[4][4]; @@ -175,6 +184,8 @@ bool RE_engine_is_external(struct Render *re); void RE_engine_frame_set(struct RenderEngine *engine, int frame, float subframe); +void RE_engine_update_render_passes(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer, + update_render_passes_cb_t callback); void RE_engine_register_pass(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer, const char *name, int channels, const char *chanid, int type); |