Merged changes in the trunk up to revision 48893.
[blender-staging.git] / source / blender / render / extern / include / RE_pipeline.h
index cc4136fcccc80e7b55d2e7f1507c21fda9df0377..d6bd49f562177e8cdceb7c28b833103e6cae0468 100644 (file)
@@ -29,8 +29,8 @@
  *  \ingroup render
  */
 
-#ifndef RE_PIPELINE_H
-#define RE_PIPELINE_H
+#ifndef __RE_PIPELINE_H__
+#define __RE_PIPELINE_H__
 
 #include "DNA_listBase.h"
 #include "DNA_vec_types.h"
@@ -51,19 +51,19 @@ struct EnvMap;
 /* this include is what is exposed of render to outside world */
 /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
 
-
-#define RE_MAXNAME     32
+/* length of the scene name + passname */
+#define RE_MAXNAME     ((MAX_ID_NAME - 2) + 10)
 
 /* only used as handle */
 typedef struct Render Render;
 
 /* Render Result usage:
-
-- render engine allocates/frees and delivers raw floating point rects
-- right now it's full rects, but might become tiles or file 
-- the display client has to allocate display rects, sort out what to display, 
-  and how it's converted
-*/
+ *
+ * - render engine allocates/frees and delivers raw floating point rects
+ * - right now it's full rects, but might become tiles or file
+ * - the display client has to allocate display rects, sort out what to display,
*   and how it's converted
+ */
 
 typedef struct RenderPass {
        struct RenderPass *next, *prev;
@@ -81,8 +81,8 @@ typedef struct RenderLayer {
        struct RenderLayer *next, *prev;
        
        /* copy of RenderData */
-       char name[RE_MAXNAME];          
-       unsigned int lay, lay_zmask;
+       char name[RE_MAXNAME];
+       unsigned int lay, lay_zmask, lay_exclude;
        int layflag, passflag, pass_xor;                
        
        struct Material *mat_override;
@@ -144,8 +144,7 @@ typedef struct RenderStats {
        short curfield, curblur, curpart, partsdone, convertdone, curfsa;
        double starttime, lastframetime;
        const char *infostr, *statstr;
-       char scenename[32];
-       
+       char scene_name[MAX_ID_NAME - 2];
 } RenderStats;
 
 /* *********************** API ******************** */
@@ -154,6 +153,7 @@ typedef struct RenderStats {
 /* calling a new render with same name, frees automatic existing render */
 struct Render *RE_NewRender (const char *name);
 struct Render *RE_GetRender(const char *name);
+struct Render *RE_GetRender_FromData(const struct RenderData *rd);
 
 /* returns 1 while render is working (or renders called from within render) */
 int RE_RenderInProgress(struct Render *re);
@@ -165,6 +165,8 @@ void RE_InitRenderCB(struct Render *re);
 void RE_FreeRender (struct Render *re);
 /* only called on exit */
 void RE_FreeAllRender (void);
+/* only call on file load */
+void RE_FreeAllRenderResults(void);
 
 /* get results and statistics */
 void RE_FreeRenderResult(struct RenderResult *rr);
@@ -212,6 +214,7 @@ void RE_TileProcessor(struct Render *re);
 /* only RE_NewRender() needed, main Blender render calls */
 void RE_BlenderFrame(struct Render *re, struct Main *bmain, struct Scene *scene, struct SceneRenderLayer *srl, struct Object *camera_override, unsigned int lay, int frame, const short write_still);
 void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene, struct Object *camera_override, unsigned int lay, int sfra, int efra, int tfra);
+void RE_RenderFreestyleStrokes(struct Render *re, struct Main *bmain, struct Scene *scene);
 
 /* error reporting */
 void RE_SetReports(struct Render *re, struct ReportList *reports);
@@ -272,5 +275,5 @@ struct Scene *RE_GetScene(struct Render *re);
 
 int RE_is_rendering_allowed(struct Scene *scene, struct Object *camera_override, struct ReportList *reports);
 
-#endif /* RE_PIPELINE_H */
+#endif /* __RE_PIPELINE_H__ */