Merge branch 'master' into blender2.8
authorCampbell Barton <ideasman42@gmail.com>
Wed, 6 Jun 2018 17:52:20 +0000 (19:52 +0200)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 6 Jun 2018 17:52:20 +0000 (19:52 +0200)
1  2 
source/blender/makesrna/intern/rna_animation.c
source/blender/makesrna/intern/rna_nla.c

index 0b928e63545be27398b12a1b773e89b67faf521c,3f8a7bc96e8b8f6f62c8a2bc28f188aa4996e712..d2c719ac5d10e51777d1b0079859a3a6bc52907d
@@@ -73,11 -73,10 +73,11 @@@ const EnumPropertyItem rna_enum_keying_
  #include "BLI_math_base.h"
  
  #include "BKE_animsys.h"
 -#include "BKE_depsgraph.h"
  #include "BKE_fcurve.h"
  #include "BKE_nla.h"
  
 +#include "DEG_depsgraph.h"
 +
  #include "DNA_object_types.h"
  
  #include "WM_api.h"
@@@ -89,7 -88,7 +89,7 @@@ static void rna_AnimData_update(Main *U
        /* tag for refresh so that scheduled updates (e.g. action changed) will 
         * get computed and reflected in the scene [#34869] 
         */
 -      DAG_id_tag_update(id, OB_RECALC_OB | OB_RECALC_DATA);
 +      DEG_id_tag_update(id, OB_RECALC_OB | OB_RECALC_DATA);
  }
  
  static int rna_AnimData_action_editable(PointerRNA *ptr, const char **UNUSED(r_info))
@@@ -115,7 -114,7 +115,7 @@@ static void rna_AnimData_action_set(Poi
        adt = BKE_animdata_from_id(ownerId);
        if (adt) {
                adt->recalc |= ADT_RECALC_ANIM;
 -              DAG_id_tag_update(ownerId, OB_RECALC_TIME);
 +              DEG_id_tag_update(ownerId, OB_RECALC_TIME);
        }
  }
  
@@@ -585,34 -584,6 +585,34 @@@ static FCurve *rna_Driver_find(AnimDat
        return list_find_fcurve(&adt->drivers, data_path, index);
  }
  
 +bool rna_AnimaData_override_apply(
 +        PointerRNA *ptr_dst, PointerRNA *ptr_src, PointerRNA *ptr_storage,
 +        PropertyRNA *prop_dst, PropertyRNA *prop_src, PropertyRNA *UNUSED(prop_storage),
 +        const int len_dst, const int len_src, const int len_storage,
 +        IDOverrideStaticPropertyOperation *opop)
 +{
 +      BLI_assert(len_dst == len_src && (!ptr_storage || len_dst == len_storage) && len_dst == 0);
 +      BLI_assert(opop->operation == IDOVERRIDESTATIC_OP_REPLACE && "Unsupported RNA override operation on animdata pointer");
 +      UNUSED_VARS_NDEBUG(ptr_storage, len_dst, len_src, len_storage, opop);
 +
 +      /* AnimData is a special case, since you cannot edit/replace it, it's either existent or not. */
 +      AnimData *adt_dst = RNA_property_pointer_get(ptr_dst, prop_dst).data;
 +      AnimData *adt_src = RNA_property_pointer_get(ptr_src, prop_src).data;
 +
 +      if (adt_dst == NULL && adt_src != NULL) {
 +              /* Copy anim data from reference into final local ID. */
 +              BKE_animdata_copy_id(NULL, ptr_dst->id.data, ptr_src->id.data, false, true);
 +              return true;
 +      }
 +      else if (adt_dst != NULL && adt_src == NULL) {
 +              /* Override has cleared/removed anim data from its reference. */
 +              BKE_animdata_free(ptr_dst->id.data, true);
 +              return true;
 +      }
 +
 +      return false;
 +}
 +
  #else
  
  /* helper function for Keying Set -> keying settings */
@@@ -1027,8 -998,6 +1027,8 @@@ void rna_def_animdata_common(StructRNA 
        prop = RNA_def_property(srna, "animation_data", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "adt");
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 +      RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_STATIC);
 +      RNA_def_property_override_funcs(prop, NULL, NULL, "rna_AnimaData_override_apply");
        RNA_def_property_ui_text(prop, "Animation Data", "Animation data for this data-block");
  }
  
@@@ -1053,7 -1022,6 +1053,7 @@@ static void rna_def_animdata(BlenderRN
        prop = RNA_def_property(srna, "action", PROP_POINTER, PROP_NONE);
        /* this flag as well as the dynamic test must be defined for this to be editable... */
        RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_REFCOUNT);
 +      RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_STATIC);
        RNA_def_property_pointer_funcs(prop, NULL, "rna_AnimData_action_set", NULL, "rna_Action_id_poll");
        RNA_def_property_editable_func(prop, "rna_AnimData_action_editable");
        RNA_def_property_ui_text(prop, "Action", "Active Action for this data-block");
                                 "Method used for combining Active Action's result with result of NLA stack");
        RNA_def_property_update(prop, NC_ANIMATION | ND_NLA, NULL); /* this will do? */
        
-       prop = RNA_def_property(srna, "action_influence", PROP_FLOAT, PROP_NONE);
+       prop = RNA_def_property(srna, "action_influence", PROP_FLOAT, PROP_FACTOR); 
        RNA_def_property_float_sdna(prop, NULL, "act_influence");
        RNA_def_property_float_default(prop, 1.0f);
        RNA_def_property_range(prop, 0.0f, 1.0f);
        prop = RNA_def_property(srna, "drivers", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "drivers", NULL);
        RNA_def_property_struct_type(prop, "FCurve");
 +      RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_STATIC);
        RNA_def_property_ui_text(prop, "Drivers", "The Drivers/Expressions for this data-block");
        
        rna_api_animdata_drivers(brna, prop);
index 1301762a4bc9d120b92ba1a5fecdeb17d37d9eba,ce2fba37053dad7150fd9917f0a808e9edaedaa2..38086a47c51306450ead1aea76925587b0ec92c9
@@@ -50,6 -50,7 +50,6 @@@
  
  /* needed for some of the validation stuff... */
  #include "BKE_animsys.h"
 -#include "BKE_depsgraph.h"
  #include "BKE_fcurve.h"
  #include "BKE_nla.h"
  
@@@ -655,7 -656,7 +655,7 @@@ static void rna_def_nlastrip(BlenderRN
                                 "NLA Strips that this strip acts as a container for (if it is of type Meta)");
        
        /* Settings - Values necessary for evaluation */
-       prop = RNA_def_property(srna, "influence", PROP_FLOAT, PROP_NONE);
+       prop = RNA_def_property(srna, "influence", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Influence", "Amount the strip contributes to the current result");
        /* XXX: Update temporarily disabled so that the property can be edited at all!