Compositing workflow goodie; each 'render result' node now has a button

option to re-render that specific node. Also works for nodes using other
scenes.
This commit is contained in:
2006-03-07 21:26:37 +00:00
parent 48f6e94036
commit d0011f3318
9 changed files with 136 additions and 57 deletions

View File

@@ -599,7 +599,7 @@ static void node_composit_exec_composite(void *data, bNode *node, bNodeStack **i
if(node->flag & NODE_DO_OUTPUT) { /* only one works on out */
RenderData *rd= data;
if(rd->scemode & R_DOCOMP) {
RenderResult *rr= RE_GetResult(RE_GetRender("Render"));
RenderResult *rr= RE_GetResult(RE_GetRender(G.scene->id.name));
if(rr) {
CompBuf *outbuf, *zbuf=NULL;
@@ -917,16 +917,16 @@ static CompBuf *compbuf_from_pass(RenderData *rd, RenderLayer *rl, int rectx, in
static void node_composit_exec_rresult(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
{
Scene *sce= node->id?(Scene *)node->id:G.scene;
RenderData *rd= data;
RenderResult *rr;
if(node->id && node->id!=&G.scene->id)
rr= RE_GetResult(RE_GetRender(node->id->name+2));
else
rr= RE_GetResult(RE_GetRender("Render"));
rr= RE_GetResult(RE_GetRender(sce->id.name));
if(rr) {
RenderLayer *rl= BLI_findlink(&rr->layers, node->custom1);
SceneRenderLayer *srl= BLI_findlink(&sce->r.layers, node->custom1);
RenderLayer *rl= RE_GetRenderLayer(rr, srl->name);
if(rl) {
CompBuf *stackbuf;
@@ -969,10 +969,11 @@ static void node_composit_exec_rresult(void *data, bNode *node, bNodeStack **in,
}
/* custom1 = render layer in use */
/* custom2 = re-render tag */
static bNodeType cmp_node_rresult= {
/* type code */ CMP_NODE_R_RESULT,
/* name */ "Render Result",
/* width+range */ 120, 80, 300,
/* width+range */ 150, 100, 300,
/* class+opts */ NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS,
/* input sock */ NULL,
/* output sock */ cmp_node_rresult_out,