[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16761] trunk/blender/source/blender: Auto-Keyframing (per scene):

Joshua Leung aligorith at gmail.com
Sat Sep 27 08:30:27 CEST 2008


Revision: 16761
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16761
Author:   aligorith
Date:     2008-09-27 08:29:52 +0200 (Sat, 27 Sep 2008)

Log Message:
-----------
Auto-Keyframing (per scene):

Now auto-keyframing can be enabled/disabled per scene (with the insertion mode also stored per scene). The flags used when insertng keyframes are still stored in the user-prefs. 

New scenes have their auto-keyframing settings initialised from the user-preferences.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_blender.h
    trunk/blender/source/blender/blenkernel/intern/scene.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/include/BIF_keyframing.h
    trunk/blender/source/blender/makesdna/DNA_scene_types.h
    trunk/blender/source/blender/makesdna/DNA_userdef_types.h
    trunk/blender/source/blender/src/header_time.c
    trunk/blender/source/blender/src/space.c

Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_blender.h	2008-09-27 04:51:42 UTC (rev 16760)
+++ trunk/blender/source/blender/blenkernel/BKE_blender.h	2008-09-27 06:29:52 UTC (rev 16761)
@@ -41,7 +41,7 @@
 struct MemFile;
 
 #define BLENDER_VERSION			247
-#define BLENDER_SUBVERSION		7
+#define BLENDER_SUBVERSION		8
 
 #define BLENDER_MINVERSION		245
 #define BLENDER_MINSUBVERSION	15

Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c	2008-09-27 04:51:42 UTC (rev 16760)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c	2008-09-27 06:29:52 UTC (rev 16761)
@@ -188,6 +188,7 @@
 	sce->lay= 1;
 	sce->selectmode= SCE_SELECT_VERTEX;
 	sce->editbutsize= 0.1;
+	sce->autokey_mode= U.autokey_mode;
 	
 	sce->r.mode= R_GAMMA;
 	sce->r.cfra= 1;

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2008-09-27 04:51:42 UTC (rev 16760)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2008-09-27 06:29:52 UTC (rev 16761)
@@ -7908,6 +7908,15 @@
 			}
 		}
 	}
+	/* autokey mode settings now used from scene, but need to be initialised off userprefs */
+	if (main->versionfile < 247 || (main->versionfile == 247 && main->subversionfile < 8)) {
+		Scene *sce;
+		
+		for (sce= main->scene.first; sce; sce= sce->id.next) {
+			if (sce->autokey_mode == 0)
+				sce->autokey_mode= U.autokey_mode;
+		}
+	}
 
 	/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
 	/* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */

Modified: trunk/blender/source/blender/include/BIF_keyframing.h
===================================================================
--- trunk/blender/source/blender/include/BIF_keyframing.h	2008-09-27 04:51:42 UTC (rev 16760)
+++ trunk/blender/source/blender/include/BIF_keyframing.h	2008-09-27 06:29:52 UTC (rev 16761)
@@ -80,6 +80,24 @@
 void common_insertkey(void);
 void common_deletekey(void);
 
+/* ************ Auto-Keyframing ********************** */
+/* Notes:
+ * - All the defines for this (User-Pref settings and Per-Scene settings)
+ * 	are defined in DNA_userdef_types.h
+ * - Scene settings take presidence over those for userprefs, with old files
+ * 	inheriting userpref settings for the scene settings
+ * - "On/Off + Mode" are stored per Scene, but "settings" are currently stored
+ * 	as userprefs
+ */
+
+/* Auto-Keying macros for use by various tools */
+	/* check if auto-keyframing is enabled (per scene takes presidence) */
+#define IS_AUTOKEY_ON			((G.scene) ? (G.scene->autokey_mode & AUTOKEY_ON) : (U.autokey_mode & AUTOKEY_ON))
+	/* check the mode for auto-keyframing (per scene takes presidence)  */
+#define IS_AUTOKEY_MODE(mode) 	((G.scene) ? (G.scene->autokey_mode == AUTOKEY_MODE_##mode) : (U.autokey_mode == AUTOKEY_MODE_##mode))
+	/* check if a flag is set for auto-keyframing (as userprefs only!) */
+#define IS_AUTOKEY_FLAG(flag)	(U.autokey_flag & AUTOKEY_FLAG_##flag)
+
 /* ************ Keyframe Checking ******************** */
 
 /* Checks whether a keyframe exists for the given ID-block one the given frame */

Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_scene_types.h	2008-09-27 04:51:42 UTC (rev 16760)
+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h	2008-09-27 06:29:52 UTC (rev 16761)
@@ -520,8 +520,10 @@
 	float editbutsize;                      /* size of normals */
 	short selectmode;						/* for mesh only! */
 	short proportional, prop_mode;
-	short automerge, pad5, pad6, pad7;
+	short automerge, pad5, pad6;
 	
+	short autokey_mode; 					/* mode for autokeying (defines in DNA_userdef_types.h */
+	
 	short use_nodes;
 	
 	struct bNodeTree *nodetree;	

Modified: trunk/blender/source/blender/makesdna/DNA_userdef_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_userdef_types.h	2008-09-27 04:51:42 UTC (rev 16760)
+++ trunk/blender/source/blender/makesdna/DNA_userdef_types.h	2008-09-27 06:29:52 UTC (rev 16761)
@@ -290,10 +290,6 @@
 #define		AUTOKEY_FLAG_INSERTNEEDED	(1<<1)
 #define		AUTOKEY_FLAG_AUTOMATKEY		(1<<2)
 
-/* Auto-Keying macros */
-#define IS_AUTOKEY_ON			(U.autokey_mode & AUTOKEY_ON)
-#define IS_AUTOKEY_MODE(mode) 	(U.autokey_mode == AUTOKEY_MODE_##mode)
-#define IS_AUTOKEY_FLAG(flag)	(U.autokey_flag & AUTOKEY_FLAG_##flag)
 
 /* transopts */
 #define	USER_TR_TOOLTIPS		(1 << 0)

Modified: trunk/blender/source/blender/src/header_time.c
===================================================================
--- trunk/blender/source/blender/src/header_time.c	2008-09-27 04:51:42 UTC (rev 16760)
+++ trunk/blender/source/blender/src/header_time.c	2008-09-27 06:29:52 UTC (rev 16761)
@@ -554,12 +554,12 @@
 	xco+= XIC+8;
 	
 	uiDefIconButBitS(block, TOG, AUTOKEY_ON, REDRAWINFO, ICON_REC,
-			xco, 0, XIC, YIC, &(U.autokey_mode), 0, 0, 0, 0, "Automatic keyframe insertion for Objects and Bones");
+			xco, 0, XIC, YIC, &(G.scene->autokey_mode), 0, 0, 0, 0, "Automatic keyframe insertion for Objects and Bones");
 	xco+= XIC;
 	if (IS_AUTOKEY_ON) {
 		uiDefButS(block, MENU, REDRAWINFO, 
 					"Auto-Keying Mode %t|Add/Replace Keys%x3|Replace Keys %x5", 
-					xco, 0, 3*XIC, YIC, &(U.autokey_mode), 0, 1, 0, 0, 
+					xco, 0, 3*XIC, YIC, &(G.scene->autokey_mode), 0, 1, 0, 0, 
 					"Mode of automatic keyframe insertion for Objects and Bones");
 		xco+= (4*XIC);
 	}

Modified: trunk/blender/source/blender/src/space.c
===================================================================
--- trunk/blender/source/blender/src/space.c	2008-09-27 04:51:42 UTC (rev 16760)
+++ trunk/blender/source/blender/src/space.c	2008-09-27 06:29:52 UTC (rev 16761)
@@ -122,6 +122,7 @@
 #include "BIF_imasel.h"
 #include "BIF_interface.h"
 #include "BIF_interface_icons.h"
+#include "BIF_keyframing.h"
 #include "BIF_meshtools.h"
 #include "BIF_mywindow.h"
 #include "BIF_oops.h"
@@ -4034,7 +4035,7 @@
 				(xpos+edgsp+(2*mpref)+(2*midsp)),y5,mpref, buth,
 				&(U.autokey_mode), 0, 0, 0, 0, "Automatic keyframe insertion for Objects and Bones");
 			
-			if (IS_AUTOKEY_ON) {
+			if (U.autokey_mode & AUTOKEY_ON) {
 				uiDefButS(block, MENU, REDRAWTIME, 
 						"Auto-Keying Mode %t|Add/Replace Keys%x3|Replace Keys %x5", 
 						(xpos+edgsp+(2*mpref)+(2*midsp)),y4,mpref, buth, 





More information about the Bf-blender-cvs mailing list