diff options
author | Ton Roosendaal <ton@blender.org> | 2006-07-03 19:25:11 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-07-03 19:25:11 +0400 |
commit | d55b5240b9eb26429a2cadea055c904b032b90d0 (patch) | |
tree | eab9fd32219284fc0afab79387149633b024dac3 /source | |
parent | 3c11a1bd61d2a0cf81f56c550ece9d735c8a55b7 (diff) |
Composite node "Separate RGBA" didn't do a typecheck.
Errors happened when inputting a Normal or Value buffer in this node.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/node_composite.c | 8 |
1 files changed, 6 insertions, 2 deletions
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); + } } |