diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-11-24 12:24:32 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-11-24 12:24:32 +0300 |
commit | d55ac4da2bae18c3623c8ffe656dc04330241c04 (patch) | |
tree | 53e1a510d8efca728d1e7c92cfdca1e2679392c5 /source/blender/makesrna/intern/rna_scene_api.c | |
parent | 85301a57bf0a9295721894e9dd95eb5c42e13913 (diff) |
- added rna api function scene.update(), needed for rig generation to update driver deps
- removed some warnings
Diffstat (limited to 'source/blender/makesrna/intern/rna_scene_api.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_scene_api.c | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c index 6b21f886712..05fd9889e31 100644 --- a/source/blender/makesrna/intern/rna_scene_api.c +++ b/source/blender/makesrna/intern/rna_scene_api.c @@ -44,16 +44,29 @@ #include "BKE_depsgraph.h" #include "ED_object.h" +#include "ED_anim_api.h" #include "WM_api.h" -static void rna_Scene_set_frame(Scene *sce, bContext *C, int frame) +static void rna_Scene_set_frame(Scene *scene, bContext *C, int frame) { - sce->r.cfra= frame; - CLAMP(sce->r.cfra, MINAFRAME, MAXFRAME); - scene_update_for_newframe(sce, (1<<20) - 1); + scene->r.cfra= frame; + CLAMP(scene->r.cfra, MINAFRAME, MAXFRAME); + scene_update_for_newframe(scene, (1<<20) - 1); - WM_event_add_notifier(C, NC_SCENE|ND_FRAME, sce); + WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); +} + +static void rna_Scene_update(Scene *scene, bContext *C) +{ + /* added to update driver deps, copied from do_graph_region_driver_buttons + * but can be extended with update options */ + + /* rebuild depsgraph for the new deps */ + DAG_scene_sort(scene); + + /* force an update of depsgraph */ + ED_anim_dag_flush_update(C); } static KeyingSet *rna_Scene_add_keying_set(Scene *sce, ReportList *reports, @@ -96,6 +109,10 @@ void RNA_api_scene(StructRNA *srna) parm= RNA_def_int(func, "frame", 0, MINAFRAME, MAXFRAME, "", "Frame number to set.", MINAFRAME, MAXFRAME); RNA_def_property_flag(parm, PROP_REQUIRED); + func= RNA_def_function(srna, "update", "rna_Scene_update"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + RNA_def_function_ui_description(func, "Rebuild the scene dependancy graph."); + /* Add Keying Set */ func= RNA_def_function(srna, "add_keying_set", "rna_Scene_add_keying_set"); RNA_def_function_ui_description(func, "Add a new Keying Set to Scene."); |