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

Ton Roosendaal ton at blender.org
Sun Dec 14 11:52:48 CET 2008


Revision: 17833
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17833
Author:   ton
Date:     2008-12-14 11:52:48 +0100 (Sun, 14 Dec 2008)

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

The basics for InfoSpace.
Also added InfoSpace data to area by default, older files allowed to
have nothing here (space empty). (prevents reported crasher in switching
space info to others).

Also: added ifdeffed code in readfile.c to debug missing memory frees
from data read from files. (instead of "data from SCR" it will print
the actual struct names).

Modified Paths:
--------------
    branches/blender2.5/blender/source/Makefile
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.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_space_api.h
    branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_intern.h
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/editors/space_info/Makefile
    branches/blender2.5/blender/source/blender/editors/space_info/SConscript
    branches/blender2.5/blender/source/blender/editors/space_info/info_header.c
    branches/blender2.5/blender/source/blender/editors/space_info/info_intern.h
    branches/blender2.5/blender/source/blender/editors/space_info/space_info.c

Modified: branches/blender2.5/blender/source/Makefile
===================================================================
--- branches/blender2.5/blender/source/Makefile	2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/Makefile	2008-12-14 10:52:48 UTC (rev 17833)
@@ -235,6 +235,7 @@
 PULIB += $(NAN_ELBEEM)/lib/$(DEBUG_DIR)libelbeem.a
 PULIB += $(OCGDIR)/blender/readblenfile/$(DEBUG_DIR)libreadblenfile.a
 PULIB += $(OCGDIR)/blender/ed_space/libed_space.a
+PULIB += $(OCGDIR)/blender/ed_info/libed_info.a
 PULIB += $(OCGDIR)/blender/ed_buttons/libed_buttons.a
 PULIB += $(OCGDIR)/blender/ed_node/libed_node.a
 PULIB += $(OCGDIR)/blender/ed_image/libed_image.a

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2008-12-14 10:52:48 UTC (rev 17833)
@@ -4206,8 +4206,12 @@
 		sa->type= NULL;	/* spacetype callbacks */
 		
 		/* accident can happen when read/save new file with older version */
-		if(sa->spacedata.first==NULL && sa->spacetype>SPACE_NLA)
-			sa->spacetype= SPACE_EMPTY;
+		/* 2.50: we now always add spacedata for info */
+		if(sa->spacedata.first==NULL) {
+			SpaceInfo *sinfo= MEM_callocN(sizeof(SpaceInfo), "spaceinfo");
+			sa->spacetype= SPACE_INFO;
+			BLI_addtail(&sa->spacedata, sinfo);
+		}
 		
 		for(pa= sa->panels.first; pa; pa=pa->next) {
 			pa->paneltab= newdataadr(fd, pa->paneltab);
@@ -4513,15 +4517,17 @@
 	
 	while(bhead && bhead->code==DATA) {
 		void *data;
-		/* XXX BAD DEBUGGING OPTION TO GIVE NAMES */		
+#if 0		
+		/* XXX DUMB DEBUGGING OPTION TO GIVE NAMES for guarded malloc errors */		
 		short *sp= fd->filesdna->structs[bhead->SDNAnr];
 		char *allocname = fd->filesdna->types[ sp[0] ];
 		char *tmp= malloc(100);
 		
 		strcpy(tmp, allocname);
+		data= read_struct(fd, bhead, tmp);
+#endif
+		data= read_struct(fd, bhead, allocname);
 		
-		data= read_struct(fd, bhead, tmp);
-
 		if (data) {
 			oldnewmap_insert(fd->datamap, bhead->old, data, 0);
 		}

Modified: branches/blender2.5/blender/source/blender/editors/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/Makefile	2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/Makefile	2008-12-14 10:52:48 UTC (rev 17833)
@@ -29,6 +29,6 @@
 # Bounces make to subdirectories.
 
 SOURCEDIR = source/blender/editors
-DIRS = datafiles screen space_outliner space_time space_view3d interface util  space_api space_ipo space_image space_node space_buttons
+DIRS = datafiles screen space_outliner space_time space_view3d interface util  space_api space_ipo space_image space_node space_buttons space_info
 
 include nan_subdirs.mk

Modified: branches/blender2.5/blender/source/blender/editors/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/SConscript	2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/SConscript	2008-12-14 10:52:48 UTC (rev 17833)
@@ -15,5 +15,6 @@
 			'space_image/SConscript',
 			'space_node/SConscript',
 			'space_buttons/SConscript',
+			'space_info/SConscript',
 			'transform/SConscript',
 			'screen/SConscript'])

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h	2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h	2008-12-14 10:52:48 UTC (rev 17833)
@@ -39,6 +39,7 @@
 void ED_spacetype_image(void);
 void ED_spacetype_node(void);
 void ED_spacetype_buttons(void);
+void ED_spacetype_info(void);
 
 #endif /* ED_AREA_H */
 

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c	2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c	2008-12-14 10:52:48 UTC (rev 17833)
@@ -521,6 +521,47 @@
 	return 1;
 }
 
+void select_connected_scredge(bScreen *sc, ScrEdge *edge)
+{
+	ScrEdge *se;
+	ScrVert *sv;
+	int oneselected;
+	char dir;
+	
+	/* select connected, only in the right direction */
+	/* 'dir' is the direction of EDGE */
+	
+	if(edge->v1->vec.x==edge->v2->vec.x) dir= 'v';
+	else dir= 'h';
+	
+	sv= sc->vertbase.first;
+	while(sv) {
+		sv->flag = 0;
+		sv= sv->next;
+	}
+	
+	edge->v1->flag= 1;
+	edge->v2->flag= 1;
+	
+	oneselected= 1;
+	while(oneselected) {
+		se= sc->edgebase.first;
+		oneselected= 0;
+		while(se) {
+			if(se->v1->flag + se->v2->flag==1) {
+				if(dir=='h') if(se->v1->vec.y==se->v2->vec.y) {
+					se->v1->flag= se->v2->flag= 1;
+					oneselected= 1;
+				}
+					if(dir=='v') if(se->v1->vec.x==se->v2->vec.x) {
+						se->v1->flag= se->v2->flag= 1;
+						oneselected= 1;
+					}
+			}
+				se= se->next;
+		}
+	}
+}
 
 /* test if screen vertices should be scaled */
 static void screen_test_scale(bScreen *sc, int winsizex, int winsizey)
@@ -580,6 +621,33 @@
 		if(sa->v1==sa->v2 || sa->v3==sa->v4 || sa->v2==sa->v3)
 			screen_delarea(sc, sa);
 	}
+	
+	/* make each window at least HEADERY high */
+	for(sa= sc->areabase.first; sa; sa= sa->next) {
+		int headery= HEADERY+1;
+		
+		if(sa->v1->vec.y+headery > sa->v2->vec.y) {
+			/* lower edge */
+			ScrEdge *se= screen_findedge(sc, sa->v4, sa->v1);
+			if(se && sa->v1!=sa->v2 ) {
+				int yval;
+				
+				select_connected_scredge(sc, se);
+				
+				/* all selected vertices get the right offset */
+				yval= sa->v2->vec.y-headery;
+				sv= sc->vertbase.first;
+				while(sv) {
+					/* if is a collapsed area */
+					if(sv!=sa->v2 && sv!=sa->v3) {
+						if(sv->flag) sv->vec.y= yval;
+					}
+					sv= sv->next;
+				}
+			}
+		}
+	}
+	
 }
 
 /* *********************** DRAWING **************************************** */

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_intern.h	2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_intern.h	2008-12-14 10:52:48 UTC (rev 17833)
@@ -32,19 +32,20 @@
 struct wmWindow;
 
 /* area.c */
-void area_copy_data(ScrArea *sa1, ScrArea *sa2, int swap_space);
+void		area_copy_data	(ScrArea *sa1, ScrArea *sa2, int swap_space);
 
 /* screen_edit.c */
-bScreen *screen_add(struct wmWindow *win, char *name);
-ScrEdge *screen_findedge(bScreen *sc, ScrVert *v1, ScrVert *v2);
-ScrArea *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac);
-int screen_area_join(bScreen* scr, ScrArea *sa1, ScrArea *sa2);
-int area_getorientation(bScreen *screen, ScrArea *sa, ScrArea *sb);
+bScreen		*screen_add(struct wmWindow *win, char *name);
+ScrEdge		*screen_findedge(bScreen *sc, ScrVert *v1, ScrVert *v2);
+ScrArea		*area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac);
+int			screen_area_join(bScreen* scr, ScrArea *sa1, ScrArea *sa2);
+int			area_getorientation(bScreen *screen, ScrArea *sa, ScrArea *sb);
+void		select_connected_scredge(bScreen *sc, ScrEdge *edge);
 
-void removenotused_scrverts(bScreen *sc);
-void removedouble_scrverts(bScreen *sc);
-void removedouble_scredges(bScreen *sc);
-void removenotused_scredges(bScreen *sc);
+void		removenotused_scrverts(bScreen *sc);
+void		removedouble_scrverts(bScreen *sc);
+void		removedouble_scredges(bScreen *sc);
+void		removenotused_scredges(bScreen *sc);
 
 #endif /* ED_SCREEN_INTERN_H */
 

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c	2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c	2008-12-14 10:52:48 UTC (rev 17833)
@@ -416,48 +416,6 @@
 	}
 }
 
-static void select_connected_scredge(bScreen *sc, ScrEdge *edge)
-{
-	ScrEdge *se;
-	ScrVert *sv;
-	int oneselected;
-	char dir;
-	
-	/* select connected, only in the right direction */
-	/* 'dir' is the direction of EDGE */
-	
-	if(edge->v1->vec.x==edge->v2->vec.x) dir= 'v';
-	else dir= 'h';
-	
-	sv= sc->vertbase.first;
-	while(sv) {
-		sv->flag = 0;
-		sv= sv->next;
-	}
-	
-	edge->v1->flag= 1;
-	edge->v2->flag= 1;
-	
-	oneselected= 1;
-	while(oneselected) {
-		se= sc->edgebase.first;
-		oneselected= 0;
-		while(se) {
-			if(se->v1->flag + se->v2->flag==1) {
-				if(dir=='h') if(se->v1->vec.y==se->v2->vec.y) {
-					se->v1->flag= se->v2->flag= 1;
-					oneselected= 1;
-				}
-					if(dir=='v') if(se->v1->vec.x==se->v2->vec.x) {
-						se->v1->flag= se->v2->flag= 1;
-						oneselected= 1;
-					}
-			}
-				se= se->next;
-		}
-	}
-}
-
 /* validate selection inside screen, set variables OK */
 /* return 0: init failed */
 static int area_move_init (bContext *C, wmOperator *op)

Modified: branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c	2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c	2008-12-14 10:52:48 UTC (rev 17833)
@@ -68,6 +68,7 @@
 	ED_spacetype_image();
 	ED_spacetype_node();
 	ED_spacetype_buttons();
+	ED_spacetype_info();
 //	...
 	
 	/* register operator types for screen and all spaces */

Added: branches/blender2.5/blender/source/blender/editors/space_info/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_info/Makefile	                        (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/space_info/Makefile	2008-12-14 10:52:48 UTC (rev 17833)
@@ -0,0 +1,53 @@
+#
+# $Id: Makefile 14 2002-10-13 15:57:19Z hans $
+#
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list