diff options
Diffstat (limited to 'source/blender/render/extern/include/RE_pipeline.h')
-rw-r--r-- | source/blender/render/extern/include/RE_pipeline.h | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index e0e78739d39..643a381c54f 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -33,12 +33,17 @@ #include "DNA_listBase.h" #include "DNA_vec_types.h" #include "BKE_utildefines.h" +#include "RNA_types.h" -struct Scene; -struct RenderData; +struct bNodeTree; +struct Image; struct NodeBlurData; struct Object; -struct bNodeTree; +struct RenderData; +struct RenderEngine; +struct RenderEngineType; +struct RenderResult; +struct Scene; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* this include is what is exposed of render to outside world */ @@ -130,7 +135,7 @@ typedef struct RenderStats { int totface, totvert, totstrand, tothalo, totlamp, totpart; short curfield, curblur, curpart, partsdone, convertdone; double starttime, lastframetime; - char *infostr, scenename[32]; + char *infostr, *statstr, scenename[32]; } RenderStats; @@ -233,5 +238,38 @@ void RE_DataBase_GetView(struct Render *re, float mat[][4]); void RE_GetCameraWindow(struct Render *re, struct Object *camera, int frame, float mat[][4]); struct Scene *RE_GetScene(struct Render *re); +/* External Engine */ + + +extern ListBase R_engines; + +typedef struct RenderEngineType { + struct RenderEngineType *next, *prev; + + /* type info */ + char idname[32]; + char name[32]; + + void (*render)(struct RenderEngine *engine, struct Scene *scene); + + /* RNA integration */ + ExtensionRNA ext; +} RenderEngineType; + +typedef struct RenderEngine { + RenderEngineType *type; + struct Render *re; + ListBase fullresult; +} RenderEngine; + +struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h); +void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result); +void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result); + +int RE_engine_test_break(RenderEngine *engine); +void RE_engine_update_stats(RenderEngine *engine, char *stats, char *info); + +void RE_engines_free(void); + #endif /* RE_PIPELINE_H */ |