From d01054da0f569581d5802f3184fd330568c24774 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 28 Nov 2010 18:34:16 +0000 Subject: Bugfix #24933 Compositor: Texture node only allowed 1 user, with more nodes using it there was a thread conflict, using same memory for writing values. Also: brought back the original intention for texture nodes, which is to be using a "procedural image", not allocating memory for a buffer, but only allowing to read per pixel. Commit in 2007 (!) allocated full buffers for texture nodes, without using them even. --- source/blender/nodes/intern/CMP_nodes/CMP_texture.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender/nodes/intern/CMP_nodes/CMP_texture.c') diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c b/source/blender/nodes/intern/CMP_nodes/CMP_texture.c index f990fa452cb..7ddd8b96ae2 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_texture.c @@ -79,7 +79,7 @@ static void texture_procedural(CompBuf *cbuf, float *out, float xco, float yco) else { VECCOPY(col, nor); } - + typecheck_compbuf_color(out, col, cbuf->type, cbuf->procedural_type); } @@ -110,7 +110,7 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in, free_compbuf(prevbuf); if(out[0]->hasoutput) { - CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_VAL, 1); /* alloc */ + CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_VAL, 0); /* no buffer alloc */ stackbuf->rect_procedural= texture_procedural; stackbuf->node= node; @@ -121,7 +121,7 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in, out[0]->data= stackbuf; } if(out[1]->hasoutput) { - CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_RGBA, 1); /* alloc */ + CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_RGBA, 0); /* no buffer alloc */ stackbuf->rect_procedural= texture_procedural; stackbuf->node= node; -- cgit v1.2.3