[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12993] branches/blender2.5/blender/source /blender: Part 4 of the event refactor branch: all changes in existing files,

Ton Roosendaal ton at blender.org
Mon Dec 24 19:53:37 CET 2007


Revision: 12993
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12993
Author:   ton
Date:     2007-12-24 19:53:37 +0100 (Mon, 24 Dec 2007)

Log Message:
-----------
Part 4 of the event refactor branch: all changes in existing files,
Makefiles especially, and of course the windowmanager DNA!

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenlib/intern/Makefile
    branches/blender2.5/blender/source/blender/blenlib/intern/freetypefont.c
    branches/blender2.5/blender/source/blender/blenloader/BLO_readfile.h
    branches/blender2.5/blender/source/blender/blenloader/BLO_writefile.h
    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/ftfont/intern/Makefile
    branches/blender2.5/blender/source/blender/imbuf/intern/thumbs.c
    branches/blender2.5/blender/source/blender/imbuf/intern/writeimage.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_ID.h
    branches/blender2.5/blender/source/blender/makesdna/DNA_screen_types.h
    branches/blender2.5/blender/source/blender/makesdna/intern/makesdna.c
    branches/blender2.5/blender/source/blender/nodes/Makefile
    branches/blender2.5/blender/source/blender/nodes/intern/CMP_nodes/Makefile
    branches/blender2.5/blender/source/blender/nodes/intern/SHD_nodes/Makefile
    branches/blender2.5/blender/source/blender/quicktime/apple/Makefile
    branches/blender2.5/blender/source/blender/radiosity/intern/source/Makefile
    branches/blender2.5/blender/source/blender/render/intern/source/Makefile

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h
    branches/blender2.5/blender/source/blender/python/
    branches/blender2.5/blender/source/blender/python/BPY_extern.h

Modified: branches/blender2.5/blender/source/blender/blenlib/intern/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/blenlib/intern/Makefile	2007-12-24 18:38:03 UTC (rev 12992)
+++ branches/blender2.5/blender/source/blender/blenlib/intern/Makefile	2007-12-24 18:53:37 UTC (rev 12993)
@@ -36,7 +36,7 @@
 
 include nan_compile.mk
 
-# CPPFLAGS += $(LEVEL_2_CPP_WARNINGS)
+CFLAGS += $(LEVEL_1_C_WARNINGS)
 
 # path to SDNA types
 CPPFLAGS += -I../../makesdna
@@ -49,7 +49,7 @@
 CPPFLAGS += -I$(NAN_FREETYPE)/include/freetype2
 # path to blenkernel
 CPPFLAGS += -I$(SRCHOME)/blender/blenkernel
-CPPFLAGS += -I../../include/
+CPPFLAGS += -I../../editors/include/
 # path to zlib
 CPPFLAGS += -I$(NAN_ZLIB)/include
 

Modified: branches/blender2.5/blender/source/blender/blenlib/intern/freetypefont.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenlib/intern/freetypefont.c	2007-12-24 18:38:03 UTC (rev 12992)
+++ branches/blender2.5/blender/source/blender/blenlib/intern/freetypefont.c	2007-12-24 18:53:37 UTC (rev 12993)
@@ -55,6 +55,7 @@
 #include "BIF_toolbox.h"
 
 #include "BKE_global.h"
+#include "BKE_font.h"
 #include "BKE_utildefines.h"
 
 #include "DNA_vfont_types.h"
@@ -283,13 +284,7 @@
 	struct TmpFont *tf;
 	
 	// Find the correct FreeType font
-	tf= G.ttfdata.first;
-	while(tf)
-	{
-		if(tf->vfont == vfont)
-			break;
-		tf= tf->next;		
-	}
+	tf= vfont_find_tmpfont(vfont);
 	
 	// What, no font found. Something strange here
 	if(!tf) return FALSE;

Modified: branches/blender2.5/blender/source/blender/blenloader/BLO_readfile.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/BLO_readfile.h	2007-12-24 18:38:03 UTC (rev 12992)
+++ branches/blender2.5/blender/source/blender/blenloader/BLO_readfile.h	2007-12-24 18:53:37 UTC (rev 12993)
@@ -87,7 +87,7 @@
 	int fileflags;
 	int displaymode;
 	int globalf;
-
+	
 	struct bScreen*	curscreen;
 	struct Scene*	curscene;
 	
@@ -236,8 +236,10 @@
 
 char *BLO_gethome(void);
 int BLO_has_bfile_extension(char *str);
-void BLO_library_append(struct SpaceFile *sfile, char *dir, int idcode);
-void BLO_library_append_(BlendHandle **libfiledata, struct direntry* filelist, int totfile, char *dir, char* file, short flag, int idcode);
+
+void BLO_library_append(struct SpaceFile *sfile, char *dir, int idcode, struct Scene *scene);
+void BLO_library_append_(BlendHandle **libfiledata, struct direntry* filelist, int totfile, 
+						 char *dir, char* file, short flag, int idcode, struct Scene *scene);
 void BLO_script_library_append(BlendHandle *bh, char *dir, char *name, int idcode, short flag, struct Scene *scene);
 
 BlendFileData* blo_read_blendafterruntime(int file, int actualsize, BlendReadError *error_r);

Modified: branches/blender2.5/blender/source/blender/blenloader/BLO_writefile.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/BLO_writefile.h	2007-12-24 18:38:03 UTC (rev 12992)
+++ branches/blender2.5/blender/source/blender/blenloader/BLO_writefile.h	2007-12-24 18:53:37 UTC (rev 12993)
@@ -35,10 +35,12 @@
 #define BLO_WRITEFILE_H
 
 struct MemFile;
+struct bContext;
 
-extern int BLO_write_file(char *dir, int write_flags, char **error_r);
-extern int BLO_write_file_mem(struct MemFile *compare, struct MemFile *current, int write_flags, char **error_r);
-extern void BLO_write_runtime(char *file, char *exename);
+extern int BLO_write_file(struct bContext *C, char *dir, int write_flags, char **error_r);
+extern int BLO_write_file_mem(struct bContext *C, struct MemFile *compare, struct MemFile *current, 
+							  int write_flags, char **error_r);
+extern void BLO_write_runtime(struct bContext *C, char *file, char *exename);
 
 #endif
 

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2007-12-24 18:38:03 UTC (rev 12992)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2007-12-24 18:53:37 UTC (rev 12993)
@@ -20,9 +20,8 @@
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  *
- * The Original Code is: all of this file.
  *
- * Contributor(s): none yet.
+ * Contributor(s): Blender Foundation
  *
  * ***** END GPL LICENSE BLOCK *****
  *
@@ -101,6 +100,7 @@
 #include "DNA_userdef_types.h"
 #include "DNA_vfont_types.h"
 #include "DNA_world_types.h"
+#include "DNA_windowmanager_types.h"
 
 #include "MEM_guardedalloc.h"
 #include "BLI_blenlib.h"
@@ -109,8 +109,6 @@
 
 #include "BDR_sculptmode.h"
 
-#include "BKE_bad_level_calls.h" // for reopen_text build_seqar (from WHILE_SEQ) set_rects_butspace check_imasel_copy
-
 #include "BKE_action.h"
 #include "BKE_armature.h"
 #include "BKE_colortools.h"
@@ -3492,6 +3490,42 @@
 	}
 }
 
+/* ************ READ WM ***************** */
+
+static void direct_link_windowmanager(FileData *fd, wmWindowManager *wm)
+{
+	wmWindow *win;
+	
+	wm->id.us= 1;
+	link_list(fd, &(wm->windows));
+	
+	for(win= wm->windows.first; win; win= win->next) {
+		win->ghostwin= NULL;
+		win->eventstate= NULL;
+		
+		win->queue.first= win->queue.last= NULL;
+		win->handlers.first= win->handlers.last= NULL;
+	}
+	
+	wm->operators.first= wm->operators.last= NULL;
+	wm->windowkeymap.first= wm->windowkeymap.last= NULL;
+	wm->screenkeymap.first= wm->screenkeymap.last= NULL;
+	
+	wm->initialized= 0;
+}
+
+static void lib_link_windowmanager(FileData *fd, Main *main)
+{
+	wmWindowManager *wm;
+	
+	for(wm= main->wm.first; wm; wm= wm->id.next) {
+		wmWindow *win;
+		for(win= wm->windows.first; win; win= win->next) {
+			win->screen= newlibadr(fd, NULL, win->screen);
+		}
+	}
+}
+
 /* ************ READ SCREEN ***************** */
 
 /* note: file read without screens option G_FILE_NO_UI; 
@@ -3811,7 +3845,9 @@
 	link_list(fd, &(sc->edgebase));
 	link_list(fd, &(sc->areabase));
 	sc->winakt= 0;
-
+	
+	sc->handlers.first= sc->handlers.last= NULL;
+	
 	/* hacky patch... but people have been saving files with the verse-blender,
 	   causing the handler to keep running for ever, with no means to disable it */
 	for(a=0; a<SCREEN_MAXHANDLER; a+=2) {
@@ -3848,6 +3884,9 @@
 		link_list(fd, &(sa->spacedata));
 		link_list(fd, &(sa->panels));
 
+		sa->handlers.first= sa->handlers.last= NULL;
+		sa->regionbase.first= sa->regionbase.last= NULL;
+		
 		/* accident can happen when read/save new file with older version */
 		if(sa->spacedata.first==NULL && sa->spacetype>SPACE_NLA)
 			sa->spacetype= SPACE_EMPTY;
@@ -4129,6 +4168,9 @@
 
 	/* init pointers direct data */
 	switch( GS(id->name) ) {
+		case ID_WM:
+			direct_link_windowmanager(fd, (wmWindowManager *)id);
+			break;
 		case ID_SCR:
 			direct_link_screen(fd, (bScreen *)id);
 			break;
@@ -4218,16 +4260,36 @@
 	return (bhead);
 }
 
-static void link_global(FileData *fd, BlendFileData *bfd, FileGlobal *fg)
+/* note, this has to be kept for reading older files... */
+/* also version info is written here */
+static BHead *read_global(BlendFileData *bfd, FileData *fd, BHead *bhead)
 {
-	// this is nonsense... make it struct once (ton)
+	FileGlobal *fg= read_struct(fd, bhead, "Global");
+	
+	/* copy to bfd handle */
+	bfd->main->subversionfile= fg->subversion;
+	bfd->main->minversionfile= fg->minversion;
+	bfd->main->minsubversionfile= fg->minsubversion;
+	
 	bfd->winpos= fg->winpos;
 	bfd->fileflags= fg->fileflags;
 	bfd->displaymode= fg->displaymode;
 	bfd->globalf= fg->globalf;
 	
-	bfd->curscreen= newlibadr(fd, 0, fg->curscreen);
-	bfd->curscene= newlibadr(fd, 0, fg->curscene);
+	bfd->curscreen= fg->curscreen;
+	bfd->curscene= fg->curscene;
+	
+	MEM_freeN(fg);
+	
+	return blo_nextbhead(fd, bhead);
+}
+
+/* note, this has to be kept for reading older files... */
+static void link_global(FileData *fd, BlendFileData *bfd)
+{
+	
+	bfd->curscreen= newlibadr(fd, 0, bfd->curscreen);
+	bfd->curscene= newlibadr(fd, 0, bfd->curscene);
 	// this happens in files older than 2.35
 	if(bfd->curscene==NULL) {
 		if(bfd->curscreen) bfd->curscene= bfd->curscreen->scene;
@@ -7269,6 +7331,7 @@
 {
 	oldnewmap_sort(fd);
 	
+	lib_link_windowmanager(fd, main);
 	lib_link_screen(fd, main);
 	lib_link_scene(fd, main);
 	lib_link_object(fd, main);
@@ -7299,6 +7362,7 @@
 	lib_link_library(fd, main);		/* only init users */
 }
 
+
 static BHead *read_userdef(BlendFileData *bfd, FileData *fd, BHead *bhead)
 {
 	Link *link;
@@ -7332,20 +7396,15 @@
 	
 	while(bhead) {
 		switch(bhead->code) {
-		case GLOB:
 		case DATA:
 		case DNA1:
 		case TEST:
 		case REND:
-			if (bhead->code==GLOB) {
-				fg= read_struct(fd, bhead, "Global");
-				/* set right away */
-				bfd->main->subversionfile= fg->subversion;
-				bfd->main->minversionfile= fg->minversion;
-				bfd->main->minsubversionfile= fg->minsubversion;
-			}
 			bhead = blo_nextbhead(fd, bhead);
 			break;
+		case GLOB:
+			bhead= read_global(bfd, fd, bhead);
+			break;
 		case USER:
 			bhead= read_userdef(bfd, fd, bhead);
 			break;
@@ -7380,11 +7439,7 @@
 	lib_link_all(fd, bfd->main);
 	lib_verify_nodetree(bfd->main);
 	
-	if(fg)
-		link_global(fd, bfd, fg);	/* as last */
-
-	/* removed here: check for existance of curscreen/scene, moved to kernel setup_app */
-	MEM_freeN(fg);
+	link_global(fd, bfd);	/* as last */
 	
 	return bfd;
 }
@@ -8165,10 +8220,9 @@
 					if(id==NULL) ob= mainvar->object.last;
 					else ob= (Object *)id;
 					
-					/* this is bad code... G.vd nor G.scene should be used on this level... */
+					/* XXX use context to find view3d->lay */
 					if((flag & FILE_ACTIVELAY)) {
-						if(G.vd) ob->lay= G.vd->layact;
-						else ob->lay = G.scene->lay;
+						scene->lay;
 					}
 					base->lay= ob->lay;
 					base->object= ob;
@@ -8210,7 +8264,7 @@
 
 /* common routine to append/link something from a library */
 
-static Library* library_append( Scene *scene, char* file, char *dir, int idcode,
+static Library* library_append(Scene *scene, char* file, char *dir, int idcode,
 		int totsel, FileData *fd, struct direntry* filelist, int totfile, short flag)
 {
 	Main *mainl;
@@ -8279,27 +8333,29 @@
 
 /* this is a version of BLO_library_append needed by the BPython API, so
  * scripts can load data from .blend files -- see Blender.Library module.*/
-/* append to G.scene */
+/* append to scene */

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list