[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