Added type checking to color space splitting nodes and hsv node. Will uncommit pipeline.c and creator.c since committed in error.
This commit is contained in:
@@ -1641,12 +1641,16 @@ static void node_composit_exec_hue_sat(void *data, bNode *node, bNodeStack **in,
|
||||
}
|
||||
else {
|
||||
/* make output size of input image */
|
||||
CompBuf *cbuf= in[1]->data;
|
||||
CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */
|
||||
CompBuf *cbuf= dupalloc_compbuf(in[1]->data);
|
||||
CompBuf *stackbuf=typecheck_compbuf(cbuf,CB_RGBA);
|
||||
|
||||
composit2_pixel_processor(node, stackbuf, cbuf, in[1]->vec, in[0]->data, in[0]->vec, do_hue_sat_fac, CB_RGBA, CB_VAL);
|
||||
composit2_pixel_processor(node, stackbuf, stackbuf, in[1]->vec, in[0]->data, in[0]->vec, do_hue_sat_fac, CB_RGBA, CB_VAL);
|
||||
|
||||
out[0]->data= stackbuf;
|
||||
|
||||
/* get rid of intermediary cbuf if it's extra */
|
||||
if(stackbuf!=cbuf)
|
||||
free_compbuf(cbuf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2129,24 +2133,23 @@ static void node_composit_exec_sephsva(void *data, bNode *node, bNodeStack **in,
|
||||
}
|
||||
else if ((out[0]->hasoutput) || (out[1]->hasoutput) || (out[2]->hasoutput) || (out[3]->hasoutput)) {
|
||||
/* make output size of input image */
|
||||
CompBuf *cbuf= in[0]->data;
|
||||
|
||||
CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */
|
||||
CompBuf *cbuf= typecheck_compbuf(in[0]->data,CB_RGBA);
|
||||
|
||||
/* convert the RGB stackbuf to an HSV representation */
|
||||
composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_sephsva, CB_RGBA);
|
||||
composit1_pixel_processor(node, cbuf, in[0]->data, in[0]->vec, do_sephsva, CB_RGBA);
|
||||
|
||||
/* separate each of those channels */
|
||||
if(out[0]->hasoutput)
|
||||
out[0]->data= valbuf_from_rgbabuf(stackbuf, CHAN_R);
|
||||
out[0]->data= valbuf_from_rgbabuf(cbuf, CHAN_R);
|
||||
if(out[1]->hasoutput)
|
||||
out[1]->data= valbuf_from_rgbabuf(stackbuf, CHAN_G);
|
||||
out[1]->data= valbuf_from_rgbabuf(cbuf, CHAN_G);
|
||||
if(out[2]->hasoutput)
|
||||
out[2]->data= valbuf_from_rgbabuf(stackbuf, CHAN_B);
|
||||
out[2]->data= valbuf_from_rgbabuf(cbuf, CHAN_B);
|
||||
if(out[3]->hasoutput)
|
||||
out[3]->data= valbuf_from_rgbabuf(stackbuf, CHAN_A);
|
||||
out[3]->data= valbuf_from_rgbabuf(cbuf, CHAN_A);
|
||||
|
||||
free_compbuf(stackbuf);
|
||||
if(cbuf!=in[0]->data)
|
||||
free_compbuf(cbuf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4260,24 +4263,23 @@ static void node_composit_exec_sepyuva(void *data, bNode *node, bNodeStack **in,
|
||||
}
|
||||
else if ((out[0]->hasoutput) || (out[1]->hasoutput) || (out[2]->hasoutput) || (out[3]->hasoutput)) {
|
||||
/* make output size of input image */
|
||||
CompBuf *cbuf= in[0]->data;
|
||||
|
||||
CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */
|
||||
CompBuf *cbuf= typecheck_compbuf(in[0]->data,CB_RGBA);
|
||||
|
||||
/* convert the RGB stackbuf to an YUV representation */
|
||||
composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_sepyuva, CB_RGBA);
|
||||
composit1_pixel_processor(node, cbuf, in[0]->data, in[0]->vec, do_sepyuva, CB_RGBA);
|
||||
|
||||
/* separate each of those channels */
|
||||
if(out[0]->hasoutput)
|
||||
out[0]->data= valbuf_from_rgbabuf(stackbuf, CHAN_R);
|
||||
out[0]->data= valbuf_from_rgbabuf(cbuf, CHAN_R);
|
||||
if(out[1]->hasoutput)
|
||||
out[1]->data= valbuf_from_rgbabuf(stackbuf, CHAN_G);
|
||||
out[1]->data= valbuf_from_rgbabuf(cbuf, CHAN_G);
|
||||
if(out[2]->hasoutput)
|
||||
out[2]->data= valbuf_from_rgbabuf(stackbuf, CHAN_B);
|
||||
out[2]->data= valbuf_from_rgbabuf(cbuf, CHAN_B);
|
||||
if(out[3]->hasoutput)
|
||||
out[3]->data= valbuf_from_rgbabuf(stackbuf, CHAN_A);
|
||||
out[3]->data= valbuf_from_rgbabuf(cbuf, CHAN_A);
|
||||
|
||||
free_compbuf(stackbuf);
|
||||
if(cbuf!=in[0]->data)
|
||||
free_compbuf(cbuf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4334,24 +4336,23 @@ static void node_composit_exec_sepycca(void *data, bNode *node, bNodeStack **in,
|
||||
}
|
||||
else if ((out[0]->hasoutput) || (out[1]->hasoutput) || (out[2]->hasoutput) || (out[3]->hasoutput)) {
|
||||
/* make output size of input image */
|
||||
CompBuf *cbuf= in[0]->data;
|
||||
|
||||
CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */
|
||||
CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA);
|
||||
|
||||
/* convert the RGB stackbuf to an HSV representation */
|
||||
composit1_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, do_sepycca, CB_RGBA);
|
||||
composit1_pixel_processor(node, cbuf, in[0]->data, in[0]->vec, do_sepycca, CB_RGBA);
|
||||
|
||||
/* separate each of those channels */
|
||||
if(out[0]->hasoutput)
|
||||
out[0]->data= valbuf_from_rgbabuf(stackbuf, CHAN_R);
|
||||
out[0]->data= valbuf_from_rgbabuf(cbuf, CHAN_R);
|
||||
if(out[1]->hasoutput)
|
||||
out[1]->data= valbuf_from_rgbabuf(stackbuf, CHAN_G);
|
||||
out[1]->data= valbuf_from_rgbabuf(cbuf, CHAN_G);
|
||||
if(out[2]->hasoutput)
|
||||
out[2]->data= valbuf_from_rgbabuf(stackbuf, CHAN_B);
|
||||
out[2]->data= valbuf_from_rgbabuf(cbuf, CHAN_B);
|
||||
if(out[3]->hasoutput)
|
||||
out[3]->data= valbuf_from_rgbabuf(stackbuf, CHAN_A);
|
||||
out[3]->data= valbuf_from_rgbabuf(cbuf, CHAN_A);
|
||||
|
||||
free_compbuf(stackbuf);
|
||||
if(cbuf!=in[0]->data)
|
||||
free_compbuf(cbuf);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -239,10 +239,12 @@ int main(int argc, char **argv)
|
||||
/* temporary: prevent people to make/use 64 bits versions without them knowing it might be
|
||||
risky. I don't know for sure yet if we get problems, but I rather not get the burden of
|
||||
having to fix all faulty saved 64 bits files (ton) */
|
||||
if(sizeof(void *)==8) {
|
||||
/* if(sizeof(void *)==8) {
|
||||
printf("64 bits compiles will give incorrectly saved .blend files. Do not use it. For testing purposes please remove this line from creator.c\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
#else
|
||||
if(sizeof(void *)==8) {
|
||||
printf("64 bits compiles will give incorrectly saved .blend files. Do not use it.\n\n"
|
||||
|
||||
Reference in New Issue
Block a user