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))

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to