[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13087] branches/blender2.5/blender/source /blender: More work on restoring Blender;

Ton Roosendaal ton at blender.org
Tue Jan 1 16:53:39 CET 2008


Revision: 13087
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13087
Author:   ton
Date:     2008-01-01 16:53:38 +0100 (Tue, 01 Jan 2008)

Log Message:
-----------
More work on restoring Blender;

- brining back subwindow management
- removing more bad level stuff

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/Makefile
    branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
    branches/blender2.5/blender/source/blender/blenlib/intern/BLI_ghash.c
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_screen_types.h
    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/WM_types.h
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_files.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_init_exit.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_window.c

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_subwindow.c
    branches/blender2.5/blender/source/blender/windowmanager/wm_subwindow.h

Modified: branches/blender2.5/blender/source/blender/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/Makefile	2008-01-01 14:13:37 UTC (rev 13086)
+++ branches/blender2.5/blender/source/blender/Makefile	2008-01-01 15:53:38 UTC (rev 13087)
@@ -33,10 +33,10 @@
 
 include nan_definitions.mk
 
-DIRS = windowmanager blenloader readblenfile
+DIRS = windowmanager editors blenloader readblenfile
 DIRS += avi imbuf render radiosity blenlib blenkernel blenpluginapi
+DIRS += nodes
 DIRS += makesdna yafray
-DIRS += nodes
 
 ifeq ($(INTERNATIONAL), true)
 	DIRS += ftfont

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c	2008-01-01 14:13:37 UTC (rev 13086)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c	2008-01-01 15:53:38 UTC (rev 13087)
@@ -84,10 +84,6 @@
 #include "BLO_writefile.h" 
 
 #include "BKE_utildefines.h" // O_BINARY FALSE
-#include "BIF_mainqueue.h" // mainqenter for onload script
-#include "mydevice.h"
-#include "nla.h"
-#include "blendef.h"
 
 
 Global G;
@@ -411,7 +407,7 @@
 	
 	if (G.f & G_DOSCRIPTLINKS) {
 		/* there's an onload scriptlink to execute in screenmain */
-		mainqenter(ONLOAD_SCRIPT, 1);
+// XXX		mainqenter(ONLOAD_SCRIPT, 1);
 	}
 	if (G.sce != filename) /* these are the same at times, should never copy to the same location */
 		strcpy(G.sce, filename);
@@ -430,7 +426,7 @@
 		char str[128];
 		
 		sprintf(str, "File written by newer Blender binary: %d.%d , expect loss of data!", main->minversionfile, main->minsubversionfile);
-		error(str);
+// XXX		error(str);
 	}
 		
 }
@@ -456,7 +452,7 @@
 		handle_subversion_warning(G.main);
 	} 
 	else {
-		error("Loading %s failed: %s", dir, BLO_bre_as_string(bre));
+// XXX		error("Loading %s failed: %s", dir, BLO_bre_as_string(bre));
 	}
 		
 	return (bfd?retval:0);
@@ -471,7 +467,7 @@
 	if (bfd) {		
 		setup_app_data(C, bfd, "<memory>");
 	} else {
-		error("Loading failed: %s", BLO_bre_as_string(bre));
+// XXX		error("Loading failed: %s", BLO_bre_as_string(bre));
 	}
 		
 	return (bfd?1:0);
@@ -487,7 +483,7 @@
 	if (bfd) {
 		setup_app_data(C, bfd, "<memory>");
 	} else {
-		error("Loading failed: %s", BLO_bre_as_string(bre));
+// XXX		error("Loading failed: %s", BLO_bre_as_string(bre));
 	}
 		
 	return (bfd?1:0);
@@ -609,7 +605,7 @@
 	}
 	else if(step==1) {
 		/* curundo should never be NULL, after restart or load file it should call undo_save */
-		if(curundo==NULL || curundo->prev==NULL) error("No undo available");
+		if(curundo==NULL || curundo->prev==NULL) ; // XXX error("No undo available");
 		else {
 			if(G.f & G_DEBUG) printf("undo %s\n", curundo->name);
 			curundo= curundo->prev;
@@ -620,7 +616,7 @@
 		
 		/* curundo has to remain current situation! */
 		
-		if(curundo==NULL || curundo->next==NULL) error("No redo available");
+		if(curundo==NULL || curundo->next==NULL) ; // XXX error("No redo available");
 		else {
 			read_undosave(C, curundo->next);
 			curundo= curundo->next;

Modified: branches/blender2.5/blender/source/blender/blenlib/intern/BLI_ghash.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenlib/intern/BLI_ghash.c	2008-01-01 14:13:37 UTC (rev 13086)
+++ branches/blender2.5/blender/source/blender/blenlib/intern/BLI_ghash.c	2008-01-01 15:53:38 UTC (rev 13087)
@@ -117,14 +117,16 @@
 	}
 }
 
-void* BLI_ghash_lookup(GHash *gh, void *key) {
-	unsigned int hash= gh->hashfp(key)%gh->nbuckets;
-	Entry *e;
-	
-	for (e= gh->buckets[hash]; e; e= e->next)
-		if (gh->cmpfp(key, e->key)==0)
-			return e->val;
-	
+void* BLI_ghash_lookup(GHash *gh, void *key) 
+{
+	if(gh) {
+		unsigned int hash= gh->hashfp(key)%gh->nbuckets;
+		Entry *e;
+		
+		for (e= gh->buckets[hash]; e; e= e->next)
+			if (gh->cmpfp(key, e->key)==0)
+				return e->val;
+	}	
 	return NULL;
 }
 

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2008-01-01 14:13:37 UTC (rev 13086)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2008-01-01 15:53:38 UTC (rev 13087)
@@ -3502,9 +3502,11 @@
 	for(win= wm->windows.first; win; win= win->next) {
 		win->ghostwin= NULL;
 		win->eventstate= NULL;
+		win->curswin= NULL;
 		
 		win->queue.first= win->queue.last= NULL;
 		win->handlers.first= win->handlers.last= NULL;
+		win->subwindows.first= win->subwindows.last= NULL;
 	}
 	
 	wm->operators.first= wm->operators.last= NULL;
@@ -3844,8 +3846,8 @@
 	link_list(fd, &(sc->vertbase));
 	link_list(fd, &(sc->edgebase));
 	link_list(fd, &(sc->areabase));
-	sc->winakt= 0;
 	
+	sc->mainwin= sc->subwinactive= NULL;
 	sc->handlers.first= sc->handlers.last= NULL;
 	
 	/* hacky patch... but people have been saving files with the verse-blender,
@@ -3858,8 +3860,7 @@
 	}
 	
 	/* edges */
-	se= sc->edgebase.first;
-	while(se) {
+	for(se= sc->edgebase.first; se; se= se->next) {
 		se->v1= newdataadr(fd, se->v1);
 		se->v2= newdataadr(fd, se->v2);
 		if( (long)se->v1 > (long)se->v2) {
@@ -3872,20 +3873,20 @@
 			printf("error reading screen... file corrupt\n");
 			se->v1= se->v2;
 		}
-		se= se->next;
 	}
 
 	/* areas */
-	sa= sc->areabase.first;
-	while(sa) {
+	for(sa= sc->areabase.first; sa; sa= sa->next) {
 		Panel *pa;
 		SpaceLink *sl;
+		ARegion *ar;
 
 		link_list(fd, &(sa->spacedata));
 		link_list(fd, &(sa->panels));
+		link_list(fd, &(sa->regionbase));
 
 		sa->handlers.first= sa->handlers.last= NULL;
-		sa->regionbase.first= sa->regionbase.last= NULL;
+		sa->uiblocks.first= sa->uiblocks.last= NULL;
 		
 		/* accident can happen when read/save new file with older version */
 		if(sa->spacedata.first==NULL && sa->spacetype>SPACE_NLA)
@@ -3943,20 +3944,19 @@
 				snode->flag |= SNODE_DO_PREVIEW;
 			}
 		}
+		
+		for(ar= sa->regionbase.first; ar; ar= ar->next) {
+			ar->handlers.first= ar->handlers.last= NULL;
+			ar->subwin= NULL;
+		}
 
 		sa->v1= newdataadr(fd, sa->v1);
 		sa->v2= newdataadr(fd, sa->v2);
 		sa->v3= newdataadr(fd, sa->v3);
 		sa->v4= newdataadr(fd, sa->v4);
 
-		sa->win= sa->headwin= 0;
-
-		sa->uiblocks.first= sa->uiblocks.last= NULL;
-
 		/* space handler scriptlinks */
 		direct_link_scriptlink(fd, &sa->scriptlink);
-
-		sa= sa->next;
 	}
 }
 

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c	2008-01-01 14:13:37 UTC (rev 13086)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c	2008-01-01 15:53:38 UTC (rev 13087)
@@ -1,7 +1,4 @@
-/* writefile.c
- *
- * .blend file writing
- *
+/*
  * $Id$
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
@@ -1523,35 +1520,31 @@
 
 	sc= scrbase->first;
 	while(sc) {
+		
 		/* write LibData */
 		writestruct(wd, ID_SCR, "Screen", 1, sc);
-		if (sc->id.properties) IDP_WriteProperty(sc->id.properties, wd);
+		if (sc->id.properties) 
+			IDP_WriteProperty(sc->id.properties, wd);
 
 		/* direct data */
-		sv= sc->vertbase.first;
-		while(sv) {
+		for(sv= sc->vertbase.first; sv; sv= sv->next)
 			writestruct(wd, DATA, "ScrVert", 1, sv);
-			sv= sv->next;
-		}
 
-		se= sc->edgebase.first;
-		while(se) {
+		for(se= sc->edgebase.first; se; se= se->next) 
 			writestruct(wd, DATA, "ScrEdge", 1, se);
-			se= se->next;
-		}
 
-		sa= sc->areabase.first;
-		while(sa) {
+		for(sa= sc->areabase.first; sa; sa= sa->next) {
 			SpaceLink *sl;
 			Panel *pa;
+			ARegion *ar;
 
 			writestruct(wd, DATA, "ScrArea", 1, sa);
 
-			pa= sa->panels.first;
-			while(pa) {
+			for(pa= sa->panels.first; pa; pa= pa->next)
 				writestruct(wd, DATA, "Panel", 1, pa);
-				pa= pa->next;
-			}
+			
+			for(ar= sa->regionbase.first; ar; ar= ar->next)
+				writestruct(wd, DATA, "ARegion", 1, ar);
 
 			/* space handler scriptlinks */
 			write_scriptlink(wd, &sa->scriptlink);
@@ -1642,8 +1635,6 @@
 				}
 				sl= sl->next;
 			}
-
-			sa= sa->next;
 		}
 
 		sc= sc->id.next;

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_screen_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_screen_types.h	2008-01-01 14:13:37 UTC (rev 13086)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_screen_types.h	2008-01-01 15:53:38 UTC (rev 13087)
@@ -1,6 +1,4 @@
 /**
- * blenlib/DNA_screen_types.h (mar-2001 nzc)
- *
  * $Id$ 
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
@@ -37,6 +35,7 @@
 #include "DNA_scriptlink_types.h"
 
 struct Scene;
+struct wmSubWindow;
 
 typedef struct bScreen {
 	ID id;
@@ -46,11 +45,14 @@
 	short startx, endx, starty, endy;	/* framebuffer coords */
 	short sizex, sizey;
 	short scenenr, screennr;			/* only for pupmenu */
-	short full, winid;					/* win id from WM, starts with 1 */
-	short mainwin, winakt;
+	short full, winid;					/* winid from WM, starts with 1 */
+	int pad;
 	short handler[8];					/* similar to space handler now */
 	
-	ListBase handlers;
+	struct wmSubWindow *mainwin;		/* screensize subwindow, for screenedges */
+	struct wmSubWindow *subwinactive;	/* active subwindow */
+	
+	ListBase handlers;					/* wmEventHandler */
 } bScreen;
 
 typedef struct ScrVert {
@@ -101,7 +103,7 @@
 	float winmat[4][4];
 	rcti totrct, headrct, winrct;
 
-	short headwin, win;
+	int pad;
 	short headertype;		/* 0=no header, 1= down, 2= up */
 	char spacetype, butspacetype;	/* SPACE_...  */
 	short winx, winy;		/* size */
@@ -116,14 +118,15 @@
 	ListBase spacedata;
 	ListBase uiblocks;
 	ListBase panels;
-	ListBase regionbase;
-	ListBase handlers;
+	ListBase regionbase;	/* ARegion */
+	ListBase handlers;		/* wmEventHandler */
 } ScrArea;
 
 typedef struct ARegion {
 	struct ARegion *next, *prev;
 	
 	rcti winrct;
+	struct wmSubWindow *subwin;
 	
 	ListBase handlers;
 	

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h	2008-01-01 14:13:37 UTC (rev 13086)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h	2008-01-01 15:53:38 UTC (rev 13087)
@@ -46,6 +46,7 @@
 struct wmLocal;
 struct bScreen;

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list