[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15196] branches/blender2.5/blender/source /blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Jun 11 12:10:33 CEST 2008


Revision: 15196
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15196
Author:   blendix
Date:     2008-06-11 12:10:31 +0200 (Wed, 11 Jun 2008)

Log Message:
-----------

2.5 Branch
==========

* Changed wmOperatorType, removing init/exit callbacks and adding cancel
  callback, removed default storage in favor of properties. Defined return
  values for exec/invoke/modal/cancel.
* Don't allocate operator on the stack, and removed operator copy for
  handlers. Now it frees based on return values from callbacks, and just
  keeps a wmOperator on the heap. Also it now registers after the operator
  is fully finished, to get the correct final properties.
* Changed OP_get_* functions to return 1 if the property is found and 0
  otherwise, gives more readable code in my opinion. Added OP_verify_*
  functions to quickly check if the property is available and set if it's
  not, that's common for exec/invoke.
* Removed WM_operatortypelist_append in favor of WM_operatortype_append
  which takes a function pointer instead of a list, avoids macro's and
  duplicating code.
* Fix a crash where the handler would still be used while it was freed by
  the operator.

* Spacetypes now have operatortypes() and keymap() callbacks to abstract
  them a bit more.
* Renamed C->curarea to C->area for consistency. Removed View3D/View2D/
  SpaceIpo from bContext, seems bad to keep these.
* Set context variables like window/screen/area/region to NULL again when
  leaving that context, instead of leaving the pointers there.

* Added if(G.f & G_DEBUG) for many of the prints, makes output a bit
  cleaner and easier to debug.
* Fixed priority of the editors/interface module in scons, would otherwise
  give link errors.

* Added start of generic view2d api.
* Added space_time with some basic drawing and a single operator to change
  the frame.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_screen.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c
    branches/blender2.5/blender/source/blender/editors/Makefile
    branches/blender2.5/blender/source/blender/editors/SConscript
    branches/blender2.5/blender/source/blender/editors/include/ED_area.h
    branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
    branches/blender2.5/blender/source/blender/editors/interface/SConscript
    branches/blender2.5/blender/source/blender/editors/screen/area.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/editors/screen/spacetypes.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h
    branches/blender2.5/blender/source/blender/windowmanager/WM_api.h
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_files.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_gesture.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_subwindow.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_window.c
    branches/blender2.5/blender/source/blender/windowmanager/wm.h
    branches/blender2.5/blender/source/blender/windowmanager/wm_subwindow.h

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/editors/include/BIF_view2d.h
    branches/blender2.5/blender/source/blender/editors/interface/view2d.c
    branches/blender2.5/blender/source/blender/editors/space_time/
    branches/blender2.5/blender/source/blender/editors/space_time/Makefile
    branches/blender2.5/blender/source/blender/editors/space_time/SConscript
    branches/blender2.5/blender/source/blender/editors/space_time/space_time.c
    branches/blender2.5/blender/source/blender/editors/space_time/time_intern.h
    branches/blender2.5/blender/source/blender/editors/space_time/time_ops.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h	2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h	2008-06-11 10:10:31 UTC (rev 15196)
@@ -69,20 +69,9 @@
 	struct wmWindowManager *wm;
 	struct wmWindow *window;
 	struct bScreen *screen;
-	struct ScrArea *curarea;
+	struct ScrArea *area;
 	struct ARegion *region;
 	
-	/* fast spacedata lookups */
-	struct View3D *vd;
-	struct View2D *v2d;
-	struct SpaceIpo *sipo;
-	struct SpaceButs *buts;
-	struct SpaceImage *sima;
-	struct SpaceOops *soops;
-	struct SpaceSound *ssound;
-	struct SpaceAction *saction;
-	struct SpaceNla *snla;
-	
 	/* data context */
 	struct Scene *scene;
 	struct Object *obact;
@@ -90,11 +79,10 @@
 	
 	/* edit data context */
 	struct EditMesh *editMesh;
-	struct	ListBase edbo;			/* Armature Editmode bones */
+	struct ListBase edbo;			/* Armature Editmode bones */
 	
 } bContext;
 
-
 typedef struct Global {
 
 	/* active pointers */

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_screen.h	2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_screen.h	2008-06-11 10:10:31 UTC (rev 15196)
@@ -8,11 +8,7 @@
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
-<<<<<<< .mine
- * of the License, or (at your option) any later version.
-=======
  * of the License, or (at your option) any later version. 
->>>>>>> .r13159
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -40,6 +36,8 @@
 struct bScreen;
 struct ARegion;
 struct wmNotifier;
+struct wmWindowManager;
+struct ListBase;
 
 /* spacetype has everything stored to get an editor working, it gets initialized via 
 spacetypes_init() in editors/area/spacetypes.c   */
@@ -52,14 +50,25 @@
 	int				spaceid;					/* unique space identifier */
 	int				iconid;						/* icon lookup for menus */
 	
-	struct SpaceLink	*(*new)(void);							/* calls init too */
-	void		(*free)(struct SpaceLink *sl);					/* not free sl itself */
+	/* calls init too */
+	struct SpaceLink	*(*new)(void);
+	/* not free spacelink itself */
+	void		(*free)(struct SpaceLink *);
 	
-	void		(*init)(struct ScrArea *);						/* init is to cope with internal contextual changes, adds handlers, sets screarea regions */
-	void		(*refresh)(struct bContext *, struct ScrArea *);	/* refresh is for external bContext changes */
+	/* init is to cope with internal contextual changes, adds handlers,
+	 * sets screarea regions */
+	void		(*init)(struct wmWindowManager *, struct ScrArea *);
+	/* refresh is for external bContext changes */
+	void		(*refresh)(struct bContext *, struct ScrArea *);
 	
-	struct SpaceLink	*(*duplicate)(struct SpaceLink *sl);		/* after a spacedata copy, an init should result in exact same situation */
-	
+	/* after a spacedata copy, an init should result in exact same situation */
+	struct SpaceLink	*(*duplicate)(struct SpaceLink *);
+
+	/* register operator types on startup */
+	void		(*operatortypes)(void);
+	/* add default items to keymap */
+	void		(*keymap)(struct wmWindowManager *);
+
 	/* read and write... */
 	
 } SpaceType;
@@ -80,6 +89,7 @@
 void free_screen(struct bScreen *sc); 
 
 struct SpaceType *BKE_spacetype_from_id(int spaceid);
+const struct ListBase *BKE_spacetypes_list(void);
 void BKE_spacetype_register(struct SpaceType *st);
 void BKE_spacedata_freelist(ListBase *lb);
 void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2);

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c	2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c	2008-06-11 10:10:31 UTC (rev 15196)
@@ -51,6 +51,11 @@
 	return NULL;
 }
 
+const ListBase *BKE_spacetypes_list()
+{
+	return &spacetypes;
+}
+
 void BKE_spacetype_register(SpaceType *st)
 {
 	BLI_addtail(&spacetypes, st);

Modified: branches/blender2.5/blender/source/blender/editors/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/Makefile	2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/Makefile	2008-06-11 10:10:31 UTC (rev 15196)
@@ -29,6 +29,6 @@
 # Bounces make to subdirectories.
 
 SOURCEDIR = source/blender/editors
-DIRS = datafiles screen space_view3d interface
+DIRS = datafiles screen space_time space_view3d interface
 
 include nan_subdirs.mk

Modified: branches/blender2.5/blender/source/blender/editors/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/SConscript	2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/SConscript	2008-06-11 10:10:31 UTC (rev 15196)
@@ -6,6 +6,7 @@
 			'interface/SConscript',
 			'mesh/SConscript',
 			'object/SConscript',
+			'space_time/SConscript',
 			'space_view3d/SConscript',
 			'transform/SConscript',
 			'screen/SConscript'])

Added: branches/blender2.5/blender/source/blender/editors/include/BIF_view2d.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/BIF_view2d.h	                        (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/include/BIF_view2d.h	2008-06-11 10:10:31 UTC (rev 15196)
@@ -0,0 +1,63 @@
+/**
+ * $Id:
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ * 
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef BIF_VIEW2D_H
+#define BIF_VIEW2D_H
+
+/* start of a generic 2d view with should allow drawing grids,
+ * panning, zooming, scrolling, .. */
+
+#define V2D_UNIT_SECONDS	0
+#define V2D_UNIT_FRAMES		1
+
+#define V2D_GRID_CLAMP		0
+#define V2D_GRID_NOCLAMP	1
+
+#define V2D_IS_CLIPPED	12000
+
+#define V2D_HORIZONTAL_LINES	1
+#define V2D_VERTICAL_LINES		2
+#define V2D_HORIZONTAL_AXIS		4
+#define V2D_VERTICAL_AXIS		8
+
+struct View2D;
+struct bContext;
+
+void BIF_view2d_ortho(const struct bContext *C, struct View2D *v2d);
+
+/* grid drawing */
+void BIF_view2d_calc_grid(const struct bContext *C, struct View2D *v2d, int unit, int type, int winx, int winy);
+void BIF_view2d_draw_grid(const struct bContext *C, struct View2D *v2d, int flag);
+
+/* coordinate conversion */
+void BIF_view2d_region_to_view(struct View2D *v2d, short x, short y, float *viewx, float *viewy);
+void BIF_view2d_view_to_region(struct View2D *v2d, float x, float y, short *regionx, short *regiony);
+void BIF_view2d_to_region_no_clip(struct View2D *v2d, float x, float y, short *regionx, short *region_y);
+
+#endif /* BIF_VIEW2D_H */
+

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_area.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_area.h	2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_area.h	2008-06-11 10:10:31 UTC (rev 15196)
@@ -25,20 +25,15 @@
  *
  * ***** END GPL LICENSE BLOCK *****
  */
+
 #ifndef ED_AREA_H
 #define ED_AREA_H
 
 /* the pluginnable API for export to editors */
 
-
 /* calls for registering default spaces */
+void ED_spacetype_time(void);
 void ED_spacetype_view3d(void);
 
-/* calls for registering operator types */
-void ED_operatortypes_screen(void);
-
-
 #endif /* ED_AREA_H */
 
-
-

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h	2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h	2008-06-11 10:10:31 UTC (rev 15196)
@@ -44,6 +44,7 @@
 
 /* spaces */
 void	ED_spacetypes_init(void);
+void	ED_spacetypes_keymap(struct wmWindowManager *wm);
 
 /* areas */
 void	ED_area_initialize(struct wmWindowManager *wm, struct wmWindow *win, struct ScrArea *sa);
@@ -57,7 +58,8 @@
 bScreen *ED_screen_duplicate(struct wmWindow *win, bScreen *sc);
 void	ED_screen_set_subwinactive(struct wmWindow *win);
 
-void	ed_screen_keymap(struct wmWindowManager *wm);
+void	ED_operatortypes_screen(void);
+void	ED_keymap_screen(struct wmWindowManager *wm);
 
 /* operators; context poll callbacks */
 int		ED_operator_screenactive(bContext *C);

Modified: branches/blender2.5/blender/source/blender/editors/interface/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/SConscript	2008-06-11 09:04:41 UTC (rev 15195)
+++ branches/blender2.5/blender/source/blender/editors/interface/SConscript	2008-06-11 10:10:31 UTC (rev 15196)
@@ -4,6 +4,6 @@
 sources = env.Glob('*.c')
 
 incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
-incs += ' #/intern/guardedalloc'
+incs += ' ../../windowmanager #/intern/guardedalloc'
 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list