Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/render/extern/include/RE_pipeline.h')
-rw-r--r--source/blender/render/extern/include/RE_pipeline.h290
1 files changed, 169 insertions, 121 deletions
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h
index 83217c6b009..0e7399d4a0d 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -48,7 +48,7 @@ struct bNodeTree;
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* length of the scene name + passname */
-#define RE_MAXNAME ((MAX_ID_NAME - 2) + 10)
+#define RE_MAXNAME ((MAX_ID_NAME - 2) + 10)
/* only used as handle */
typedef struct Render Render;
@@ -62,118 +62,116 @@ typedef struct Render Render;
*/
typedef struct RenderView {
- struct RenderView *next, *prev;
- char name[64]; /* EXR_VIEW_MAXNAME */
+ struct RenderView *next, *prev;
+ char name[64]; /* EXR_VIEW_MAXNAME */
- /* if this exists, result of composited layers */
- float *rectf;
- /* if this exists, result of composited layers */
- float *rectz;
- /* optional, 32 bits version of picture, used for sequencer, ogl render and image curves */
- int *rect32;
+ /* if this exists, result of composited layers */
+ float *rectf;
+ /* if this exists, result of composited layers */
+ float *rectz;
+ /* optional, 32 bits version of picture, used for sequencer, ogl render and image curves */
+ int *rect32;
} RenderView;
typedef struct RenderPass {
- struct RenderPass *next, *prev;
- int channels;
- char name[64]; /* amount defined in openexr_multi.h */
- char chan_id[8]; /* amount defined in openexr_multi.h */
- float *rect;
- int rectx, recty;
-
- char fullname[64]; /* EXR_PASS_MAXNAME */
- char view[64]; /* EXR_VIEW_MAXNAME */
- int view_id; /* quick lookup */
-
- int pad;
+ struct RenderPass *next, *prev;
+ int channels;
+ char name[64]; /* amount defined in openexr_multi.h */
+ char chan_id[8]; /* amount defined in openexr_multi.h */
+ float *rect;
+ int rectx, recty;
+
+ char fullname[64]; /* EXR_PASS_MAXNAME */
+ char view[64]; /* EXR_VIEW_MAXNAME */
+ int view_id; /* quick lookup */
+
+ int pad;
} RenderPass;
-
/* a renderlayer is a full image, but with all passes and samples */
/* size of the rects is defined in RenderResult */
/* after render, the Combined pass is in combined, for renderlayers read from files it is a real pass */
typedef struct RenderLayer {
- struct RenderLayer *next, *prev;
+ struct RenderLayer *next, *prev;
- /* copy of RenderData */
- char name[RE_MAXNAME];
- int layflag, passflag, pass_xor;
+ /* copy of RenderData */
+ char name[RE_MAXNAME];
+ int layflag, passflag, pass_xor;
- /* MULTIVIEW_TODO: acolrect and scolrect are not supported by multiview at the moment.
- * If they are really required they should be in RenderView instead */
+ /* MULTIVIEW_TODO: acolrect and scolrect are not supported by multiview at the moment.
+ * If they are really required they should be in RenderView instead */
- float *acolrect; /* 4 float, optional transparent buffer, needs storage for display updates */
- float *scolrect; /* 4 float, optional strand buffer, needs storage for display updates */
- int *display_buffer; /* 4 char, optional color managed display buffer which is used when
- * Save Buffer is enabled to display combined pass of the screen. */
- int rectx, recty;
+ float *acolrect; /* 4 float, optional transparent buffer, needs storage for display updates */
+ float *scolrect; /* 4 float, optional strand buffer, needs storage for display updates */
+ int *display_buffer; /* 4 char, optional color managed display buffer which is used when
+ * Save Buffer is enabled to display combined pass of the screen. */
+ int rectx, recty;
- /* optional saved endresult on disk */
- void *exrhandle;
+ /* optional saved endresult on disk */
+ void *exrhandle;
- ListBase passes;
+ ListBase passes;
} RenderLayer;
typedef struct RenderResult {
- struct RenderResult *next, *prev;
+ struct RenderResult *next, *prev;
- /* target image size */
- int rectx, recty;
- short crop, sample_nr;
+ /* target image size */
+ int rectx, recty;
+ short crop, sample_nr;
- /* the following rect32, rectf and rectz buffers are for temporary storage only, for RenderResult structs
- * created in #RE_AcquireResultImage - which do not have RenderView */
+ /* the following rect32, rectf and rectz buffers are for temporary storage only, for RenderResult structs
+ * created in #RE_AcquireResultImage - which do not have RenderView */
- /* optional, 32 bits version of picture, used for ogl render and image curves */
- int *rect32;
- /* if this exists, a copy of one of layers, or result of composited layers */
- float *rectf;
- /* if this exists, a copy of one of layers, or result of composited layers */
- float *rectz;
+ /* optional, 32 bits version of picture, used for ogl render and image curves */
+ int *rect32;
+ /* if this exists, a copy of one of layers, or result of composited layers */
+ float *rectf;
+ /* if this exists, a copy of one of layers, or result of composited layers */
+ float *rectz;
- /* coordinates within final image (after cropping) */
- rcti tilerect;
- /* offset to apply to get a border render in full image */
- int xof, yof;
+ /* coordinates within final image (after cropping) */
+ rcti tilerect;
+ /* offset to apply to get a border render in full image */
+ int xof, yof;
- /* the main buffers */
- ListBase layers;
+ /* the main buffers */
+ ListBase layers;
- /* multiView maps to a StringVector in OpenEXR */
- ListBase views; /* RenderView */
+ /* multiView maps to a StringVector in OpenEXR */
+ ListBase views; /* RenderView */
- /* allowing live updates: */
- volatile rcti renrect;
- volatile RenderLayer *renlay;
+ /* allowing live updates: */
+ volatile rcti renrect;
+ volatile RenderLayer *renlay;
- /* optional saved endresult on disk */
- int do_exr_tile;
+ /* optional saved endresult on disk */
+ int do_exr_tile;
- /* for render results in Image, verify validity for sequences */
- int framenr;
+ /* for render results in Image, verify validity for sequences */
+ int framenr;
- /* for acquire image, to indicate if it there is a combined layer */
- int have_combined;
+ /* for acquire image, to indicate if it there is a combined layer */
+ int have_combined;
- /* render info text */
- char *text;
- char *error;
+ /* render info text */
+ char *text;
+ char *error;
- struct StampData *stamp_data;
+ struct StampData *stamp_data;
} RenderResult;
-
typedef struct RenderStats {
- int cfra;
- int totface, totvert, totstrand, tothalo, totlamp, totpart;
- short curfield, curblur, curpart, partsdone, convertdone, curfsa;
- bool localview;
- double starttime, lastframetime;
- const char *infostr, *statstr;
- char scene_name[MAX_ID_NAME - 2];
- float mem_used, mem_peak;
+ int cfra;
+ int totface, totvert, totstrand, tothalo, totlamp, totpart;
+ short curfield, curblur, curpart, partsdone, convertdone, curfsa;
+ bool localview;
+ double starttime, lastframetime;
+ const char *infostr, *statstr;
+ char scene_name[MAX_ID_NAME - 2];
+ float mem_used, mem_peak;
} RenderStats;
/* *********************** API ******************** */
@@ -217,24 +215,37 @@ void RE_ClearResult(struct Render *re);
struct RenderStats *RE_GetStats(struct Render *re);
void RE_ResultGet32(struct Render *re, unsigned int *rect);
-void RE_AcquiredResultGet32(struct Render *re, struct RenderResult *result, unsigned int *rect, const int view_id);
+void RE_AcquiredResultGet32(struct Render *re,
+ struct RenderResult *result,
+ unsigned int *rect,
+ const int view_id);
-void RE_render_result_rect_from_ibuf(
- struct RenderResult *rr, struct RenderData *rd,
- struct ImBuf *ibuf, const int view_id);
+void RE_render_result_rect_from_ibuf(struct RenderResult *rr,
+ struct RenderData *rd,
+ struct ImBuf *ibuf,
+ const int view_id);
struct RenderLayer *RE_GetRenderLayer(struct RenderResult *rr, const char *name);
-float *RE_RenderLayerGetPass(volatile struct RenderLayer *rl, const char *name, const char *viewname);
+float *RE_RenderLayerGetPass(volatile struct RenderLayer *rl,
+ const char *name,
+ const char *viewname);
bool RE_HasSingleLayer(struct Render *re);
/* add passes for grease pencil */
-struct RenderPass *RE_create_gp_pass(struct RenderResult *rr, const char *layername, const char *viewname);
+struct RenderPass *RE_create_gp_pass(struct RenderResult *rr,
+ const char *layername,
+ const char *viewname);
/* obligatory initialize call, disprect is optional */
-void RE_InitState(struct Render *re, struct Render *source, struct RenderData *rd,
- struct ListBase *render_layers, struct ViewLayer *single_layer,
- int winx, int winy, rcti *disprect);
+void RE_InitState(struct Render *re,
+ struct Render *source,
+ struct RenderData *rd,
+ struct ListBase *render_layers,
+ struct ViewLayer *single_layer,
+ int winx,
+ int winy,
+ rcti *disprect);
void RE_ChangeResolution(struct Render *re, int winx, int winy, rcti *disprect);
void RE_ChangeModeFlag(struct Render *re, int flag, bool clear);
@@ -254,22 +265,41 @@ void RE_GetViewPlane(struct Render *re, rctf *r_viewplane, rcti *r_disprect);
/* set the render threads based on the commandline and autothreads setting */
void RE_init_threadcount(Render *re);
-bool RE_WriteRenderViewsImage(
- struct ReportList *reports, struct RenderResult *rr, struct Scene *scene, const bool stamp, char *name);
-bool RE_WriteRenderViewsMovie(
- struct ReportList *reports, struct RenderResult *rr, struct Scene *scene, struct RenderData *rd,
- struct bMovieHandle *mh, void **movie_ctx_arr,
- const int totvideos, bool preview);
+bool RE_WriteRenderViewsImage(struct ReportList *reports,
+ struct RenderResult *rr,
+ struct Scene *scene,
+ const bool stamp,
+ char *name);
+bool RE_WriteRenderViewsMovie(struct ReportList *reports,
+ struct RenderResult *rr,
+ struct Scene *scene,
+ struct RenderData *rd,
+ struct bMovieHandle *mh,
+ void **movie_ctx_arr,
+ const int totvideos,
+ bool preview);
/* only RE_NewRender() needed, main Blender render calls */
-void RE_BlenderFrame(struct Render *re, struct Main *bmain, struct Scene *scene,
- struct ViewLayer *single_layer, struct Object *camera_override,
- int frame, const bool write_still);
-void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene,
- struct ViewLayer *single_layer, struct Object *camera_override,
- int sfra, int efra, int tfra);
+void RE_BlenderFrame(struct Render *re,
+ struct Main *bmain,
+ struct Scene *scene,
+ struct ViewLayer *single_layer,
+ struct Object *camera_override,
+ int frame,
+ const bool write_still);
+void RE_BlenderAnim(struct Render *re,
+ struct Main *bmain,
+ struct Scene *scene,
+ struct ViewLayer *single_layer,
+ struct Object *camera_override,
+ int sfra,
+ int efra,
+ int tfra);
#ifdef WITH_FREESTYLE
-void RE_RenderFreestyleStrokes(struct Render *re, struct Main *bmain, struct Scene *scene, int render);
+void RE_RenderFreestyleStrokes(struct Render *re,
+ struct Main *bmain,
+ struct Scene *scene,
+ int render);
void RE_RenderFreestyleExternal(struct Render *re);
#endif
@@ -283,24 +313,35 @@ void RE_SetReports(struct Render *re, struct ReportList *reports);
void RE_PreviewRender(struct Render *re, struct Main *bmain, struct Scene *scene);
bool RE_ReadRenderResult(struct Scene *scene, struct Scene *scenode);
-bool RE_WriteRenderResult(
- struct ReportList *reports, RenderResult *rr, const char *filename,
- struct ImageFormatData *imf, const char *view, int layer);
+bool RE_WriteRenderResult(struct ReportList *reports,
+ RenderResult *rr,
+ const char *filename,
+ struct ImageFormatData *imf,
+ const char *view,
+ int layer);
struct RenderResult *RE_MultilayerConvert(
- void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty);
+ void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty);
/* display and event callbacks */
-void RE_display_init_cb (struct Render *re, void *handle, void (*f)(void *handle, RenderResult *rr));
-void RE_display_clear_cb(struct Render *re, void *handle, void (*f)(void *handle, RenderResult *rr));
-void RE_display_update_cb(struct Render *re, void *handle, void (*f)(void *handle, RenderResult *rr, volatile struct rcti *rect));
-void RE_stats_draw_cb (struct Render *re, void *handle, void (*f)(void *handle, RenderStats *rs));
-void RE_progress_cb (struct Render *re, void *handle, void (*f)(void *handle, float));
-void RE_draw_lock_cb (struct Render *re, void *handle, void (*f)(void *handle, int));
-void RE_test_break_cb (struct Render *re, void *handle, int (*f)(void *handle));
-void RE_current_scene_update_cb(struct Render *re, void *handle, void (*f)(void *handle, struct Scene *scene));
-
-void RE_gl_context_create(Render *re);
-void RE_gl_context_destroy(Render *re);
+void RE_display_init_cb(struct Render *re,
+ void *handle,
+ void (*f)(void *handle, RenderResult *rr));
+void RE_display_clear_cb(struct Render *re,
+ void *handle,
+ void (*f)(void *handle, RenderResult *rr));
+void RE_display_update_cb(struct Render *re,
+ void *handle,
+ void (*f)(void *handle, RenderResult *rr, volatile struct rcti *rect));
+void RE_stats_draw_cb(struct Render *re, void *handle, void (*f)(void *handle, RenderStats *rs));
+void RE_progress_cb(struct Render *re, void *handle, void (*f)(void *handle, float));
+void RE_draw_lock_cb(struct Render *re, void *handle, void (*f)(void *handle, int));
+void RE_test_break_cb(struct Render *re, void *handle, int (*f)(void *handle));
+void RE_current_scene_update_cb(struct Render *re,
+ void *handle,
+ void (*f)(void *handle, struct Scene *scene));
+
+void RE_gl_context_create(Render *re);
+void RE_gl_context_destroy(Render *re);
void *RE_gl_context_get(Render *re);
void *RE_gpu_context_get(Render *re);
@@ -312,13 +353,17 @@ int RE_seq_render_active(struct Scene *scene, struct RenderData *rd);
bool RE_layers_have_name(struct RenderResult *result);
bool RE_passes_have_name(struct RenderLayer *rl);
-struct RenderPass *RE_pass_find_by_name(volatile struct RenderLayer *rl, const char *name, const char *viewname);
-struct RenderPass *RE_pass_find_by_type(volatile struct RenderLayer *rl, int passtype, const char *viewname);
+struct RenderPass *RE_pass_find_by_name(volatile struct RenderLayer *rl,
+ const char *name,
+ const char *viewname);
+struct RenderPass *RE_pass_find_by_type(volatile struct RenderLayer *rl,
+ int passtype,
+ const char *viewname);
/* shaded view or baking options */
-#define RE_BAKE_NORMALS 0
-#define RE_BAKE_DISPLACEMENT 1
-#define RE_BAKE_AO 2
+#define RE_BAKE_NORMALS 0
+#define RE_BAKE_DISPLACEMENT 1
+#define RE_BAKE_AO 2
void RE_GetCameraWindow(struct Render *re, struct Object *camera, int frame, float mat[4][4]);
void RE_GetCameraWindowWithOverscan(struct Render *re, float mat[4][4], float overscan);
@@ -326,7 +371,10 @@ void RE_GetCameraModelMatrix(struct Render *re, struct Object *camera, float r_m
struct Scene *RE_GetScene(struct Render *re);
void RE_SetScene(struct Render *re, struct Scene *sce);
-bool RE_is_rendering_allowed(struct Scene *scene, struct ViewLayer *single_layer, struct Object *camera_override, struct ReportList *reports);
+bool RE_is_rendering_allowed(struct Scene *scene,
+ struct ViewLayer *single_layer,
+ struct Object *camera_override,
+ struct ReportList *reports);
bool RE_allow_render_generic_object(struct Object *ob);