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:
2007-01-28 05:34:17 +00:00
parent 907d19b93d
commit f306efab08
2 changed files with 35 additions and 32 deletions

View File

@@ -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);
}
}

View File

@@ -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"