Merged revision(s) 58452-58584 from trunk/blender into soc-2013-dingto.
authorThomas Dinges <blender@dingto.org>
Wed, 24 Jul 2013 21:56:06 +0000 (21:56 +0000)
committerThomas Dinges <blender@dingto.org>
Wed, 24 Jul 2013 21:56:06 +0000 (21:56 +0000)
1  2 
source/blender/editors/space_node/drawnode.c
source/blender/makesrna/intern/rna_nodetree.c

index 17eba32dddc6e229bb2a0f0c1d495251a22fdc52,0dcae29bf7fa0f4f070b070139dd73441d802f4f..cf3c0454e6b0103ad61e65918241fceecae5ba06
@@@ -735,13 -735,6 +735,13 @@@ static void node_shader_buts_vect_math(
        uiItemR(layout, ptr, "operation", 0, "", ICON_NONE);
  }
  
 +static void node_shader_buts_vect_transform(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
 +{ 
 +      uiItemR(layout, ptr, "type", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
 +      uiItemR(layout, ptr, "convert_from", 0, "", ICON_NONE);
 +      uiItemR(layout, ptr, "convert_to", 0, "", ICON_NONE);
 +}
 +
  static void node_shader_buts_geometry(uiLayout *layout, bContext *C, PointerRNA *ptr)
  {
        PointerRNA obptr = CTX_data_pointer_get(C, "active_object");
@@@ -790,6 -783,12 +790,12 @@@ static void node_shader_buts_tex_image(
        node_buts_image_user(layout, C, &iuserptr, &imaptr, &iuserptr);
  }
  
+ static void node_shader_buts_tex_image_details(uiLayout *layout, bContext *C, PointerRNA *ptr)
+ {
+       PointerRNA iuserptr = RNA_pointer_get(ptr, "image_user");
+       uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0);
+ }
  static void node_shader_buts_tex_environment(uiLayout *layout, bContext *C, PointerRNA *ptr)
  {
        PointerRNA imaptr = RNA_pointer_get(ptr, "image");
@@@ -976,9 -975,6 +982,9 @@@ static void node_shader_set_butfunc(bNo
                case SH_NODE_VECT_MATH: 
                        ntype->uifunc = node_shader_buts_vect_math;
                        break; 
 +              case SH_NODE_VECT_TRANSFORM: 
 +                      ntype->uifunc = node_shader_buts_vect_transform;
 +                      break; 
                case SH_NODE_GEOMETRY:
                        ntype->uifunc = node_shader_buts_geometry;
                        break;
                        break;
                case SH_NODE_TEX_IMAGE:
                        ntype->uifunc = node_shader_buts_tex_image;
+                       ntype->uifuncbut = node_shader_buts_tex_image_details;
                        break;
                case SH_NODE_TEX_ENVIRONMENT:
                        ntype->uifunc = node_shader_buts_tex_environment;
@@@ -1062,19 -1059,10 +1069,10 @@@ static void node_composit_buts_image(ui
  static void node_composit_buts_image_details(uiLayout *layout, bContext *C, PointerRNA *ptr)
  {
        bNode *node = ptr->data;
-       PointerRNA imaptr;
-       node_composit_buts_image(layout, C, ptr);
-       uiItemR(layout, ptr, "use_straight_alpha_output", 0, NULL, 0);
-       if (!node->id)
-               return;
+       PointerRNA iuserptr;
  
-       imaptr = RNA_pointer_get(ptr, "image");
-       uiTemplateColorspaceSettings(layout, &imaptr, "colorspace_settings");
-       uiItemR(layout, &imaptr, "alpha_mode", 0, NULL, 0);
+       RNA_pointer_create((ID *)ptr->id.data, &RNA_ImageUser, node->storage, &iuserptr);
+       uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0);
  }
  
  static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@@ -2549,6 -2537,15 +2547,15 @@@ static void node_texture_buts_image(uiL
        uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL);
  }
  
+ static void node_texture_buts_image_details(uiLayout *layout, bContext *C, PointerRNA *ptr)
+ {
+       bNode *node = ptr->data;
+       PointerRNA iuserptr;
+       RNA_pointer_create((ID *)ptr->id.data, &RNA_ImageUser, node->storage, &iuserptr);
+       uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0);
+ }
  static void node_texture_buts_output(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
  {
        uiItemR(layout, ptr, "filepath", 0, "", ICON_NONE);
@@@ -2593,6 -2590,7 +2600,7 @@@ static void node_texture_set_butfunc(bN
  
                        case TEX_NODE_IMAGE:
                                ntype->uifunc = node_texture_buts_image;
+                               ntype->uifuncbut = node_texture_buts_image_details;
                                break;
  
                        case TEX_NODE_OUTPUT:
index 07b70a5251e10dc433fabb09e066eb31837784d5,c06c0a39f1418b4531be2914064e7715bf65b0ad..4111617085c37e986e84c4fdc81ffb2e575e2317
@@@ -3509,48 -3509,6 +3509,48 @@@ static void def_sh_tex_coord(StructRNA 
        RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
  }
  
 +static void def_sh_vect_transform(StructRNA *srna)
 +{
 +      static EnumPropertyItem prop_vect_type_items[] = {
 +              {SHD_VECT_TRANSFORM_TYPE_VECTOR, "VECTOR",  0, "Vector",   ""},
 +              {SHD_VECT_TRANSFORM_TYPE_POINT,  "POINT",   0, "Point",    ""},
 +              {0, NULL, 0, NULL, NULL}
 +      };
 +
 +      static EnumPropertyItem prop_vect_from_items[] = {
 +              {SHD_VECT_TRANSFORM_FROM_WORLD,  "WORLD",   0, "World",    ""},
 +              {SHD_VECT_TRANSFORM_FROM_OBJECT, "OBJECT",  0, "Object",   ""},
 +              {SHD_VECT_TRANSFORM_FROM_CAMERA, "CAMERA",  0, "Camera",   ""},
 +              {0, NULL, 0, NULL, NULL}
 +      };
 +
 +      static EnumPropertyItem prop_vect_to_items[] = {
 +              {SHD_VECT_TRANSFORM_TO_WORLD,  "WORLD",   0, "World",    ""},
 +              {SHD_VECT_TRANSFORM_TO_OBJECT, "OBJECT",  0, "Object",   ""},
 +              {SHD_VECT_TRANSFORM_TO_CAMERA, "CAMERA",  0, "Camera",   ""},
 +              {0, NULL, 0, NULL, NULL}
 +      };
 +
 +      PropertyRNA *prop;
 +      
 +      RNA_def_struct_sdna_from(srna, "NodeShaderVectTransform", "storage");
 +      
 +      prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
 +      RNA_def_property_enum_items(prop, prop_vect_type_items);
 +      RNA_def_property_ui_text(prop, "Type", "");
 +      RNA_def_property_update(prop, 0, "rna_Node_update");
 +      
 +      prop = RNA_def_property(srna, "convert_from", PROP_ENUM, PROP_NONE);
 +      RNA_def_property_enum_items(prop, prop_vect_from_items);
 +      RNA_def_property_ui_text(prop, "Convert From", "Space to convert from");
 +      RNA_def_property_update(prop, 0, "rna_Node_update");
 +      
 +      prop = RNA_def_property(srna, "convert_to", PROP_ENUM, PROP_NONE);
 +      RNA_def_property_enum_items(prop, prop_vect_to_items);
 +      RNA_def_property_ui_text(prop, "Convert To", "Space to convert to");
 +      RNA_def_property_update(prop, 0, "rna_Node_update");
 +}
 +
  static void def_sh_tex_wireframe(StructRNA *srna)
  {
        PropertyRNA *prop;
@@@ -4074,7 -4032,7 +4074,7 @@@ static void def_cmp_render_layers(Struc
        RNA_def_property_pointer_sdna(prop, NULL, "id");
        RNA_def_property_pointer_funcs(prop, NULL, "rna_Node_scene_set", NULL, NULL);
        RNA_def_property_struct_type(prop, "Scene");
-       RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK);
+       RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_ui_text(prop, "Scene", "");
        RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");