replace macros with bli math functions for nodes
This commit is contained in:
@@ -317,8 +317,8 @@ CompBuf *typecheck_compbuf(CompBuf *inbuf, int type)
|
|||||||
|
|
||||||
if(inbuf->rect_procedural) {
|
if(inbuf->rect_procedural) {
|
||||||
outbuf->rect_procedural= inbuf->rect_procedural;
|
outbuf->rect_procedural= inbuf->rect_procedural;
|
||||||
VECCOPY(outbuf->procedural_size, inbuf->procedural_size);
|
copy_v3_v3(outbuf->procedural_size, inbuf->procedural_size);
|
||||||
VECCOPY(outbuf->procedural_offset, inbuf->procedural_offset);
|
copy_v3_v3(outbuf->procedural_offset, inbuf->procedural_offset);
|
||||||
outbuf->procedural_type= inbuf->procedural_type;
|
outbuf->procedural_type= inbuf->procedural_type;
|
||||||
outbuf->node= inbuf->node;
|
outbuf->node= inbuf->node;
|
||||||
return outbuf;
|
return outbuf;
|
||||||
@@ -707,12 +707,12 @@ void do_ycca_to_rgba(bNode *UNUSED(node), float *out, float *in)
|
|||||||
|
|
||||||
void do_copy_rgba(bNode *UNUSED(node), float *out, float *in)
|
void do_copy_rgba(bNode *UNUSED(node), float *out, float *in)
|
||||||
{
|
{
|
||||||
QUATCOPY(out, in);
|
copy_v4_v4(out, in);
|
||||||
}
|
}
|
||||||
|
|
||||||
void do_copy_rgb(bNode *UNUSED(node), float *out, float *in)
|
void do_copy_rgb(bNode *UNUSED(node), float *out, float *in)
|
||||||
{
|
{
|
||||||
VECCOPY(out, in);
|
copy_v3_v3(out, in);
|
||||||
out[3]= 1.0f;
|
out[3]= 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -723,7 +723,7 @@ void do_copy_value(bNode *UNUSED(node), float *out, float *in)
|
|||||||
|
|
||||||
void do_copy_a_rgba(bNode *UNUSED(node), float *out, float *in, float *fac)
|
void do_copy_a_rgba(bNode *UNUSED(node), float *out, float *in, float *fac)
|
||||||
{
|
{
|
||||||
VECCOPY(out, in);
|
copy_v3_v3(out, in);
|
||||||
out[3]= *fac;
|
out[3]= *fac;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,10 +48,10 @@ static void do_alphaover_premul(bNode *UNUSED(node), float *out, float *src, flo
|
|||||||
{
|
{
|
||||||
|
|
||||||
if(over[3]<=0.0f) {
|
if(over[3]<=0.0f) {
|
||||||
QUATCOPY(out, src);
|
copy_v4_v4(out, src);
|
||||||
}
|
}
|
||||||
else if(fac[0]==1.0f && over[3]>=1.0f) {
|
else if(fac[0]==1.0f && over[3]>=1.0f) {
|
||||||
QUATCOPY(out, over);
|
copy_v4_v4(out, over);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
float mul= 1.0f - fac[0]*over[3];
|
float mul= 1.0f - fac[0]*over[3];
|
||||||
@@ -68,10 +68,10 @@ static void do_alphaover_key(bNode *UNUSED(node), float *out, float *src, float
|
|||||||
{
|
{
|
||||||
|
|
||||||
if(over[3]<=0.0f) {
|
if(over[3]<=0.0f) {
|
||||||
QUATCOPY(out, src);
|
copy_v4_v4(out, src);
|
||||||
}
|
}
|
||||||
else if(fac[0]==1.0f && over[3]>=1.0f) {
|
else if(fac[0]==1.0f && over[3]>=1.0f) {
|
||||||
QUATCOPY(out, over);
|
copy_v4_v4(out, over);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
float premul= fac[0]*over[3];
|
float premul= fac[0]*over[3];
|
||||||
@@ -89,10 +89,10 @@ static void do_alphaover_mixed(bNode *node, float *out, float *src, float *over,
|
|||||||
{
|
{
|
||||||
|
|
||||||
if(over[3]<=0.0f) {
|
if(over[3]<=0.0f) {
|
||||||
QUATCOPY(out, src);
|
copy_v4_v4(out, src);
|
||||||
}
|
}
|
||||||
else if(fac[0]==1.0f && over[3]>=1.0f) {
|
else if(fac[0]==1.0f && over[3]>=1.0f) {
|
||||||
QUATCOPY(out, over);
|
copy_v4_v4(out, over);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
NodeTwoFloats *ntf= node->storage;
|
NodeTwoFloats *ntf= node->storage;
|
||||||
|
|||||||
@@ -512,7 +512,7 @@ static void blur_with_reference(bNode *node, CompBuf *new, CompBuf *img, CompBuf
|
|||||||
if(pix==1)
|
if(pix==1)
|
||||||
dest[0]= src[0];
|
dest[0]= src[0];
|
||||||
else
|
else
|
||||||
QUATCOPY(dest, src);
|
copy_v4_v4(dest, src);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
int minxr= x-refradx<0?-x:-refradx;
|
int minxr= x-refradx<0?-x:-refradx;
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ static void do_color_key(bNode *node, float *out, float *in)
|
|||||||
c=node->storage;
|
c=node->storage;
|
||||||
|
|
||||||
|
|
||||||
VECCOPY(out, in);
|
copy_v3_v3(out, in);
|
||||||
|
|
||||||
if(
|
if(
|
||||||
/* do hue last because it needs to wrap, and does some more checks */
|
/* do hue last because it needs to wrap, and does some more checks */
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ static void do_curves_fac(bNode *node, float *out, float *in, float *fac)
|
|||||||
if(*fac>=1.0)
|
if(*fac>=1.0)
|
||||||
curvemapping_evaluate_premulRGBF(node->storage, out, in);
|
curvemapping_evaluate_premulRGBF(node->storage, out, in);
|
||||||
else if(*fac<=0.0) {
|
else if(*fac<=0.0) {
|
||||||
VECCOPY(out, in);
|
copy_v3_v3(out, in);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
float col[4], mfac= 1.0f-*fac;
|
float col[4], mfac= 1.0f-*fac;
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ static void do_diff_matte(bNode *node, float *outColor, float *inColor1, float *
|
|||||||
/*average together the distances*/
|
/*average together the distances*/
|
||||||
difference=difference/3.0;
|
difference=difference/3.0;
|
||||||
|
|
||||||
VECCOPY(outColor, inColor1);
|
copy_v3_v3(outColor, inColor1);
|
||||||
|
|
||||||
/*make 100% transparent*/
|
/*make 100% transparent*/
|
||||||
if(difference < tolerence) {
|
if(difference < tolerence) {
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ static void do_distance_matte(bNode *node, float *out, float *in)
|
|||||||
(c->key[1]-in[1])*(c->key[1]-in[1]) +
|
(c->key[1]-in[1])*(c->key[1]-in[1]) +
|
||||||
(c->key[2]-in[2])*(c->key[2]-in[2]));
|
(c->key[2]-in[2])*(c->key[2]-in[2]));
|
||||||
|
|
||||||
VECCOPY(out, in);
|
copy_v3_v3(out, in);
|
||||||
|
|
||||||
/*make 100% transparent */
|
/*make 100% transparent */
|
||||||
if(distance < tolerence) {
|
if(distance < tolerence) {
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ static void do_filter_edge(CompBuf *out, CompBuf *in, float *filter, float fac)
|
|||||||
fp= out->rect + pix*y*rowlen;
|
fp= out->rect + pix*y*rowlen;
|
||||||
|
|
||||||
if(pix==CB_RGBA) {
|
if(pix==CB_RGBA) {
|
||||||
QUATCOPY(fp, row2);
|
copy_v4_v4(fp, row2);
|
||||||
fp+= pix;
|
fp+= pix;
|
||||||
|
|
||||||
for(x=2; x<rowlen; x++) {
|
for(x=2; x<rowlen; x++) {
|
||||||
@@ -78,7 +78,7 @@ static void do_filter_edge(CompBuf *out, CompBuf *in, float *filter, float fac)
|
|||||||
/* no alpha... will clear it completely */
|
/* no alpha... will clear it completely */
|
||||||
fp++; row1++; row2++; row3++;
|
fp++; row1++; row2++; row3++;
|
||||||
}
|
}
|
||||||
QUATCOPY(fp, row2+4);
|
copy_v4_v4(fp, row2+4);
|
||||||
}
|
}
|
||||||
else if(pix==CB_VAL) {
|
else if(pix==CB_VAL) {
|
||||||
fp+= pix;
|
fp+= pix;
|
||||||
@@ -138,7 +138,7 @@ static void do_filter3(CompBuf *out, CompBuf *in, float *filter, float fac)
|
|||||||
fp[1]= row2[3];
|
fp[1]= row2[3];
|
||||||
}
|
}
|
||||||
else if(pixlen==3) {
|
else if(pixlen==3) {
|
||||||
VECCOPY(fp, row2);
|
copy_v3_v3(fp, row2);
|
||||||
fp+= 3;
|
fp+= 3;
|
||||||
|
|
||||||
for(x=2; x<rowlen; x++) {
|
for(x=2; x<rowlen; x++) {
|
||||||
@@ -147,10 +147,10 @@ static void do_filter3(CompBuf *out, CompBuf *in, float *filter, float fac)
|
|||||||
fp++; row1++; row2++; row3++;
|
fp++; row1++; row2++; row3++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VECCOPY(fp, row2+3);
|
copy_v3_v3(fp, row2+3);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QUATCOPY(fp, row2);
|
copy_v4_v4(fp, row2);
|
||||||
fp+= 4;
|
fp+= 4;
|
||||||
|
|
||||||
for(x=2; x<rowlen; x++) {
|
for(x=2; x<rowlen; x++) {
|
||||||
@@ -159,7 +159,7 @@ static void do_filter3(CompBuf *out, CompBuf *in, float *filter, float fac)
|
|||||||
fp++; row1++; row2++; row3++;
|
fp++; row1++; row2++; row3++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
QUATCOPY(fp, row2+4);
|
copy_v4_v4(fp, row2+4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ static void do_hue_sat_fac(bNode *node, float *out, float *in, float *fac)
|
|||||||
out[3]= in[3];
|
out[3]= in[3];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QUATCOPY(out, in);
|
copy_v4_v4(out, in);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ static void do_invert(bNode *node, float *out, float *in)
|
|||||||
out[1] = 1.0f - in[1];
|
out[1] = 1.0f - in[1];
|
||||||
out[2] = 1.0f - in[2];
|
out[2] = 1.0f - in[2];
|
||||||
} else
|
} else
|
||||||
VECCOPY(out, in);
|
copy_v3_v3(out, in);
|
||||||
|
|
||||||
if(node->custom1 & CMP_CHAN_A)
|
if(node->custom1 & CMP_CHAN_A)
|
||||||
out[3] = 1.0f - in[3];
|
out[3] = 1.0f - in[3];
|
||||||
@@ -75,7 +75,7 @@ static void do_invert_fac(bNode *node, float *out, float *in, float *fac)
|
|||||||
if(node->custom1 & CMP_CHAN_A)
|
if(node->custom1 & CMP_CHAN_A)
|
||||||
col[3] = fac[0]*col[3] + (facm*in[3]);
|
col[3] = fac[0]*col[3] + (facm*in[3]);
|
||||||
|
|
||||||
QUATCOPY(out, col);
|
copy_v4_v4(out, col);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_composit_exec_invert(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
|
static void node_composit_exec_invert(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
|
||||||
|
|||||||
@@ -47,12 +47,12 @@ static void do_mix_rgb(bNode *node, float *out, float *in1, float *in2, float *f
|
|||||||
{
|
{
|
||||||
float col[3];
|
float col[3];
|
||||||
|
|
||||||
VECCOPY(col, in1);
|
copy_v3_v3(col, in1);
|
||||||
if(node->custom2)
|
if(node->custom2)
|
||||||
ramp_blend(node->custom1, col, col+1, col+2, in2[3]*fac[0], in2);
|
ramp_blend(node->custom1, col, col+1, col+2, in2[3]*fac[0], in2);
|
||||||
else
|
else
|
||||||
ramp_blend(node->custom1, col, col+1, col+2, fac[0], in2);
|
ramp_blend(node->custom1, col, col+1, col+2, fac[0], in2);
|
||||||
VECCOPY(out, col);
|
copy_v3_v3(out, col);
|
||||||
out[3]= in1[3];
|
out[3]= in1[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ static void node_composit_exec_normal(void *UNUSED(data), bNode *node, bNodeStac
|
|||||||
|
|
||||||
/* input no image? then only vector op */
|
/* input no image? then only vector op */
|
||||||
if(in[0]->data==NULL) {
|
if(in[0]->data==NULL) {
|
||||||
VECCOPY(out[0]->vec, nor);
|
copy_v3_v3(out[0]->vec, nor);
|
||||||
/* render normals point inside... the widget points outside */
|
/* render normals point inside... the widget points outside */
|
||||||
out[1]->vec[0]= -dot_v3v3(out[0]->vec, in[0]->vec);
|
out[1]->vec[0]= -dot_v3v3(out[0]->vec, in[0]->vec);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ static void node_composit_exec_normalize(void *UNUSED(data), bNode *node, bNodeS
|
|||||||
|
|
||||||
/* Input has no image buffer? Then pass the value */
|
/* Input has no image buffer? Then pass the value */
|
||||||
if(in[0]->data==NULL) {
|
if(in[0]->data==NULL) {
|
||||||
QUATCOPY(out[0]->vec, in[0]->vec);
|
copy_v4_v4(out[0]->vec, in[0]->vec);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
float min = 1.0f+BLENDER_ZMAX;
|
float min = 1.0f+BLENDER_ZMAX;
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ static void node_composit_exec_rgb(void *UNUSED(data), bNode *node, bNodeStack *
|
|||||||
bNodeSocket *sock= node->outputs.first;
|
bNodeSocket *sock= node->outputs.first;
|
||||||
float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value;
|
float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value;
|
||||||
|
|
||||||
QUATCOPY(out[0]->vec, col);
|
copy_v4_v4(out[0]->vec, col);
|
||||||
}
|
}
|
||||||
|
|
||||||
void register_node_type_cmp_rgb(ListBase *lb)
|
void register_node_type_cmp_rgb(ListBase *lb)
|
||||||
|
|||||||
@@ -42,10 +42,10 @@ static bNodeSocketTemplate cmp_node_splitviewer_in[]= {
|
|||||||
static void do_copy_split_rgba(bNode *UNUSED(node), float *out, float *in1, float *in2, float *fac)
|
static void do_copy_split_rgba(bNode *UNUSED(node), float *out, float *in1, float *in2, float *fac)
|
||||||
{
|
{
|
||||||
if(*fac==0.0f) {
|
if(*fac==0.0f) {
|
||||||
QUATCOPY(out, in1);
|
copy_v4_v4(out, in1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QUATCOPY(out, in2);
|
copy_v4_v4(out, in2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ static void texture_procedural(CompBuf *cbuf, float *out, float xco, float yco)
|
|||||||
else col[0]= col[1]= col[2]= col[3];
|
else col[0]= col[1]= col[2]= col[3];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
VECCOPY(col, nor);
|
copy_v3_v3(col, nor);
|
||||||
}
|
}
|
||||||
|
|
||||||
typecheck_compbuf_color(out, col, cbuf->type, cbuf->procedural_type);
|
typecheck_compbuf_color(out, col, cbuf->type, cbuf->procedural_type);
|
||||||
@@ -101,8 +101,8 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in,
|
|||||||
|
|
||||||
prevbuf->rect_procedural= texture_procedural;
|
prevbuf->rect_procedural= texture_procedural;
|
||||||
prevbuf->node= node;
|
prevbuf->node= node;
|
||||||
VECCOPY(prevbuf->procedural_offset, in[0]->vec);
|
copy_v3_v3(prevbuf->procedural_offset, in[0]->vec);
|
||||||
VECCOPY(prevbuf->procedural_size, in[1]->vec);
|
copy_v3_v3(prevbuf->procedural_size, in[1]->vec);
|
||||||
prevbuf->procedural_type= CB_RGBA;
|
prevbuf->procedural_type= CB_RGBA;
|
||||||
composit1_pixel_processor(node, prevbuf, prevbuf, out[0]->vec, do_copy_rgba, CB_RGBA);
|
composit1_pixel_processor(node, prevbuf, prevbuf, out[0]->vec, do_copy_rgba, CB_RGBA);
|
||||||
|
|
||||||
@@ -118,8 +118,8 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in,
|
|||||||
|
|
||||||
stackbuf->rect_procedural= texture_procedural;
|
stackbuf->rect_procedural= texture_procedural;
|
||||||
stackbuf->node= node;
|
stackbuf->node= node;
|
||||||
VECCOPY(stackbuf->procedural_offset, in[0]->vec);
|
copy_v3_v3(stackbuf->procedural_offset, in[0]->vec);
|
||||||
VECCOPY(stackbuf->procedural_size, in[1]->vec);
|
copy_v3_v3(stackbuf->procedural_size, in[1]->vec);
|
||||||
stackbuf->procedural_type= CB_VAL;
|
stackbuf->procedural_type= CB_VAL;
|
||||||
composit1_pixel_processor(node, stackbuf, stackbuf, out[0]->vec, do_copy_value, CB_VAL);
|
composit1_pixel_processor(node, stackbuf, stackbuf, out[0]->vec, do_copy_value, CB_VAL);
|
||||||
stackbuf->rect_procedural= NULL;
|
stackbuf->rect_procedural= NULL;
|
||||||
@@ -131,8 +131,8 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in,
|
|||||||
|
|
||||||
stackbuf->rect_procedural= texture_procedural;
|
stackbuf->rect_procedural= texture_procedural;
|
||||||
stackbuf->node= node;
|
stackbuf->node= node;
|
||||||
VECCOPY(stackbuf->procedural_offset, in[0]->vec);
|
copy_v3_v3(stackbuf->procedural_offset, in[0]->vec);
|
||||||
VECCOPY(stackbuf->procedural_size, in[1]->vec);
|
copy_v3_v3(stackbuf->procedural_size, in[1]->vec);
|
||||||
stackbuf->procedural_type= CB_RGBA;
|
stackbuf->procedural_type= CB_RGBA;
|
||||||
composit1_pixel_processor(node, stackbuf, stackbuf, out[0]->vec, do_copy_rgba, CB_RGBA);
|
composit1_pixel_processor(node, stackbuf, stackbuf, out[0]->vec, do_copy_rgba, CB_RGBA);
|
||||||
stackbuf->rect_procedural= NULL;
|
stackbuf->rect_procedural= NULL;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ static void do_zcombine(bNode *node, float *out, float *src1, float *z1, float *
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// do combination based solely on z value
|
// do combination based solely on z value
|
||||||
QUATCOPY(out, src1);
|
copy_v4_v4(out, src1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -80,7 +80,7 @@ static void do_zcombine(bNode *node, float *out, float *src1, float *z1, float *
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// do combination based solely on z value
|
// do combination based solely on z value
|
||||||
QUATCOPY(out, src1);
|
copy_v4_v4(out, src1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(node->custom2)
|
if(node->custom2)
|
||||||
|
|||||||
@@ -55,12 +55,12 @@ void nodestack_get_vec(float *in, short type_in, bNodeStack *ns)
|
|||||||
in[2]= from[0];
|
in[2]= from[0];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
VECCOPY(in, from);
|
copy_v3_v3(in, from);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { /* type_in==SOCK_RGBA */
|
else { /* type_in==SOCK_RGBA */
|
||||||
if(ns->sockettype==SOCK_RGBA) {
|
if(ns->sockettype==SOCK_RGBA) {
|
||||||
QUATCOPY(in, from);
|
copy_v4_v4(in, from);
|
||||||
}
|
}
|
||||||
else if(ns->sockettype==SOCK_FLOAT) {
|
else if(ns->sockettype==SOCK_FLOAT) {
|
||||||
in[0]= from[0];
|
in[0]= from[0];
|
||||||
@@ -69,7 +69,7 @@ void nodestack_get_vec(float *in, short type_in, bNodeStack *ns)
|
|||||||
in[3]= 1.0f;
|
in[3]= 1.0f;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
VECCOPY(in, from);
|
copy_v3_v3(in, from);
|
||||||
in[3]= 1.0f;
|
in[3]= 1.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -140,13 +140,13 @@ void nodeShaderSynchronizeID(bNode *node, int copyto)
|
|||||||
if(copyto) {
|
if(copyto) {
|
||||||
switch(a) {
|
switch(a) {
|
||||||
case MAT_IN_COLOR:
|
case MAT_IN_COLOR:
|
||||||
VECCOPY(&ma->r, ((bNodeSocketValueRGBA*)sock->default_value)->value); break;
|
copy_v3_v3(&ma->r, ((bNodeSocketValueRGBA*)sock->default_value)->value); break;
|
||||||
case MAT_IN_SPEC:
|
case MAT_IN_SPEC:
|
||||||
VECCOPY(&ma->specr, ((bNodeSocketValueRGBA*)sock->default_value)->value); break;
|
copy_v3_v3(&ma->specr, ((bNodeSocketValueRGBA*)sock->default_value)->value); break;
|
||||||
case MAT_IN_REFL:
|
case MAT_IN_REFL:
|
||||||
ma->ref= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
|
ma->ref= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
|
||||||
case MAT_IN_MIR:
|
case MAT_IN_MIR:
|
||||||
VECCOPY(&ma->mirr, ((bNodeSocketValueRGBA*)sock->default_value)->value); break;
|
copy_v3_v3(&ma->mirr, ((bNodeSocketValueRGBA*)sock->default_value)->value); break;
|
||||||
case MAT_IN_AMB:
|
case MAT_IN_AMB:
|
||||||
ma->amb= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
|
ma->amb= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
|
||||||
case MAT_IN_EMIT:
|
case MAT_IN_EMIT:
|
||||||
@@ -164,13 +164,13 @@ void nodeShaderSynchronizeID(bNode *node, int copyto)
|
|||||||
else {
|
else {
|
||||||
switch(a) {
|
switch(a) {
|
||||||
case MAT_IN_COLOR:
|
case MAT_IN_COLOR:
|
||||||
VECCOPY(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->r); break;
|
copy_v3_v3(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->r); break;
|
||||||
case MAT_IN_SPEC:
|
case MAT_IN_SPEC:
|
||||||
VECCOPY(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->specr); break;
|
copy_v3_v3(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->specr); break;
|
||||||
case MAT_IN_REFL:
|
case MAT_IN_REFL:
|
||||||
((bNodeSocketValueFloat*)sock->default_value)->value= ma->ref; break;
|
((bNodeSocketValueFloat*)sock->default_value)->value= ma->ref; break;
|
||||||
case MAT_IN_MIR:
|
case MAT_IN_MIR:
|
||||||
VECCOPY(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->mirr); break;
|
copy_v3_v3(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->mirr); break;
|
||||||
case MAT_IN_AMB:
|
case MAT_IN_AMB:
|
||||||
((bNodeSocketValueFloat*)sock->default_value)->value= ma->amb; break;
|
((bNodeSocketValueFloat*)sock->default_value)->value= ma->amb; break;
|
||||||
case MAT_IN_EMIT:
|
case MAT_IN_EMIT:
|
||||||
@@ -196,7 +196,7 @@ void node_gpu_stack_from_data(struct GPUNodeStack *gs, int type, bNodeStack *ns)
|
|||||||
{
|
{
|
||||||
memset(gs, 0, sizeof(*gs));
|
memset(gs, 0, sizeof(*gs));
|
||||||
|
|
||||||
QUATCOPY(gs->vec, ns->vec);
|
copy_v4_v4(gs->vec, ns->vec);
|
||||||
gs->link= ns->data;
|
gs->link= ns->data;
|
||||||
|
|
||||||
if (type == SOCK_FLOAT)
|
if (type == SOCK_FLOAT)
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ static void node_shader_exec_camera(void *data, bNode *UNUSED(node), bNodeStack
|
|||||||
if(data) {
|
if(data) {
|
||||||
ShadeInput *shi= ((ShaderCallData *)data)->shi; /* Data we need for shading. */
|
ShadeInput *shi= ((ShaderCallData *)data)->shi; /* Data we need for shading. */
|
||||||
|
|
||||||
VECCOPY(out[0]->vec, shi->co); /* get view vector */
|
copy_v3_v3(out[0]->vec, shi->co); /* get view vector */
|
||||||
out[1]->vec[0]= fabs(shi->co[2]); /* get view z-depth */
|
out[1]->vec[0]= fabs(shi->co[2]); /* get view z-depth */
|
||||||
out[2]->vec[0]= normalize_v3(out[0]->vec); /* get view distance */
|
out[2]->vec[0]= normalize_v3(out[0]->vec); /* get view distance */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ static void node_shader_exec_geom(void *data, bNode *node, bNodeStack **UNUSED(i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VECCOPY(out[GEOM_OUT_VCOL]->vec, scol->col);
|
copy_v3_v3(out[GEOM_OUT_VCOL]->vec, scol->col);
|
||||||
out[GEOM_OUT_VCOL]->vec[3]= 1.0f;
|
out[GEOM_OUT_VCOL]->vec[3]= 1.0f;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ static void do_hue_sat_fac(bNode *UNUSED(node), float *out, float *hue, float *s
|
|||||||
out[2]= mfac*in[2] + *fac*col[2];
|
out[2]= mfac*in[2] + *fac*col[2];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QUATCOPY(out, in);
|
copy_v4_v4(out, in);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ bNodeStack **out)
|
|||||||
col[2] = in[0]->vec[0]*col[2] + (facm*in[1]->vec[2]);
|
col[2] = in[0]->vec[0]*col[2] + (facm*in[1]->vec[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
VECCOPY(out[0]->vec, col);
|
copy_v3_v3(out[0]->vec, col);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gpu_shader_invert(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)
|
static int gpu_shader_invert(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)
|
||||||
|
|||||||
@@ -148,13 +148,13 @@ static void node_shader_exec_material(void *data, bNode *node, bNodeStack **in,
|
|||||||
|
|
||||||
/* write to outputs */
|
/* write to outputs */
|
||||||
if(node->custom1 & SH_NODE_MAT_DIFF) {
|
if(node->custom1 & SH_NODE_MAT_DIFF) {
|
||||||
VECCOPY(col, shrnode.combined);
|
copy_v3_v3(col, shrnode.combined);
|
||||||
if(!(node->custom1 & SH_NODE_MAT_SPEC)) {
|
if(!(node->custom1 & SH_NODE_MAT_SPEC)) {
|
||||||
sub_v3_v3(col, shrnode.spec);
|
sub_v3_v3(col, shrnode.spec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(node->custom1 & SH_NODE_MAT_SPEC) {
|
else if(node->custom1 & SH_NODE_MAT_SPEC) {
|
||||||
VECCOPY(col, shrnode.spec);
|
copy_v3_v3(col, shrnode.spec);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
col[0]= col[1]= col[2]= 0.0f;
|
col[0]= col[1]= col[2]= 0.0f;
|
||||||
@@ -164,7 +164,7 @@ static void node_shader_exec_material(void *data, bNode *node, bNodeStack **in,
|
|||||||
if(shi->do_preview)
|
if(shi->do_preview)
|
||||||
nodeAddToPreview(node, col, shi->xs, shi->ys, shi->do_manage);
|
nodeAddToPreview(node, col, shi->xs, shi->ys, shi->do_manage);
|
||||||
|
|
||||||
VECCOPY(out[MAT_OUT_COLOR]->vec, col);
|
copy_v3_v3(out[MAT_OUT_COLOR]->vec, col);
|
||||||
out[MAT_OUT_ALPHA]->vec[0]= shrnode.alpha;
|
out[MAT_OUT_ALPHA]->vec[0]= shrnode.alpha;
|
||||||
|
|
||||||
if(node->custom1 & SH_NODE_MAT_NEG) {
|
if(node->custom1 & SH_NODE_MAT_NEG) {
|
||||||
@@ -173,15 +173,15 @@ static void node_shader_exec_material(void *data, bNode *node, bNodeStack **in,
|
|||||||
shi->vn[2]= -shi->vn[2];
|
shi->vn[2]= -shi->vn[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
VECCOPY(out[MAT_OUT_NORMAL]->vec, shi->vn);
|
copy_v3_v3(out[MAT_OUT_NORMAL]->vec, shi->vn);
|
||||||
|
|
||||||
/* Extended material options */
|
/* Extended material options */
|
||||||
if (node->type == SH_NODE_MATERIAL_EXT) {
|
if (node->type == SH_NODE_MATERIAL_EXT) {
|
||||||
/* Shadow, Reflect, Refract, Radiosity, Speed seem to cause problems inside
|
/* Shadow, Reflect, Refract, Radiosity, Speed seem to cause problems inside
|
||||||
* a node tree :( */
|
* a node tree :( */
|
||||||
VECCOPY(out[MAT_OUT_DIFFUSE]->vec, shrnode.diff);
|
copy_v3_v3(out[MAT_OUT_DIFFUSE]->vec, shrnode.diff);
|
||||||
VECCOPY(out[MAT_OUT_SPEC]->vec, shrnode.spec);
|
copy_v3_v3(out[MAT_OUT_SPEC]->vec, shrnode.spec);
|
||||||
VECCOPY(out[MAT_OUT_AO]->vec, shrnode.ao);
|
copy_v3_v3(out[MAT_OUT_AO]->vec, shrnode.ao);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* copy passes, now just active node */
|
/* copy passes, now just active node */
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ static void node_shader_exec_mix_rgb(void *UNUSED(data), bNode *node, bNodeStack
|
|||||||
nodestack_get_vec(vec, SOCK_VECTOR, in[2]);
|
nodestack_get_vec(vec, SOCK_VECTOR, in[2]);
|
||||||
|
|
||||||
ramp_blend(node->custom1, col, col+1, col+2, fac, vec);
|
ramp_blend(node->custom1, col, col+1, col+2, fac, vec);
|
||||||
VECCOPY(out[0]->vec, col);
|
copy_v3_v3(out[0]->vec, col);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gpu_shader_mix_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out)
|
static int gpu_shader_mix_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out)
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ static void node_shader_exec_normal(void *UNUSED(data), bNode *node, bNodeStack
|
|||||||
|
|
||||||
nodestack_get_vec(vec, SOCK_VECTOR, in[0]);
|
nodestack_get_vec(vec, SOCK_VECTOR, in[0]);
|
||||||
|
|
||||||
VECCOPY(out[0]->vec, ((bNodeSocketValueVector*)sock->default_value)->value);
|
copy_v3_v3(out[0]->vec, ((bNodeSocketValueVector*)sock->default_value)->value);
|
||||||
/* render normals point inside... the widget points outside */
|
/* render normals point inside... the widget points outside */
|
||||||
out[1]->vec[0]= -INPR(out[0]->vec, vec);
|
out[1]->vec[0]= -INPR(out[0]->vec, vec);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ static void node_shader_exec_output(void *data, bNode *node, bNodeStack **in, bN
|
|||||||
if(node->flag & NODE_DO_OUTPUT) {
|
if(node->flag & NODE_DO_OUTPUT) {
|
||||||
ShadeResult *shr= ((ShaderCallData *)data)->shr;
|
ShadeResult *shr= ((ShaderCallData *)data)->shr;
|
||||||
|
|
||||||
QUATCOPY(shr->combined, col);
|
copy_v4_v4(shr->combined, col);
|
||||||
shr->alpha= col[3];
|
shr->alpha= col[3];
|
||||||
|
|
||||||
// VECCOPY(shr->nor, in[3]->vec);
|
// copy_v3_v3(shr->nor, in[3]->vec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ static void node_shader_exec_rgb(void *UNUSED(data), bNode *node, bNodeStack **U
|
|||||||
bNodeSocket *sock= node->outputs.first;
|
bNodeSocket *sock= node->outputs.first;
|
||||||
float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value;
|
float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value;
|
||||||
|
|
||||||
VECCOPY(out[0]->vec, col);
|
copy_v3_v3(out[0]->vec, col);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gpu_shader_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out)
|
static int gpu_shader_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out)
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ static void node_shader_exec_texture(void *data, bNode *node, bNodeStack **in, b
|
|||||||
retval= multitex_nodes((Tex *)node->id, vec, NULL, NULL, 0, &texres, thread, which_output, NULL, NULL);
|
retval= multitex_nodes((Tex *)node->id, vec, NULL, NULL, 0, &texres, thread, which_output, NULL, NULL);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
VECCOPY(vec, shi->lo);
|
copy_v3_v3(vec, shi->lo);
|
||||||
retval= multitex_nodes((Tex *)node->id, vec, NULL, NULL, 0, &texres, thread, which_output, NULL, NULL);
|
retval= multitex_nodes((Tex *)node->id, vec, NULL, NULL, 0, &texres, thread, which_output, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ static void node_shader_exec_texture(void *data, bNode *node, bNodeStack **in, b
|
|||||||
out[1]->vec[3]= 1.0f;
|
out[1]->vec[3]= 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
VECCOPY(out[2]->vec, nor);
|
copy_v3_v3(out[2]->vec, nor);
|
||||||
|
|
||||||
if(shi->do_preview)
|
if(shi->do_preview)
|
||||||
nodeAddToPreview(node, out[1]->vec, shi->xs, shi->ys, shi->do_manage);
|
nodeAddToPreview(node, out[1]->vec, shi->xs, shi->ys, shi->do_manage);
|
||||||
|
|||||||
@@ -107,9 +107,9 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
|||||||
if( ins_x < mortar_thickness || ins_y < mortar_thickness ||
|
if( ins_x < mortar_thickness || ins_y < mortar_thickness ||
|
||||||
ins_x > (brick_width - mortar_thickness) ||
|
ins_x > (brick_width - mortar_thickness) ||
|
||||||
ins_y > (row_height - mortar_thickness) ) {
|
ins_y > (row_height - mortar_thickness) ) {
|
||||||
QUATCOPY( out, mortar );
|
copy_v4_v4( out, mortar );
|
||||||
} else {
|
} else {
|
||||||
QUATCOPY( out, bricks1 );
|
copy_v4_v4( out, bricks1 );
|
||||||
ramp_blend( MA_RAMP_BLEND, out, out+1, out+2, tint, bricks2 );
|
ramp_blend( MA_RAMP_BLEND, out, out+1, out+2, tint, bricks2 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ static void do_hue_sat_fac(bNode *UNUSED(node), float *out, float hue, float sat
|
|||||||
out[2]= mfac*in[2] + fac*col[2];
|
out[2]= mfac*in[2] + fac*col[2];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QUATCOPY(out, in);
|
copy_v4_v4(out, in);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **UNUSED(i
|
|||||||
while( py >= ibuf->y ) py -= ibuf->y;
|
while( py >= ibuf->y ) py -= ibuf->y;
|
||||||
|
|
||||||
result = ibuf->rect_float + py*ibuf->x*4 + px*4;
|
result = ibuf->rect_float + py*ibuf->x*4 + px*4;
|
||||||
QUATCOPY( out, result );
|
copy_v4_v4( out, result );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ static void colorfn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **
|
|||||||
col[1] = 1.0f - col[1];
|
col[1] = 1.0f - col[1];
|
||||||
col[2] = 1.0f - col[2];
|
col[2] = 1.0f - col[2];
|
||||||
|
|
||||||
VECCOPY(out, col);
|
copy_v3_v3(out, col);
|
||||||
out[3] = col[3];
|
out[3] = col[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
|||||||
|
|
||||||
CLAMP(fac, 0.0f, 1.0f);
|
CLAMP(fac, 0.0f, 1.0f);
|
||||||
|
|
||||||
QUATCOPY(out, col1);
|
copy_v4_v4(out, col1);
|
||||||
ramp_blend(node->custom1, out, out+1, out+2, fac, col2);
|
ramp_blend(node->custom1, out, out+1, out+2, fac, col2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ static void do_proc(float *result, TexParams *p, float *col1, float *col2, char
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if(textype & TEX_RGB) {
|
if(textype & TEX_RGB) {
|
||||||
QUATCOPY(result, &texres.tr);
|
copy_v4_v4(result, &texres.tr);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QUATCOPY(result, col1);
|
copy_v4_v4(result, col1);
|
||||||
ramp_blend(MA_RAMP_BLEND, result, result+1, result+2, texres.tin, col2);
|
ramp_blend(MA_RAMP_BLEND, result, result+1, result+2, texres.tin, col2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
|||||||
|
|
||||||
if(node->custom2 || node->need_exec==0) {
|
if(node->custom2 || node->need_exec==0) {
|
||||||
/* this node refers to its own texture tree! */
|
/* this node refers to its own texture tree! */
|
||||||
QUATCOPY(out, (fabs(co[0] - co[1]) < .01) ? white : red );
|
copy_v4_v4(out, (fabs(co[0] - co[1]) < .01) ? white : red );
|
||||||
}
|
}
|
||||||
else if(nodetex) {
|
else if(nodetex) {
|
||||||
TexResult texres;
|
TexResult texres;
|
||||||
@@ -81,10 +81,10 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
|
|||||||
&texres, thread, 0, p->shi, p->mtex);
|
&texres, thread, 0, p->shi, p->mtex);
|
||||||
|
|
||||||
if(textype & TEX_RGB) {
|
if(textype & TEX_RGB) {
|
||||||
QUATCOPY(out, &texres.tr);
|
copy_v4_v4(out, &texres.tr);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QUATCOPY(out, col1);
|
copy_v4_v4(out, col1);
|
||||||
ramp_blend(MA_RAMP_BLEND, out, out+1, out+2, texres.tin, col2);
|
ramp_blend(MA_RAMP_BLEND, out, out+1, out+2, texres.tin, col2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user