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/blender/editors | |
parent | ecda79a8b82fb583cbea2a0c4bf430c649b46e33 (diff) |
Cycles: tangent and normal map now show UV map link menu instead of text field.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/space_node/drawnode.c | 28 |
1 files changed, 22 insertions, 6 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); } |