[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40605] trunk/blender/source/blender: bpy. app.handlers.frame_change_pre/post handlers.

Campbell Barton ideasman42 at gmail.com
Tue Sep 27 12:43:45 CEST 2011


Revision: 40605
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40605
Author:   campbellbarton
Date:     2011-09-27 10:43:45 +0000 (Tue, 27 Sep 2011)
Log Message:
-----------
bpy.app.handlers.frame_change_pre/post handlers.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/scene.c
    trunk/blender/source/blender/blenlib/BLI_callbacks.h
    trunk/blender/source/blender/python/intern/bpy_app_handlers.c

Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c	2011-09-27 10:37:02 UTC (rev 40604)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c	2011-09-27 10:43:45 UTC (rev 40605)
@@ -56,6 +56,7 @@
 #include "BLI_math.h"
 #include "BLI_blenlib.h"
 #include "BLI_utildefines.h"
+#include "BLI_callbacks.h"
 
 #include "BKE_anim.h"
 #include "BKE_animsys.h"
@@ -1022,6 +1023,9 @@
 	float ctime = BKE_curframe(sce);
 	Scene *sce_iter;
 
+	/* keep this first */
+	BLI_exec_cb(bmain, (ID *)sce, BLI_CB_EVT_FRAME_CHANGE_PRE);
+
 	sound_set_cfra(sce->r.cfra);
 	
 	/* clear animation overrides */
@@ -1048,6 +1052,9 @@
 
 	/* object_handle_update() on all objects, groups and sets */
 	scene_update_tagged_recursive(bmain, sce, sce);
+
+	/* keep this last */
+	BLI_exec_cb(bmain, (ID *)sce, BLI_CB_EVT_FRAME_CHANGE_POST);
 }
 
 /* return default layer, also used to patch old files */

Modified: trunk/blender/source/blender/blenlib/BLI_callbacks.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_callbacks.h	2011-09-27 10:37:02 UTC (rev 40604)
+++ trunk/blender/source/blender/blenlib/BLI_callbacks.h	2011-09-27 10:43:45 UTC (rev 40605)
@@ -40,6 +40,8 @@
 struct ID;
 
 typedef enum {
+	BLI_CB_EVT_FRAME_CHANGE_PRE,
+	BLI_CB_EVT_FRAME_CHANGE_POST,
 	BLI_CB_EVT_RENDER_PRE,
 	BLI_CB_EVT_RENDER_POST,
 	BLI_CB_EVT_RENDER_STATS,

Modified: trunk/blender/source/blender/python/intern/bpy_app_handlers.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_app_handlers.c	2011-09-27 10:37:02 UTC (rev 40604)
+++ trunk/blender/source/blender/python/intern/bpy_app_handlers.c	2011-09-27 10:43:45 UTC (rev 40605)
@@ -40,6 +40,8 @@
 static PyTypeObject BlenderAppCbType;
 
 static PyStructSequence_Field app_cb_info_fields[]= {
+    {(char *)"frame_change_pre", NULL},
+	{(char *)"frame_change_post", NULL},
 	{(char *)"render_pre", NULL},
 	{(char *)"render_post", NULL},
 	{(char *)"render_stats", NULL},




More information about the Bf-blender-cvs mailing list