Merging r50470 through r50477 from trunk into soc-2011-tomato
[blender.git] / source / blender / nodes / composite / nodes / node_composite_channelMatte.c
index 785786d..06b77de 100644 (file)
 
 /* ******************* Channel Matte Node ********************************* */
 static bNodeSocketTemplate cmp_node_channel_matte_in[]={
-       {SOCK_RGBA,1,"Image", 1.0f, 1.0f, 1.0f, 1.0f},
-       {-1,0,""}
+       {SOCK_RGBA, 1, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f},
+       {-1, 0, ""}
 };
 
 static bNodeSocketTemplate cmp_node_channel_matte_out[]={
-       {SOCK_RGBA,0,"Image"},
-       {SOCK_FLOAT,0,"Matte"},
-       {-1,0,""}
+       {SOCK_RGBA, 0, N_("Image")},
+       {SOCK_FLOAT, 0, N_("Matte")},
+       {-1, 0, ""}
 };
 
+#ifdef WITH_COMPOSITOR_LEGACY
+
 static void do_normalized_rgba_to_ycca2(bNode *UNUSED(node), float *out, float *in)
 {
        /*normalize to the range 0.0 to 1.0) */
-       rgb_to_ycc(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601);
+       rgb_to_ycc(in[0], in[1], in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601);
        out[0]=(out[0])/255.0f;
        out[1]=(out[1])/255.0f;
        out[2]=(out[2])/255.0f;
@@ -61,7 +63,7 @@ static void do_normalized_ycca_to_rgba2(bNode *UNUSED(node), float *out, float *
        in[0]=in[0]*255.0f;
        in[1]=in[1]*255.0f;
        in[2]=in[2]*255.0f;
-       ycc_to_rgb(in[0],in[1],in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601);
+       ycc_to_rgb(in[0], in[1], in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601);
        out[3]=in[3];
 }
 
@@ -71,7 +73,7 @@ static void do_channel_matte(bNode *node, float *out, float *in)
        NodeChroma *c=(NodeChroma *)node->storage;
        float alpha=0.0;        
 
-       switch(c->algorithm) {
+       switch (c->algorithm) {
        case 0: { /* Alpha=key_channel-limit channel */
                int key_channel=node->custom2-1;
                int limit_channel=c->channel-1;
@@ -79,17 +81,20 @@ static void do_channel_matte(bNode *node, float *out, float *in)
                break;
        }
        case 1: { /* Alpha=G-MAX(R, B) */
-               switch(node->custom2) {
-                       case 1: {
-                               alpha=in[0]-MAX2(in[1],in[2]);
+               switch (node->custom2) {
+                       case 1:
+                       {
+                               alpha=in[0]-MAX2(in[1], in[2]);
                                break;
                        }
-                       case 2: {
-                               alpha=in[1]-MAX2(in[0],in[2]);
+                       case 2:
+                       {
+                               alpha=in[1]-MAX2(in[0], in[2]);
                                break;
                        }
-                       case 3: {
-                               alpha=in[2]-MAX2(in[0],in[1]);
+                       case 3:
+                       {
+                               alpha=in[2]-MAX2(in[0], in[1]);
                                break;
                        }
                        default:
@@ -105,10 +110,10 @@ static void do_channel_matte(bNode *node, float *out, float *in)
        alpha=1-alpha;
        
        /* test range*/
-       if(alpha>c->t1) {
+       if (alpha>c->t1) {
                alpha=in[3]; /*whatever it was prior */
        }
-       else if(alpha<c->t2){
+       else if (alpha<c->t2) {
                alpha=0.0;
        }
        else {/*blend */
@@ -130,16 +135,16 @@ static void node_composit_exec_channel_matte(void *data, bNode *node, bNodeStack
        CompBuf *cbuf;
        CompBuf *outbuf;
        
-       if(in[0]->hasinput==0) return;
-       if(in[0]->data==NULL) return;
-       if(out[0]->hasoutput==0 && out[1]->hasoutput==0) return;
+       if (in[0]->hasinput==0) return;
+       if (in[0]->data==NULL) return;
+       if (out[0]->hasoutput==0 && out[1]->hasoutput==0) return;
        
        cbuf=typecheck_compbuf(in[0]->data, CB_RGBA);
        
        outbuf=dupalloc_compbuf(cbuf);
        
        /*convert to colorspace*/
-       switch(node->custom1) {
+       switch (node->custom1) {
        case CMP_NODE_CHANNEL_MATTE_CS_RGB:
                break;
        case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/
@@ -159,7 +164,7 @@ static void node_composit_exec_channel_matte(void *data, bNode *node, bNodeStack
        composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_channel_matte, CB_RGBA);
 
        /*convert back to RGB colorspace in place*/
-       switch(node->custom1) {
+       switch (node->custom1) {
        case CMP_NODE_CHANNEL_MATTE_CS_RGB: /*RGB*/
                break;
        case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/
@@ -177,15 +182,17 @@ static void node_composit_exec_channel_matte(void *data, bNode *node, bNodeStack
 
        generate_preview(data, node, outbuf);
        out[0]->data=outbuf;
-       if(out[1]->hasoutput)
+       if (out[1]->hasoutput)
                out[1]->data=valbuf_from_rgbabuf(outbuf, CHAN_A);
-       
-       if(cbuf!=in[0]->data)
+
+       if (cbuf!=in[0]->data)
                free_compbuf(cbuf);
 
 }
 
-static void node_composit_init_channel_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif  /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_channel_matte(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
 {
        NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma");
        node->storage=c;
@@ -209,7 +216,9 @@ void register_node_type_cmp_channel_matte(bNodeTreeType *ttype)
        node_type_size(&ntype, 200, 80, 250);
        node_type_init(&ntype, node_composit_init_channel_matte);
        node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
        node_type_exec(&ntype, node_composit_exec_channel_matte);
+#endif
 
        nodeRegisterType(ttype, &ntype);
 }