From d55b5240b9eb26429a2cadea055c904b032b90d0 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 3 Jul 2006 15:25:11 +0000 Subject: Composite node "Separate RGBA" didn't do a typecheck. Errors happened when inputting a Normal or Value buffer in this node. --- source/blender/blenkernel/intern/node_composite.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/node_composite.c b/source/blender/blenkernel/intern/node_composite.c index 7b22f9e324f..ca07eae5b70 100644 --- a/source/blender/blenkernel/intern/node_composite.c +++ b/source/blender/blenkernel/intern/node_composite.c @@ -1818,8 +1818,8 @@ static void node_composit_exec_seprgba(void *data, bNode *node, bNodeStack **in, out[3]->vec[0] = in[0]->vec[3]; } else { - /* make output size of input image */ - CompBuf *cbuf= in[0]->data; + /* make sure we get right rgba buffer */ + CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); /* don't do any pixel processing, just copy the stack directly (faster, I presume) */ if(out[0]->hasoutput) @@ -1830,6 +1830,10 @@ static void node_composit_exec_seprgba(void *data, bNode *node, bNodeStack **in, out[2]->data= valbuf_from_rgbabuf(cbuf, CHAN_B); if(out[3]->hasoutput) out[3]->data= valbuf_from_rgbabuf(cbuf, CHAN_A); + + if(cbuf!=in[0]->data) + free_compbuf(cbuf); + } } -- cgit v1.2.3