Page MenuHome

animsys_with_update-20110131a.patch

animsys_with_update-20110131a.patch

Index: source/blender/blenkernel/BKE_animsys.h
===================================================================
--- source/blender/blenkernel/BKE_animsys.h (revision 34574)
+++ source/blender/blenkernel/BKE_animsys.h (working copy)
@@ -30,7 +30,6 @@
struct ID;
struct ListBase;
-struct Main;
struct AnimData;
struct KeyingSet;
struct KS_Path;
@@ -40,6 +39,9 @@
struct bActionGroup;
struct AnimMapper;
+struct Main;
+struct Scene;
+
/* ************************************* */
/* AnimData API */
@@ -128,10 +130,10 @@
/* In general, these ones should be called to do all animation evaluation */
/* Evaluation loop for evaluating animation data */
-void BKE_animsys_evaluate_animdata(struct ID *id, struct AnimData *adt, float ctime, short recalc);
+void BKE_animsys_evaluate_animdata(struct Main *bmain, struct Scene *scene, struct ID *id, struct AnimData *adt, float ctime, short recalc);
/* Evaluation of all ID-blocks with Animation Data blocks - Animation Data Only */
-void BKE_animsys_evaluate_all_animation(struct Main *main, float ctime);
+void BKE_animsys_evaluate_all_animation(struct Main *bmain, struct Scene *scene, float ctime);
/* ------------ Specialised API --------------- */
@@ -143,10 +145,10 @@
*/
/* Evaluate Action (F-Curve Bag) */
-void animsys_evaluate_action(struct PointerRNA *ptr, struct bAction *act, struct AnimMapper *remap, float ctime);
+void animsys_evaluate_action(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr, struct bAction *act, struct AnimMapper *remap, float ctime);
/* Evaluate Action Group */
-void animsys_evaluate_action_group(struct PointerRNA *ptr, struct bAction *act, struct bActionGroup *agrp, struct AnimMapper *remap, float ctime);
+void animsys_evaluate_action_group(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr, struct bAction *act, struct bActionGroup *agrp, struct AnimMapper *remap, float ctime);
/* ************************************* */
Index: source/blender/blenkernel/intern/action.c
===================================================================
--- source/blender/blenkernel/intern/action.c (revision 34574)
+++ source/blender/blenkernel/intern/action.c (working copy)
@@ -1105,7 +1105,7 @@
/* For the calculation of the effects of an Action at the given frame on an object
* This is currently only used for the Action Constraint
*/
-void what_does_obaction (Scene *UNUSED(scene), Object *ob, Object *workob, bPose *pose, bAction *act, char groupname[], float cframe)
+void what_does_obaction (Scene *scene, Object *ob, Object *workob, bPose *pose, bAction *act, char groupname[], float cframe)
{
bActionGroup *agrp= action_groups_find_named(act, groupname);
@@ -1145,7 +1145,7 @@
RNA_id_pointer_create(&workob->id, &id_ptr);
/* execute action for this group only */
- animsys_evaluate_action_group(&id_ptr, act, agrp, NULL, cframe);
+ animsys_evaluate_action_group(G.main, scene, &id_ptr, act, agrp, NULL, cframe);
}
else {
AnimData adt= {0};
@@ -1157,7 +1157,7 @@
adt.action= act;
/* execute effects of Action on to workob (or it's PoseChannels) */
- BKE_animsys_evaluate_animdata(&workob->id, &adt, cframe, ADT_RECALC_ANIM);
+ BKE_animsys_evaluate_animdata(G.main, scene, &workob->id, &adt, cframe, ADT_RECALC_ANIM);
}
}
Index: source/blender/blenkernel/intern/anim_sys.c
===================================================================
--- source/blender/blenkernel/intern/anim_sys.c (revision 34574)
+++ source/blender/blenkernel/intern/anim_sys.c (working copy)
@@ -1005,7 +1005,7 @@
/* Write the given value to a setting using RNA, and return success */
-static short animsys_write_rna_setting (PointerRNA *ptr, char *path, int array_index, float value)
+static short animsys_write_rna_setting (Main *bmain, Scene *scene, PointerRNA *ptr, char *path, int array_index, float value)
{
PropertyRNA *prop;
PointerRNA new_ptr;
@@ -1058,6 +1058,9 @@
/* nothing can be done here... so it is unsuccessful? */
return 0;
}
+
+ /* run property updates, as some properties only really work when this gets called */
+ RNA_property_update_main(bmain, scene, ptr, prop);
}
/* successful */
@@ -1077,7 +1080,7 @@
}
/* Simple replacement based data-setting of the FCurve using RNA */
-static short animsys_execute_fcurve (PointerRNA *ptr, AnimMapper *remap, FCurve *fcu)
+static short animsys_execute_fcurve (Main *bmain, Scene *scene, PointerRNA *ptr, AnimMapper *remap, FCurve *fcu)
{
char *path = NULL;
short free_path=0;
@@ -1088,7 +1091,7 @@
/* write value to setting */
if (path)
- ok= animsys_write_rna_setting(ptr, path, fcu->array_index, fcu->curval);
+ ok= animsys_write_rna_setting(bmain, scene, ptr, path, fcu->array_index, fcu->curval);
/* free temp path-info */
if (free_path)
@@ -1101,7 +1104,8 @@
/* Evaluate all the F-Curves in the given list
* This performs a set of standard checks. If extra checks are required, separate code should be used
*/
-static void animsys_evaluate_fcurves (PointerRNA *ptr, ListBase *list, AnimMapper *remap, float ctime)
+static void animsys_evaluate_fcurves (Main *bmain, Scene *scene,
+ PointerRNA *ptr, ListBase *list, AnimMapper *remap, float ctime)
{
FCurve *fcu;
@@ -1114,7 +1118,7 @@
if ((fcu->flag & (FCURVE_MUTED|FCURVE_DISABLED)) == 0)
{
calculate_fcurve(fcu, ctime);
- animsys_execute_fcurve(ptr, remap, fcu);
+ animsys_execute_fcurve(bmain, scene, ptr, remap, fcu);
}
}
}
@@ -1124,7 +1128,7 @@
/* Driver Evaluation */
/* Evaluate Drivers */
-static void animsys_evaluate_drivers (PointerRNA *ptr, AnimData *adt, float ctime)
+static void animsys_evaluate_drivers (Main *bmain, Scene *scene, PointerRNA *ptr, AnimData *adt, float ctime)
{
FCurve *fcu;
@@ -1144,7 +1148,7 @@
/* evaluate this using values set already in other places */
// NOTE: for 'layering' option later on, we should check if we should remove old value before adding new to only be done when drivers only changed
calculate_fcurve(fcu, ctime);
- ok= animsys_execute_fcurve(ptr, NULL, fcu);
+ ok= animsys_execute_fcurve(bmain, scene, ptr, NULL, fcu);
/* clear recalc flag */
driver->flag &= ~DRIVER_FLAG_RECALC;
@@ -1161,7 +1165,7 @@
/* Actions Evaluation */
/* Evaluate Action Group */
-void animsys_evaluate_action_group (PointerRNA *ptr, bAction *act, bActionGroup *agrp, AnimMapper *remap, float ctime)
+void animsys_evaluate_action_group (Main *bmain, Scene *scene, PointerRNA *ptr, bAction *act, bActionGroup *agrp, AnimMapper *remap, float ctime)
{
FCurve *fcu;
@@ -1180,20 +1184,20 @@
if ((fcu->flag & (FCURVE_MUTED|FCURVE_DISABLED)) == 0)
{
calculate_fcurve(fcu, ctime);
- animsys_execute_fcurve(ptr, remap, fcu);
+ animsys_execute_fcurve(bmain, scene, ptr, remap, fcu);
}
}
}
/* Evaluate Action (F-Curve Bag) */
-void animsys_evaluate_action (PointerRNA *ptr, bAction *act, AnimMapper *remap, float ctime)
+void animsys_evaluate_action (Main *bmain, Scene *scene, PointerRNA *ptr, bAction *act, AnimMapper *remap, float ctime)
{
/* check if mapper is appropriate for use here (we set to NULL if it's inappropriate) */
if (act == NULL) return;
if ((remap) && (remap->target != act)) remap= NULL;
/* calculate then execute each curve */
- animsys_evaluate_fcurves(ptr, &act->curves, remap, ctime);
+ animsys_evaluate_fcurves(bmain, scene, ptr, &act->curves, remap, ctime);
}
/* ***************************************** */
@@ -1238,7 +1242,7 @@
RNA_pointer_create(NULL, &RNA_NlaStrip, strip, &strip_ptr);
/* execute these settings as per normal */
- animsys_evaluate_fcurves(&strip_ptr, &strip->fcurves, NULL, ctime);
+ animsys_evaluate_fcurves(NULL, NULL, &strip_ptr, &strip->fcurves, NULL, ctime);
}
/* if user can control the evaluation time (using F-Curves), consider the option which allows this time to be clamped
@@ -1760,7 +1764,7 @@
}
/* write the accumulated settings to */
-void nladata_flush_channels (ListBase *channels)
+void nladata_flush_channels (Main *bmain, Scene *scene, ListBase *channels)
{
NlaEvalChannel *nec;
@@ -1803,6 +1807,9 @@
// can't do anything with other types of property....
break;
}
+
+ /* run property updates, as some properties only really work when this gets called */
+ RNA_property_update_main(bmain, scene, ptr, prop);
}
}
@@ -1812,7 +1819,7 @@
* - All channels that will be affected are not cleared anymore. Instead, we just evaluate into
* some temp channels, where values can be accumulated in one go.
*/
-static void animsys_evaluate_nla (PointerRNA *ptr, AnimData *adt, float ctime)
+static void animsys_evaluate_nla (Main *bmain, Scene *scene, PointerRNA *ptr, AnimData *adt, float ctime)
{
NlaTrack *nlt;
short track_index=0;
@@ -1887,7 +1894,7 @@
else {
/* special case - evaluate as if there isn't any NLA data */
// TODO: this is really just a stop-gap measure...
- animsys_evaluate_action(ptr, adt->action, adt->remap, ctime);
+ animsys_evaluate_action(bmain, scene, ptr, adt->action, adt->remap, ctime);
return;
}
}
@@ -1902,7 +1909,7 @@
nlastrip_evaluate(ptr, &echannels, NULL, nes);
/* 3. flush effects of accumulating channels in NLA to the actual data they affect */
- nladata_flush_channels(&echannels);
+ nladata_flush_channels(bmain, scene, &echannels);
/* 4. free temporary evaluation data */
BLI_freelistN(&estrips);
@@ -1924,13 +1931,13 @@
/* -------------------- */
/* Evaluate Overrides */
-static void animsys_evaluate_overrides (PointerRNA *ptr, AnimData *adt)
+static void animsys_evaluate_overrides (Main *bmain, Scene *scene, PointerRNA *ptr, AnimData *adt)
{
AnimOverride *aor;
/* for each override, simply execute... */
for (aor= adt->overrides.first; aor; aor= aor->next)
- animsys_write_rna_setting(ptr, aor->rna_path, aor->array_index, aor->value);
+ animsys_write_rna_setting(bmain, scene, ptr, aor->rna_path, aor->array_index, aor->value);
}
/* ***************************************** */
@@ -1973,7 +1980,7 @@
* and that the flags for which parts of the anim-data settings need to be recalculated
* have been set already by the depsgraph. Now, we use the recalc
*/
-void BKE_animsys_evaluate_animdata (ID *id, AnimData *adt, float ctime, short recalc)
+void BKE_animsys_evaluate_animdata (Main *bmain, Scene *scene, ID *id, AnimData *adt, float ctime, short recalc)
{
PointerRNA id_ptr;
@@ -1997,11 +2004,11 @@
/* evaluate NLA-stack
* - active action is evaluated as part of the NLA stack as the last item
*/
- animsys_evaluate_nla(&id_ptr, adt, ctime);
+ animsys_evaluate_nla(bmain, scene, &id_ptr, adt, ctime);
}
/* evaluate Active Action only */
else if (adt->action)
- animsys_evaluate_action(&id_ptr, adt->action, adt->remap, ctime);
+ animsys_evaluate_action(bmain, scene, &id_ptr, adt->action, adt->remap, ctime);
/* reset tag */
adt->recalc &= ~ADT_RECALC_ANIM;
@@ -2014,7 +2021,7 @@
*/
if ((recalc & ADT_RECALC_DRIVERS) /*&& (adt->recalc & ADT_RECALC_DRIVERS)*/) // XXX for now, don't check yet, as depsgraph hasn't been updated
{
- animsys_evaluate_drivers(&id_ptr, adt, ctime);
+ animsys_evaluate_drivers(bmain, scene, &id_ptr, adt, ctime);
}
/* always execute 'overrides'
@@ -2023,7 +2030,7 @@
* - Overrides are cleared upon frame change and/or keyframing
* - It is best that we execute this everytime, so that no errors are likely to occur.
*/
- animsys_evaluate_overrides(&id_ptr, adt);
+ animsys_evaluate_overrides(bmain, scene, &id_ptr, adt);
/* clear recalc flag now */
adt->recalc= 0;
@@ -2036,7 +2043,7 @@
* 'local' (i.e. belonging in the nearest ID-block that setting is related to, not a
* standard 'root') block are overridden by a larger 'user'
*/
-void BKE_animsys_evaluate_all_animation (Main *main, float ctime)
+void BKE_animsys_evaluate_all_animation (Main *bmain, Scene *scene, float ctime)
{
ID *id;
@@ -2052,7 +2059,7 @@
for (id= first; id; id= id->next) { \
if (ID_REAL_USERS(id) > 0) { \
AnimData *adt= BKE_animdata_from_id(id); \
- BKE_animsys_evaluate_animdata(id, adt, ctime, aflag); \
+ BKE_animsys_evaluate_animdata(bmain, scene, id, adt, ctime, aflag); \
} \
}
/* another macro for the "embedded" nodetree cases
@@ -2068,9 +2075,9 @@
NtId_Type *ntp= (NtId_Type *)id; \
if (ntp->nodetree) { \
AnimData *adt2= BKE_animdata_from_id((ID *)ntp->nodetree); \
- BKE_animsys_evaluate_animdata((ID *)ntp->nodetree, adt2, ctime, ADT_RECALC_ANIM); \
+ BKE_animsys_evaluate_animdata(bmain, scene, (ID *)ntp->nodetree, adt2, ctime, ADT_RECALC_ANIM); \
} \
- BKE_animsys_evaluate_animdata(id, adt, ctime, aflag); \
+ BKE_animsys_evaluate_animdata(bmain, scene, id, adt, ctime, aflag); \
} \
}
@@ -2078,11 +2085,8 @@
* when there are no actions, don't go over database and loop over heaps of datablocks,
* which should ultimately be empty, since it is not possible for now to have any animation
* without some actions, and drivers wouldn't get affected by any state changes
- *
- * however, if there are some curves, we will need to make sure that their 'ctime' property gets
- * set correctly, so this optimisation must be skipped in that case...
*/
- if ((main->action.first == NULL) && (main->curve.first == NULL)) {
+ if (bmain->action.first == NULL) {
if (G.f & G_DEBUG)
printf("\tNo Actions, so no animation needs to be evaluated...\n");
@@ -2090,53 +2094,53 @@
}
/* nodes */
- EVAL_ANIM_IDS(main->nodetree.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->nodetree.first, ADT_RECALC_ANIM);
/* textures */
- EVAL_ANIM_NODETREE_IDS(main->tex.first, Tex, ADT_RECALC_ANIM);
+ EVAL_ANIM_NODETREE_IDS(bmain->tex.first, Tex, ADT_RECALC_ANIM);
/* lamps */
- EVAL_ANIM_IDS(main->lamp.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->lamp.first, ADT_RECALC_ANIM);
/* materials */
- EVAL_ANIM_NODETREE_IDS(main->mat.first, Material, ADT_RECALC_ANIM);
+ EVAL_ANIM_NODETREE_IDS(bmain->mat.first, Material, ADT_RECALC_ANIM);
/* cameras */
- EVAL_ANIM_IDS(main->camera.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->camera.first, ADT_RECALC_ANIM);
/* shapekeys */
- EVAL_ANIM_IDS(main->key.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->key.first, ADT_RECALC_ANIM);
/* metaballs */
- EVAL_ANIM_IDS(main->mball.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->mball.first, ADT_RECALC_ANIM);
/* curves */
- EVAL_ANIM_IDS(main->curve.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->curve.first, ADT_RECALC_ANIM);
/* armatures */
- EVAL_ANIM_IDS(main->armature.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->armature.first, ADT_RECALC_ANIM);
/* lattices */
- EVAL_ANIM_IDS(main->latt.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->latt.first, ADT_RECALC_ANIM);
/* meshes */
- EVAL_ANIM_IDS(main->mesh.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->mesh.first, ADT_RECALC_ANIM);
/* particles */
- EVAL_ANIM_IDS(main->particle.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->particle.first, ADT_RECALC_ANIM);
/* objects */
/* ADT_RECALC_ANIM doesn't need to be supplied here, since object AnimData gets
* this tagged by Depsgraph on framechange. This optimisation means that objects
* linked from other (not-visible) scenes will not need their data calculated.
*/
- EVAL_ANIM_IDS(main->object.first, 0);
+ EVAL_ANIM_IDS(bmain->object.first, 0);
/* worlds */
- EVAL_ANIM_IDS(main->world.first, ADT_RECALC_ANIM);
+ EVAL_ANIM_IDS(bmain->world.first, ADT_RECALC_ANIM);
/* scenes */
- EVAL_ANIM_NODETREE_IDS(main->scene.first, Scene, ADT_RECALC_ANIM);
+ EVAL_ANIM_NODETREE_IDS(bmain->scene.first, Scene, ADT_RECALC_ANIM);
}
/* ***************************************** */
Index: source/blender/blenkernel/intern/key.c
===================================================================
--- source/blender/blenkernel/intern/key.c (revision 34574)
+++ source/blender/blenkernel/intern/key.c (working copy)
@@ -1404,7 +1404,7 @@
/* do shapekey local drivers */
float ctime= (float)scene->r.cfra; // XXX this needs to be checked
- BKE_animsys_evaluate_animdata(&key->id, key->adt, ctime, ADT_RECALC_DRIVERS);
+ BKE_animsys_evaluate_animdata(G.main, scene, &key->id, key->adt, ctime, ADT_RECALC_DRIVERS);
if(ob->type==OB_MESH) do_mesh_key(scene, ob, key, out, tot);
else if(ob->type==OB_LATTICE) do_latt_key(scene, ob, key, out, tot);
Index: source/blender/blenkernel/intern/object.c
===================================================================
--- source/blender/blenkernel/intern/object.c (revision 34574)
+++ source/blender/blenkernel/intern/object.c (working copy)
@@ -2026,7 +2026,7 @@
if(ob==NULL) return;
/* execute drivers only, as animation has already been done */
- BKE_animsys_evaluate_animdata(&ob->id, ob->adt, ctime, ADT_RECALC_DRIVERS);
+ BKE_animsys_evaluate_animdata(G.main, scene, &ob->id, ob->adt, ctime, ADT_RECALC_DRIVERS);
if(ob->parent) {
Object *par= ob->parent;
@@ -2543,7 +2543,7 @@
if(adt) {
/* evaluate drivers */
// XXX: for mesh types, should we push this to derivedmesh instead?
- BKE_animsys_evaluate_animdata(data_id, adt, ctime, ADT_RECALC_DRIVERS);
+ BKE_animsys_evaluate_animdata(G.main, scene, data_id, adt, ctime, ADT_RECALC_DRIVERS);
}
/* includes all keys and modifiers */
Index: source/blender/blenkernel/intern/particle_system.c
===================================================================
--- source/blender/blenkernel/intern/particle_system.c (revision 34574)
+++ source/blender/blenkernel/intern/particle_system.c (working copy)
@@ -1676,7 +1676,7 @@
/* get precise emitter matrix if particle is born */
if(part->type!=PART_HAIR && pa->time < cfra && pa->time >= sim->psys->cfra) {
/* we have to force RECALC_ANIM here since where_is_objec_time only does drivers */
- BKE_animsys_evaluate_animdata(&sim->ob->id, sim->ob->adt, pa->time, ADT_RECALC_ANIM);
+ BKE_animsys_evaluate_animdata(G.main, sim->scene, &sim->ob->id, sim->ob->adt, pa->time, ADT_RECALC_ANIM);
where_is_object_time(sim->scene, sim->ob, pa->time);
}
@@ -4086,7 +4086,7 @@
return;
/* execute drivers only, as animation has already been done */
- BKE_animsys_evaluate_animdata(&part->id, part->adt, cfra, ADT_RECALC_DRIVERS);
+ BKE_animsys_evaluate_animdata(G.main, scene, &part->id, part->adt, cfra, ADT_RECALC_DRIVERS);
if(psys->recalc & PSYS_RECALC_TYPE)
psys_changed_type(&sim);
@@ -4120,7 +4120,7 @@
for(i=0; i<=part->hair_step; i++){
hcfra=100.0f*(float)i/(float)psys->part->hair_step;
- BKE_animsys_evaluate_animdata(&part->id, part->adt, hcfra, ADT_RECALC_ANIM);
+ BKE_animsys_evaluate_animdata(G.main, scene, &part->id, part->adt, hcfra, ADT_RECALC_ANIM);
system_step(&sim, hcfra);
psys->cfra = hcfra;
psys->recalc = 0;
Index: source/blender/blenkernel/intern/scene.c
===================================================================
--- source/blender/blenkernel/intern/scene.c (revision 34574)
+++ source/blender/blenkernel/intern/scene.c (working copy)
@@ -985,7 +985,7 @@
AnimData *adt= BKE_animdata_from_id(&scene->id);
if(adt && (adt->recalc & ADT_RECALC_ANIM))
- BKE_animsys_evaluate_animdata(&scene->id, adt, ctime, 0);
+ BKE_animsys_evaluate_animdata(bmain, scene, &scene->id, adt, ctime, 0);
}
if(scene->physics_settings.quick_cache_step)
@@ -1020,7 +1020,7 @@
* can be overridden by settings from Scene, which owns the Texture through a hierarchy
* such as Scene->World->MTex/Texture) can still get correctly overridden.
*/
- BKE_animsys_evaluate_all_animation(bmain, ctime);
+ BKE_animsys_evaluate_all_animation(bmain, sce, ctime);
/*...done with recusrive funcs */
/* object_handle_update() on all objects, groups and sets */
Index: source/blender/blenkernel/intern/sequencer.c
===================================================================
--- source/blender/blenkernel/intern/sequencer.c (revision 34574)
+++ source/blender/blenkernel/intern/sequencer.c (working copy)
@@ -2092,7 +2092,7 @@
ibuf = seq_render_scene_strip_impl(context, seq, nr);
/* Scene strips update all animation, so we need to restore original state.*/
- BKE_animsys_evaluate_all_animation(context.bmain, cfra);
+ BKE_animsys_evaluate_all_animation(context.bmain, context.scene, cfra);
copy_to_ibuf_still(context, seq, nr, ibuf);
break;
@@ -2169,7 +2169,7 @@
if(scene->r.cfra != cfra) {
// XXX for prefetch and overlay offset!..., very bad!!!
AnimData *adt= BKE_animdata_from_id(&scene->id);
- BKE_animsys_evaluate_animdata(&scene->id, adt, cfra, ADT_RECALC_ANIM);
+ BKE_animsys_evaluate_animdata(G.main, scene, &scene->id, adt, cfra, ADT_RECALC_ANIM);
}
#endif
Index: source/blender/blenkernel/nla_private.h
===================================================================
--- source/blender/blenkernel/nla_private.h (revision 34574)
+++ source/blender/blenkernel/nla_private.h (working copy)
@@ -30,6 +30,8 @@
#ifndef NLA_PRIVATE
#define NLA_PRIVATE
+struct Main;
+
/* --------------- NLA Evaluation DataTypes ----------------------- */
/* used for list of strips to accumulate at current time */
@@ -80,6 +82,6 @@
NlaEvalStrip *nlastrips_ctime_get_strip(ListBase *list, ListBase *strips, short index, float ctime);
void nlastrip_evaluate(PointerRNA *ptr, ListBase *channels, ListBase *modifiers, NlaEvalStrip *nes);
-void nladata_flush_channels(ListBase *channels);
+void nladata_flush_channels(struct Main *bmain, Scene *scene, ListBase *channels);
#endif // NLA_PRIVATE
Index: source/blender/editors/armature/poselib.c
===================================================================
--- source/blender/editors/armature/poselib.c (revision 34574)
+++ source/blender/editors/armature/poselib.c (working copy)
@@ -50,6 +50,7 @@
#include "BKE_armature.h"
#include "BKE_depsgraph.h"
+#include "BKE_global.h"
#include "BKE_context.h"
#include "BKE_report.h"
@@ -748,7 +749,7 @@
}
if (ok)
- animsys_evaluate_action_group(ptr, act, agrp, NULL, (float)frame);
+ animsys_evaluate_action_group(G.main, pld->scene, ptr, act, agrp, NULL, (float)frame);
}
}
}
Index: source/blender/editors/space_view3d/drawanimviz.c
===================================================================
--- source/blender/editors/space_view3d/drawanimviz.c (revision 34574)
+++ source/blender/editors/space_view3d/drawanimviz.c (working copy)
@@ -384,7 +384,7 @@
colfac = (end - (float)CFRA) / range;
UI_ThemeColorShadeAlpha(TH_WIRE, 0, -128-(int)(120.0*sqrt(colfac)));
- BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
+ BKE_animsys_evaluate_animdata(G.main, scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
draw_pose_bones(scene, v3d, ar, base, OB_WIRE);
}
@@ -463,7 +463,7 @@
CFRA= (int)ak->cfra;
- BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
+ BKE_animsys_evaluate_animdata(G.main, scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
draw_pose_bones(scene, v3d, ar, base, OB_WIRE);
}
@@ -533,7 +533,7 @@
CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe+ctime, NLATIME_CONVERT_MAP);
if (CFRA != cfrao) {
- BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
+ BKE_animsys_evaluate_animdata(G.main, scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
draw_pose_bones(scene, v3d, ar, base, OB_WIRE);
}
@@ -548,7 +548,7 @@
CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe-ctime, NLATIME_CONVERT_MAP);
if (CFRA != cfrao) {
- BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
+ BKE_animsys_evaluate_animdata(G.main, scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
draw_pose_bones(scene, v3d, ar, base, OB_WIRE);
}
Index: source/blender/editors/space_view3d/drawarmature.c
===================================================================
--- source/blender/editors/space_view3d/drawarmature.c (revision 34574)
+++ source/blender/editors/space_view3d/drawarmature.c (working copy)
@@ -2235,7 +2235,7 @@
colfac = (end - (float)CFRA) / range;
UI_ThemeColorShadeAlpha(TH_WIRE, 0, -128-(int)(120.0*sqrt(colfac)));
- BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
+ BKE_animsys_evaluate_animdata(G.main, scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE);
}
@@ -2314,7 +2314,7 @@
CFRA= (int)ak->cfra;
- BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
+ BKE_animsys_evaluate_animdata(G.main, scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE);
}
@@ -2384,7 +2384,7 @@
CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe+ctime, NLATIME_CONVERT_MAP);
if (CFRA != cfrao) {
- BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
+ BKE_animsys_evaluate_animdata(G.main, scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE);
}
@@ -2399,7 +2399,7 @@
CFRA= (int)BKE_nla_tweakedit_remap(adt, actframe-ctime, NLATIME_CONVERT_MAP);
if (CFRA != cfrao) {
- BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
+ BKE_animsys_evaluate_animdata(G.main, scene, &ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE);
}
Index: source/blender/render/intern/source/pipeline.c
===================================================================
--- source/blender/render/intern/source/pipeline.c (revision 34574)
+++ source/blender/render/intern/source/pipeline.c (working copy)
@@ -2492,7 +2492,7 @@
if(recurs_depth==0) {
/* otherwise sequencer animation isnt updated */
- BKE_animsys_evaluate_all_animation(re->main, (float)cfra); // XXX, was BKE_curframe(re->scene)
+ BKE_animsys_evaluate_all_animation(re->main, re->scene, (float)cfra); // XXX, was BKE_curframe(re->scene)
}
recurs_depth++;
Index: source/blender/windowmanager/intern/wm_files.c
===================================================================
--- source/blender/windowmanager/intern/wm_files.c (revision 34574)
+++ source/blender/windowmanager/intern/wm_files.c (working copy)
@@ -304,7 +304,7 @@
if (retval != BKE_READ_FILE_FAIL) {
G.relbase_valid = 1;
if(!G.background) /* assume automated tasks with background, dont write recent file list */
- write_history();
+ ;//write_history();
}

File Metadata

Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
4b/b5/e9af6e460d2852f95b940bf02b81

Event Timeline