Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-11-24 12:24:32 +0300
committerCampbell Barton <ideasman42@gmail.com>2009-11-24 12:24:32 +0300
commitd55ac4da2bae18c3623c8ffe656dc04330241c04 (patch)
tree53e1a510d8efca728d1e7c92cfdca1e2679392c5 /source/blender/makesrna/intern/rna_scene_api.c
parent85301a57bf0a9295721894e9dd95eb5c42e13913 (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.c27
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.");