[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