Merge branch 'blender2.7'
[blender.git] / source / blender / render / extern / include / RE_engine.h
index faa4c8b..8a6282a 100644 (file)
@@ -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);