Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-07-03 19:25:11 +0400
committerTon Roosendaal <ton@blender.org>2006-07-03 19:25:11 +0400
commitd55b5240b9eb26429a2cadea055c904b032b90d0 (patch)
treeeab9fd32219284fc0afab79387149633b024dac3 /source
parent3c11a1bd61d2a0cf81f56c550ece9d735c8a55b7 (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.c8
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);
+
}
}