forked from bartvdbraak/blender
Bugfix: don't do full sample merging on re-rendered layers in
the compositor.
This commit is contained in:
parent
d3116dd4d2
commit
c49316a9eb
@ -225,10 +225,12 @@ typedef struct RenderData {
|
||||
short bufflag;
|
||||
short quality;
|
||||
|
||||
short rpad;
|
||||
|
||||
/**
|
||||
* Flags for render settings. Use bit-masking to access the settings.
|
||||
*/
|
||||
short scemode;
|
||||
int scemode;
|
||||
|
||||
/**
|
||||
* Flags for render settings. Use bit-masking to access the settings.
|
||||
@ -236,7 +238,7 @@ typedef struct RenderData {
|
||||
int mode;
|
||||
|
||||
/* render engine, octree resolution */
|
||||
short renderer, ocres, rpad[2];
|
||||
short renderer, ocres;
|
||||
|
||||
/**
|
||||
* What to do with the sky/background. Picks sky/premul/key
|
||||
@ -608,7 +610,7 @@ typedef struct Scene {
|
||||
#define R_INTERN 0
|
||||
#define R_YAFRAY 1
|
||||
|
||||
/* scemode */
|
||||
/* scemode (int now) */
|
||||
#define R_DOSEQ 0x0001
|
||||
#define R_BG_RENDER 0x0002
|
||||
/* passepartout is camera option now, keep this for backward compatibility */
|
||||
@ -626,6 +628,7 @@ typedef struct Scene {
|
||||
#define R_NO_TEX 0x2000
|
||||
#define R_STAMP_INFO 0x4000
|
||||
#define R_FULL_SAMPLE 0x8000
|
||||
#define R_COMP_RERENDER 0x10000
|
||||
|
||||
/* r->stamp */
|
||||
#define R_STAMP_TIME 0x0001
|
||||
|
@ -2156,30 +2156,30 @@ static void do_render_composite_fields_blur_3d(Render *re)
|
||||
ntreeCompositTagAnimated(ntree);
|
||||
}
|
||||
|
||||
if(ntree && re->r.scemode & R_DOCOMP) {
|
||||
/* checks if there are render-result nodes that need scene */
|
||||
if((re->r.scemode & R_SINGLE_LAYER)==0)
|
||||
ntree_render_scenes(re);
|
||||
|
||||
if(!re->test_break()) {
|
||||
ntree->stats_draw= render_composit_stats;
|
||||
ntree->test_break= re->test_break;
|
||||
/* in case it was never initialized */
|
||||
R.stats_draw= re->stats_draw;
|
||||
if(!(re->r.scemode & R_COMP_RERENDER)) {
|
||||
if(ntree && re->r.scemode & R_DOCOMP) {
|
||||
/* checks if there are render-result nodes that need scene */
|
||||
if((re->r.scemode & R_SINGLE_LAYER)==0)
|
||||
ntree_render_scenes(re);
|
||||
|
||||
if(re->r.scemode & R_FULL_SAMPLE)
|
||||
do_merge_fullsample(re, ntree);
|
||||
else
|
||||
ntreeCompositExecTree(ntree, &re->r, G.background==0);
|
||||
|
||||
ntree->stats_draw= NULL;
|
||||
ntree->test_break= NULL;
|
||||
if(!re->test_break()) {
|
||||
ntree->stats_draw= render_composit_stats;
|
||||
ntree->test_break= re->test_break;
|
||||
/* in case it was never initialized */
|
||||
R.stats_draw= re->stats_draw;
|
||||
|
||||
if(re->r.scemode & R_FULL_SAMPLE)
|
||||
do_merge_fullsample(re, ntree);
|
||||
else
|
||||
ntreeCompositExecTree(ntree, &re->r, G.background==0);
|
||||
|
||||
ntree->stats_draw= NULL;
|
||||
ntree->test_break= NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
if(re->r.scemode & R_FULL_SAMPLE)
|
||||
else if(re->r.scemode & R_FULL_SAMPLE)
|
||||
do_merge_fullsample(re, NULL);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* weak... the display callback wants an active renderlayer pointer... */
|
||||
|
@ -256,8 +256,8 @@ static void composite_node_render(SpaceNode *snode, bNode *node)
|
||||
|
||||
scemode= G.scene->r.scemode;
|
||||
actlay= G.scene->r.actlay;
|
||||
|
||||
G.scene->r.scemode |= R_SINGLE_LAYER;
|
||||
|
||||
G.scene->r.scemode |= R_SINGLE_LAYER|R_COMP_RERENDER;
|
||||
G.scene->r.actlay= node->custom1;
|
||||
|
||||
BIF_do_render(0);
|
||||
|
Loading…
Reference in New Issue
Block a user