[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