diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-11-07 00:48:26 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-11-07 00:48:26 +0400 |
commit | 4496b9004c69b5bbcdcf7a154de1f88887196a98 (patch) | |
tree | 0dfa1cfd04479dbdfb76aed01812b39b0538df9f /source | |
parent | ecda79a8b82fb583cbea2a0c4bf430c649b46e33 (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.c | 28 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_nodetree.c | 4 |
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); |