Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-11-07 00:48:26 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-11-07 00:48:26 +0400
commit4496b9004c69b5bbcdcf7a154de1f88887196a98 (patch)
tree0dfa1cfd04479dbdfb76aed01812b39b0538df9f /source
parentecda79a8b82fb583cbea2a0c4bf430c649b46e33 (diff)
Cycles: tangent and normal map now show UV map link menu instead of text field.
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/space_node/drawnode.c28
-rw-r--r--source/blender/makesrna/intern/rna_nodetree.c4
2 files changed, 24 insertions, 8 deletions
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index b99842502ec..9fa5e9a041b 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -1379,15 +1379,23 @@ static void node_shader_buts_tex_coord(uiLayout *layout, bContext *UNUSED(C), Po
uiItemR(layout, ptr, "from_dupli", 0, NULL, 0);
}
-static void node_shader_buts_normal_map(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+static void node_shader_buts_normal_map(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
uiItemR(layout, ptr, "space", 0, "", 0);
- if(RNA_enum_get(ptr, "space") == SHD_NORMAL_MAP_TANGENT)
- uiItemR(layout, ptr, "uv_map", 0, NULL, 0);
+ if(RNA_enum_get(ptr, "space") == SHD_NORMAL_MAP_TANGENT) {
+ PointerRNA obptr = CTX_data_pointer_get(C, "active_object");
+
+ if(obptr.data && RNA_enum_get(&obptr, "type") == OB_MESH) {
+ PointerRNA dataptr = RNA_pointer_get(&obptr, "data");
+ uiItemPointerR(layout, ptr, "uv_map", &dataptr, "uv_textures", "", ICON_NONE);
+ }
+ else
+ uiItemR(layout, ptr, "uv_map", 0, "", 0);
+ }
}
-static void node_shader_buts_tangent(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+static void node_shader_buts_tangent(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
uiLayout *split, *row;
@@ -1397,8 +1405,16 @@ static void node_shader_buts_tangent(uiLayout *layout, bContext *UNUSED(C), Poin
row = uiLayoutRow(split, FALSE);
- if(RNA_enum_get(ptr, "direction_type") == SHD_TANGENT_UVMAP)
- uiItemR(row, ptr, "uv_map", 0, "", 0);
+ if(RNA_enum_get(ptr, "direction_type") == SHD_TANGENT_UVMAP) {
+ PointerRNA obptr = CTX_data_pointer_get(C, "active_object");
+
+ if(obptr.data && RNA_enum_get(&obptr, "type") == OB_MESH) {
+ PointerRNA dataptr = RNA_pointer_get(&obptr, "data");
+ uiItemPointerR(row, ptr, "uv_map", &dataptr, "uv_textures", "", ICON_NONE);
+ }
+ else
+ uiItemR(row, ptr, "uv_map", 0, "", 0);
+ }
else
uiItemR(row, ptr, "axis", UI_ITEM_R_EXPAND, NULL, 0);
}
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 93f37682aa3..0a7e124f591 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -1869,7 +1869,7 @@ static void def_sh_normal_map(StructRNA *srna)
RNA_def_property_update(prop, 0, "rna_Node_update");
prop = RNA_def_property(srna, "uv_map", PROP_STRING, PROP_NONE);
- RNA_def_property_ui_text(prop, "UV Map", "Name of the UV Map for for tangent space maps");
+ RNA_def_property_ui_text(prop, "UV Map", "UV Map for for tangent space maps");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
RNA_def_struct_sdna_from(srna, "bNode", NULL);
@@ -1905,7 +1905,7 @@ static void def_sh_tangent(StructRNA *srna)
RNA_def_property_update(prop, 0, "rna_Node_update");
prop = RNA_def_property(srna, "uv_map", PROP_STRING, PROP_NONE);
- RNA_def_property_ui_text(prop, "UV Map", "Name of the UV Map for for tangent generated from UV");
+ RNA_def_property_ui_text(prop, "UV Map", "UV Map for for tangent generated from UV");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
RNA_def_struct_sdna_from(srna, "bNode", NULL);