More Nodes wrapped to Layout Engine:

* Map Value, Alpha Over, Hue Saturation, Dilate/Erode
* RNA fixes and additions.
This commit is contained in:
2009-09-19 19:57:30 +00:00
parent 45089af1b2
commit f7d8275ddb
3 changed files with 61 additions and 53 deletions

View File

@@ -1348,72 +1348,49 @@ static void node_composit_buts_splitviewer(uiLayout *layout, PointerRNA *ptr)
static void node_composit_buts_map_value(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
TexMapping *texmap= node->storage;
short xstart= (short)butr->xmin;
short dy= (short)(butr->ymax-19.0f);
short dx= (short)(butr->xmax-butr->xmin)/2;
uiLayout *sub, *col;
uiBlockBeginAlign(block);
uiDefButF(block, NUM, B_NODE_EXEC, "Offs:", xstart, dy, 2*dx, 19, texmap->loc, -1000.0f, 1000.0f, 10, 2, "");
dy-= 19;
uiDefButF(block, NUM, B_NODE_EXEC, "Size:", xstart, dy, 2*dx, 19, texmap->size, -1000.0f, 1000.0f, 10, 3, "");
dy-= 23;
uiBlockBeginAlign(block);
uiDefButBitI(block, TOG, TEXMAP_CLIP_MIN, B_NODE_EXEC, "Min", xstart, dy, dx, 19, &texmap->flag, 0.0f, 0.0f, 0, 0, "");
uiDefButF(block, NUM, B_NODE_EXEC, "", xstart+dx, dy, dx, 19, texmap->min, -1000.0f, 1000.0f, 10, 2, "");
dy-= 19;
uiDefButBitI(block, TOG, TEXMAP_CLIP_MAX, B_NODE_EXEC, "Max", xstart, dy, dx, 19, &texmap->flag, 0.0f, 0.0f, 0, 0, "");
uiDefButF(block, NUM, B_NODE_EXEC, "", xstart+dx, dy, dx, 19, texmap->max, -1000.0f, 1000.0f, 10, 2, "");
col =uiLayoutColumn(layout, 1);
uiItemR(col, NULL, 0, ptr, "offset", 0);
uiItemR(col, NULL, 0, ptr, "size", 0);
col =uiLayoutColumn(layout, 1);
uiItemR(col, NULL, 0, ptr, "use_min", 0);
sub =uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_min"));
uiItemR(sub, "", 0, ptr, "min", 0);
col =uiLayoutColumn(layout, 1);
uiItemR(col, NULL, 0, ptr, "use_max", 0);
sub =uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_max"));
uiItemR(sub, "", 0, ptr, "max", 0);
}
static void node_composit_buts_alphaover(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
NodeTwoFloats *ntf= node->storage;
{
uiLayout *col;
col =uiLayoutColumn(layout, 1);
/* alpha type */
uiDefButS(block, TOG, B_NODE_EXEC, "ConvertPremul",
butr->xmin, butr->ymin+19, butr->xmax-butr->xmin, 19,
&node->custom1, 0, 0, 0, 0, "");
uiItemR(col, NULL, 0, ptr, "convert_premul", 0);
/* mix factor */
uiDefButF(block, NUM, B_NODE_EXEC, "Premul: ",
butr->xmin, butr->ymin, butr->xmax-butr->xmin, 19,
&ntf->x, 0.0f, 1.0f, 100, 0, "");
uiItemR(col, NULL, 0, ptr, "premul", 0);
}
static void node_composit_buts_hue_sat(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
NodeHueSat *nhs= node->storage;
uiLayout *col;
uiBlockBeginAlign(block);
uiDefButF(block, NUMSLI, B_NODE_EXEC, "Hue: ",
butr->xmin, butr->ymin+40.0f, butr->xmax-butr->xmin, 20,
&nhs->hue, 0.0f, 1.0f, 100, 0, "");
uiDefButF(block, NUMSLI, B_NODE_EXEC, "Sat: ",
butr->xmin, butr->ymin+20.0f, butr->xmax-butr->xmin, 20,
&nhs->sat, 0.0f, 2.0f, 100, 0, "");
uiDefButF(block, NUMSLI, B_NODE_EXEC, "Val: ",
butr->xmin, butr->ymin, butr->xmax-butr->xmin, 20,
&nhs->val, 0.0f, 2.0f, 100, 0, "");
col =uiLayoutColumn(layout, 1);
uiItemR(col, NULL, 0, ptr, "hue", UI_ITEM_R_SLIDER);
uiItemR(col, NULL, 0, ptr, "sat", UI_ITEM_R_SLIDER);
uiItemR(col, NULL, 0, ptr, "val", UI_ITEM_R_SLIDER);
}
static void node_composit_buts_dilateerode(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
uiDefButS(block, NUM, B_NODE_EXEC, "Distance:",
butr->xmin, butr->ymin, butr->xmax-butr->xmin, 20,
&node->custom2, -100, 100, 0, 0, "Distance to grow/shrink (number of iterations)");
uiItemR(layout, NULL, 0, ptr, "distance", 0);
}
static void node_composit_buts_diff_matte(uiLayout *layout, PointerRNA *ptr)

View File

@@ -473,10 +473,11 @@ static void def_sh_geometry(StructRNA *srna)
static void def_cmp_alpha_over(StructRNA *srna)
{
PropertyRNA *prop;
// XXX: Tooltip
prop = RNA_def_property(srna, "convert_premul", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "custom1", 1);
RNA_def_property_ui_text(prop, "convert_premul", "TODO: don't know what this is");
RNA_def_property_ui_text(prop, "Convert Premul", "");
RNA_def_property_update(prop, 0, "rna_Node_update");
RNA_def_struct_sdna_from(srna, "NodeTwoFloats", "storage");
@@ -488,6 +489,31 @@ static void def_cmp_alpha_over(StructRNA *srna)
RNA_def_property_update(prop, 0, "rna_Node_update");
}
static void def_cmp_hue_saturation(StructRNA *srna)
{
PropertyRNA *prop;
RNA_def_struct_sdna_from(srna, "NodeHueSat", "storage");
prop = RNA_def_property(srna, "hue", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "hue");
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Hue", "");
RNA_def_property_update(prop, 0, "rna_Node_update");
prop = RNA_def_property(srna, "sat", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "sat");
RNA_def_property_range(prop, 0.0f, 2.0f);
RNA_def_property_ui_text(prop, "Saturation", "");
RNA_def_property_update(prop, 0, "rna_Node_update");
prop = RNA_def_property(srna, "val", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "val");
RNA_def_property_range(prop, 0.0f, 2.0f);
RNA_def_property_ui_text(prop, "Value", "");
RNA_def_property_update(prop, 0, "rna_Node_update");
}
static void def_cmp_blur(StructRNA *srna)
{
PropertyRNA *prop;
@@ -605,12 +631,14 @@ static void def_cmp_map_value(StructRNA *srna)
prop = RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "loc");
RNA_def_property_array(prop, 1);
RNA_def_property_range(prop, -1000.0f, 1000.0f);
RNA_def_property_ui_text(prop, "Offset", "");
RNA_def_property_update(prop, 0, "rna_Node_update");
prop = RNA_def_property(srna, "size", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "size");
RNA_def_property_array(prop, 1);
RNA_def_property_range(prop, -1000.0f, 1000.0f);
RNA_def_property_ui_text(prop, "Size", "");
RNA_def_property_update(prop, 0, "rna_Node_update");
@@ -627,12 +655,14 @@ static void def_cmp_map_value(StructRNA *srna)
prop = RNA_def_property(srna, "min", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "min");
RNA_def_property_array(prop, 1);
RNA_def_property_range(prop, -1000.0f, 1000.0f);
RNA_def_property_ui_text(prop, "Minimum", "");
RNA_def_property_update(prop, 0, "rna_Node_update");
prop = RNA_def_property(srna, "max", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "max");
RNA_def_property_array(prop, 1);
RNA_def_property_range(prop, -1000.0f, 1000.0f);
RNA_def_property_ui_text(prop, "Maximum", "");
RNA_def_property_update(prop, 0, "rna_Node_update");
@@ -837,6 +867,7 @@ static void def_cmp_dilate_erode(StructRNA *srna)
prop = RNA_def_property(srna, "distance", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "custom2");
RNA_def_property_range(prop, -100, 100);
RNA_def_property_ui_text(prop, "Distance", "Distance to grow/shrink (number of iterations)");
RNA_def_property_update(prop, 0, "rna_Node_update");
}

View File

@@ -64,7 +64,7 @@ DefNode( CompositorNode, CMP_NODE_VECBLUR, def_cmp_vector_blur, "VECBL
DefNode( CompositorNode, CMP_NODE_SEPRGBA, 0, "SEPRGBA", SepRGBA, "Separate RGBA", "" )
DefNode( CompositorNode, CMP_NODE_SEPHSVA, 0, "SEPHSVA", SepHSVA, "Separate HSVA", "" )
DefNode( CompositorNode, CMP_NODE_SETALPHA, 0, "SETALPHA", SetAlpha, "Set Alpha", "" )
DefNode( CompositorNode, CMP_NODE_HUE_SAT, 0, "HUE_SAT", HueSat, "Hue/Saturation", "" )
DefNode( CompositorNode, CMP_NODE_HUE_SAT, def_cmp_hue_saturation, "HUE_SAT", HueSat, "Hue/Saturation", "" )
DefNode( CompositorNode, CMP_NODE_IMAGE, def_cmp_image, "IMAGE", Image, "Image", "" )
DefNode( CompositorNode, CMP_NODE_R_LAYERS, def_cmp_render_layers, "R_LAYERS", RLayers, "Render Layers", "" )
DefNode( CompositorNode, CMP_NODE_COMPOSITE, 0, "COMPOSITE", Composite, "Composite", "" )