[Bf-blender-cvs] [f8540d7] master: RenderResult should have a valid view whenever possible

Dalai Felinto noreply at git.blender.org
Tue Apr 28 23:09:25 CEST 2015


Commit: f8540d7fd5a47bc9d1d676d5aaaa0de379c71637
Author: Dalai Felinto
Date:   Tue Apr 28 17:36:44 2015 -0300
Branches: master
https://developer.blender.org/rBf8540d7fd5a47bc9d1d676d5aaaa0de379c71637

RenderResult should have a valid view whenever possible

===================================================================

M	source/blender/render/intern/include/render_result.h
M	source/blender/render/intern/source/pipeline.c
M	source/blender/render/intern/source/render_result.c

===================================================================

diff --git a/source/blender/render/intern/include/render_result.h b/source/blender/render/intern/include/render_result.h
index e7a2cbf..f031be9 100644
--- a/source/blender/render/intern/include/render_result.h
+++ b/source/blender/render/intern/include/render_result.h
@@ -60,6 +60,7 @@ struct RenderResult *render_result_new_full_sample(struct Render *re,
 
 struct RenderResult *render_result_new_from_exr(void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty);
 
+void render_result_view_new(struct RenderResult *rr, const char *viewname);
 void render_result_views_new(struct RenderResult *rr, struct RenderData *rd);
 
 /* Merge */
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 7b5692f..7206c21 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -747,6 +747,7 @@ void RE_InitState(Render *re, Render *source, RenderData *rd,
 		re->result = MEM_callocN(sizeof(RenderResult), "new render result");
 		re->result->rectx = re->rectx;
 		re->result->recty = re->recty;
+		render_result_view_new(re->result, "new temporary view");
 	}
 	
 	if (re->r.scemode & R_VIEWPORT_PREVIEW)
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index 0d3720a..0bd4284 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -911,10 +911,16 @@ RenderResult *render_result_new_from_exr(void *exrhandle, const char *colorspace
 	return rr;
 }
 
+void render_result_view_new(RenderResult *rr, const char *viewname)
+{
+	RenderView *rv = MEM_callocN(sizeof(RenderView), "new render view");
+	BLI_addtail(&rr->views, rv);
+	BLI_strncpy(rv->name, viewname, sizeof(rv->name));
+}
+
 void render_result_views_new(RenderResult *rr, RenderData *rd)
 {
 	SceneRenderView *srv;
-	RenderView *rv;
 
 	/* clear previously existing views - for sequencer */
 	render_result_views_free(rr);
@@ -922,19 +928,15 @@ void render_result_views_new(RenderResult *rr, RenderData *rd)
 	/* check renderdata for amount of views */
 	if ((rd->scemode & R_MULTIVIEW)) {
 		for (srv = rd->views.first; srv; srv = srv->next) {
-			if (BKE_scene_multiview_is_render_view_active(rd, srv) == false) continue;
-
-			rv = MEM_callocN(sizeof(RenderView), "new render view");
-			BLI_addtail(&rr->views, rv);
-
-			BLI_strncpy(rv->name, srv->name, sizeof(rv->name));
+			if (BKE_scene_multiview_is_render_view_active(rd, srv) == false)
+				continue;
+			render_result_view_new(rr, srv->name);
 		}
 	}
 
 	/* we always need at least one view */
 	if (BLI_listbase_count_ex(&rr->views, 1) == 0) {
-		rv = MEM_callocN(sizeof(RenderView), "new render view");
-		BLI_addtail(&rr->views, rv);
+		render_result_view_new(rr, "new render view");
 	}
 }




More information about the Bf-blender-cvs mailing list