[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42177] trunk/blender/source/blender: Fix #29406: show Sequence as render layer when rendering from sequencer, to make

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Nov 26 19:33:34 CET 2011


Revision: 42177
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42177
Author:   blendix
Date:     2011-11-26 18:33:31 +0000 (Sat, 26 Nov 2011)
Log Message:
-----------
Fix #29406: show Sequence as render layer when rendering from sequencer, to make
it more clear what was rendered.
Fix #29407: external engine api doesn't support full sample yet, would give too
dark render result.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_image/image_buttons.c
    trunk/blender/source/blender/render/extern/include/RE_engine.h
    trunk/blender/source/blender/render/intern/source/external_engine.c
    trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/source/blender/editors/space_image/image_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_buttons.c	2011-11-26 17:41:56 UTC (rev 42176)
+++ trunk/blender/source/blender/editors/space_image/image_buttons.c	2011-11-26 18:33:31 UTC (rev 42177)
@@ -383,6 +383,10 @@
 		a+= sprintf(str+a, "|Composite %%x0");
 		nr= 1;
 	}
+	else if(rr->rect32) {
+		a+= sprintf(str+a, "|Sequence %%x0");
+		nr= 1;
+	}
 	for(rl= rr->layers.first; rl; rl= rl->next, nr++) {
 		a+= sprintf(str+a, "|%s %%x%d", rl->name, nr);
 	}
@@ -443,8 +447,11 @@
 {
 	RenderResult *rr= rr_v;
 	ImageUser *iuser= iuser_v;
-	int tot= BLI_countlist(&rr->layers) + (rr->rectf?1:0);  /* fake compo result layer */
+	int tot= BLI_countlist(&rr->layers);
 
+	if(rr->rectf || rr->rect32)
+		tot++; /* fake compo/sequencer layer */
+
 	if(iuser->layer<tot-1) {
 		iuser->layer++;
 		BKE_image_multilayer_index(rr, iuser); 
@@ -468,7 +475,11 @@
 	RenderLayer *rl= BLI_findlink(&rr->layers, iuser->layer);
 
 	if(rl) {
-		int tot= BLI_countlist(&rl->passes) + (rl->rectf?1:0);	/* builtin render result has no combined pass in list */
+		int tot= BLI_countlist(&rl->passes);
+
+		if(rr->rectf || rr->rect32)
+			tot++; /* fake compo/sequencer layer */
+
 		if(iuser->pass<tot-1) {
 			iuser->pass++;
 			BKE_image_multilayer_index(rr, iuser); 
@@ -509,7 +520,7 @@
 	uiBlock *block= uiLayoutGetBlock(layout);
 	uiBut *but;
 	RenderLayer *rl= NULL;
-	int wmenu1, wmenu2, wmenu3;
+	int wmenu1, wmenu2, wmenu3, layer;
 	char *strp;
 
 	uiLayoutRow(layout, 1);
@@ -532,8 +543,12 @@
 		but= uiDefButS(block, MENU, 0, strp,					0, 0, wmenu2, UI_UNIT_Y, &iuser->layer, 0,0,0,0, "Select Layer");
 		uiButSetFunc(but, image_multi_cb, rr, iuser);
 		MEM_freeN(strp);
+
+		layer = iuser->layer;
+		if(rr->rectf || rr->rect32)
+			layer--; /* fake compo/sequencer layer */
 		
-		rl= BLI_findlink(&rr->layers, iuser->layer - (rr->rectf?1:0)); /* fake compo layer, return NULL is meant to be */
+		rl= BLI_findlink(&rr->layers, layer); /* return NULL is meant to be */
 		strp= pass_menu(rl, &iuser->pass);
 		but= uiDefButS(block, MENU, 0, strp,					0, 0, wmenu3, UI_UNIT_Y, &iuser->pass, 0,0,0,0, "Select Pass");
 		uiButSetFunc(but, image_multi_cb, rr, iuser);

Modified: trunk/blender/source/blender/render/extern/include/RE_engine.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_engine.h	2011-11-26 17:41:56 UTC (rev 42176)
+++ trunk/blender/source/blender/render/extern/include/RE_engine.h	2011-11-26 18:33:31 UTC (rev 42177)
@@ -107,6 +107,8 @@
 
 int RE_engine_render(struct Render *re, int do_all);
 
+int RE_engine_is_external(struct Render *re);
+
 /* Engine Types */
 
 void RE_engines_init(void);

Modified: trunk/blender/source/blender/render/intern/source/external_engine.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/external_engine.c	2011-11-26 17:41:56 UTC (rev 42176)
+++ trunk/blender/source/blender/render/intern/source/external_engine.c	2011-11-26 18:33:31 UTC (rev 42177)
@@ -113,6 +113,12 @@
 	return type;
 }
 
+int RE_engine_is_external(Render *re)
+{
+	RenderEngineType *type= RE_engines_find(re->r.engine);
+	return (type && type->render);
+}
+
 /* Create, Free */
 
 RenderEngine *RE_engine_create(RenderEngineType *type)

Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c	2011-11-26 17:41:56 UTC (rev 42176)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2011-11-26 18:33:31 UTC (rev 42177)
@@ -2849,6 +2849,11 @@
 		if(re->r.osa==0)
 			re->r.scemode &= ~R_FULL_SAMPLE;
 	} else re->r.scemode &= ~R_FULL_SAMPLE;	/* clear to be sure */
+
+	if(RE_engine_is_external(re)) {
+		/* not supported yet */
+		re->r.scemode &= ~(R_EXR_TILE_FILE|R_FULL_SAMPLE);
+	}
 }
 
 static void update_physics_cache(Render *re, Scene *scene, int UNUSED(anim_init))




More information about the Bf-blender-cvs mailing list