[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17790] branches/blender2.5/blender/source : 2.5
Ton Roosendaal
ton at blender.org
Thu Dec 11 20:35:27 CET 2008
Revision: 17790
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17790
Author: ton
Date: 2008-12-11 20:35:27 +0100 (Thu, 11 Dec 2008)
Log Message:
-----------
2.5
Today's progress; half working, but i better commit to prevent
conflicts tomorrow :)
- added storage for regions in spacedata
- added space switching (unfinished, gives mem-free errors)
- bugfix: icon of timewindow gave error on split-area
- cleaned interface_icons.c a bit, no warnings
- first work on space new() callbacks, they have to make regions too
NOTE: probably files saved with 2.5 crash now. Have to look at
patching this.
NOTE2: the Makefiles required libeditor screen twice... scons too?
Modified Paths:
--------------
branches/blender2.5/blender/source/Makefile
branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c
branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c
branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
branches/blender2.5/blender/source/blender/editors/screen/space.c
branches/blender2.5/blender/source/blender/editors/space_time/space_time.c
branches/blender2.5/blender/source/blender/editors/space_time/time_header.c
branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
branches/blender2.5/blender/source/blender/makesdna/DNA_action_types.h
branches/blender2.5/blender/source/blender/makesdna/DNA_sound_types.h
branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
branches/blender2.5/blender/source/blender/makesdna/DNA_view3d_types.h
Modified: branches/blender2.5/blender/source/Makefile
===================================================================
--- branches/blender2.5/blender/source/Makefile 2008-12-11 15:38:16 UTC (rev 17789)
+++ branches/blender2.5/blender/source/Makefile 2008-12-11 19:35:27 UTC (rev 17790)
@@ -230,6 +230,7 @@
COMLIB += $(NAN_OPENEXR_LIBS)
endif
+# silly: libed_screen.a twice :(
PULIB = $(NAN_MOTO)/lib/libmoto.a
PULIB += $(NAN_ELBEEM)/lib/$(DEBUG_DIR)libelbeem.a
PULIB += $(OCGDIR)/blender/readblenfile/$(DEBUG_DIR)libreadblenfile.a
@@ -241,6 +242,7 @@
PULIB += $(OCGDIR)/blender/ed_util/libed_util.a
PULIB += $(OCGDIR)/blender/ed_datafiles/libed_datafiles.a
PULIB += $(OCGDIR)/blender/windowmanager/libwindowmanager.a
+PULIB += $(OCGDIR)/blender/ed_screen/libed_screen.a
PULIB += $(OCGDIR)/blender/python/$(DEBUG_DIR)libpython.a
PULIB += $(OCGDIR)/blender/makesrna/$(DEBUG_DIR)librna.a
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c 2008-12-11 15:38:16 UTC (rev 17789)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c 2008-12-11 19:35:27 UTC (rev 17790)
@@ -101,12 +101,17 @@
void BKE_spacedata_freelist(ListBase *lb)
{
SpaceLink *sl;
+ ARegion *ar;
for (sl= lb->first; sl; sl= sl->next) {
SpaceType *st= BKE_spacetype_from_id(sl->spacetype);
if(st && st->free)
st->free(sl);
+ /* regions for pushed spaces */
+ for(ar=sl->regionbase.first; ar; ar=ar->next)
+ BKE_area_region_free(ar);
+ BLI_freelistN(&sl->regionbase);
}
BLI_freelistN(lb);
Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2008-12-11 15:38:16 UTC (rev 17789)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2008-12-11 19:35:27 UTC (rev 17790)
@@ -5038,64 +5038,64 @@
}
}
-static void do_versions_windowmanager_2_50(bScreen *screen)
+/* 2.50 patch */
+static void area_add_header_region(ScrArea *sa, ListBase *lb)
{
- struct ScrArea *sa;
- struct ARegion *ar;
+ ARegion *ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
- /* add regions */
- for(sa= screen->areabase.first; sa; sa= sa->next) {
- /* we keep headertype variable to convert old files only */
- if(sa->headertype) {
- ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
- BLI_addtail(&sa->regionbase, ar);
- ar->regiontype= RGN_TYPE_HEADER;
- if(sa->headertype==1)
- ar->alignment= RGN_ALIGN_BOTTOM;
- else
- ar->alignment= RGN_ALIGN_TOP;
-
- /* initialise view2d data for header region, to allow panning */
- ar->v2d.keepaspect= 1;
- ar->v2d.keepzoom = (V2D_LOCKZOOM_X|V2D_LOCKZOOM_Y|V2D_KEEPZOOM);
- ar->v2d.keepofs = V2D_LOCKOFS_Y;
- ar->v2d.keeptot = 2; // this keeps the view in place when region size changes...
- ar->v2d.align = V2D_ALIGN_NO_NEG_X;
-
- ar->v2d.minzoom= ar->v2d.maxzoom= 1.0f;
-
- ar->v2d.mask.xmin= ar->v2d.mask.ymin= 0;
- ar->v2d.mask.xmax= sa->winx;
- ar->v2d.mask.ymax= HEADERY;
-
- ar->v2d.cur.xmin= sa->headbutofs;
- ar->v2d.cur.xmax= sa->winx + sa->headbutofs;
- ar->v2d.tot.xmin= 0.0f;
- ar->v2d.tot.xmax= sa->headbutlen;
-
- if (ar->alignment == RGN_ALIGN_BOTTOM) {
- ar->v2d.align = V2D_ALIGN_NO_NEG_Y;
- ar->v2d.tot.ymin= ar->v2d.cur.ymin= 0.0f; // what was area->headrct.ymin?
- ar->v2d.tot.ymax= ar->v2d.cur.ymax= HEADERY;
- }
- else {
- // XXX what were the extents of the old headers?
- ar->v2d.align = V2D_ALIGN_NO_NEG_Y;
- ar->v2d.tot.ymin= ar->v2d.cur.ymin= 0.0f; // what was area->headrct.ymin?
- ar->v2d.tot.ymax= ar->v2d.cur.ymax= HEADERY;
- }
- }
-
- ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
- BLI_addtail(&sa->regionbase, ar);
- ar->winrct= sa->totrct;
- ar->regiontype= RGN_TYPE_WINDOW;
-
+ BLI_addtail(lb, ar);
+ ar->regiontype= RGN_TYPE_HEADER;
+ if(sa->headertype==1)
+ ar->alignment= RGN_ALIGN_BOTTOM;
+ else
+ ar->alignment= RGN_ALIGN_TOP;
+
+ /* initialise view2d data for header region, to allow panning */
+ ar->v2d.keepaspect= 1;
+ ar->v2d.keepzoom = (V2D_LOCKZOOM_X|V2D_LOCKZOOM_Y|V2D_KEEPZOOM);
+ ar->v2d.keepofs = V2D_LOCKOFS_Y;
+ ar->v2d.keeptot = 2; // this keeps the view in place when region size changes...
+ ar->v2d.align = V2D_ALIGN_NO_NEG_X;
+
+ ar->v2d.minzoom= ar->v2d.maxzoom= 1.0f;
+
+ ar->v2d.mask.xmin= ar->v2d.mask.ymin= 0;
+ ar->v2d.mask.xmax= sa->winx;
+ ar->v2d.mask.ymax= HEADERY;
+
+ ar->v2d.cur.xmin= sa->headbutofs;
+ ar->v2d.cur.xmax= sa->winx + sa->headbutofs;
+ ar->v2d.tot.xmin= 0.0f;
+ ar->v2d.tot.xmax= sa->headbutlen;
+
+ if (ar->alignment == RGN_ALIGN_BOTTOM) {
+ ar->v2d.align = V2D_ALIGN_NO_NEG_Y;
+ ar->v2d.tot.ymin= ar->v2d.cur.ymin= 0.0f; // what was area->headrct.ymin?
+ ar->v2d.tot.ymax= ar->v2d.cur.ymax= HEADERY;
+ }
+ else {
+ // XXX what were the extents of the old headers?
+ ar->v2d.align = V2D_ALIGN_NO_NEG_Y;
+ ar->v2d.tot.ymin= ar->v2d.cur.ymin= 0.0f; // what was area->headrct.ymin?
+ ar->v2d.tot.ymax= ar->v2d.cur.ymax= HEADERY;
+ }
+}
+
+/* 2.50 patch */
+static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb)
+{
+ ARegion *ar= MEM_callocN(sizeof(ARegion), "area region from do_versions");
+
+ BLI_addtail(lb, ar);
+ ar->winrct= sa->totrct;
+ ar->regiontype= RGN_TYPE_WINDOW;
+
+ if(sl) {
/* if active spacetype has view2d data, copy that over to main region */
- switch(sa->spacetype) {
+ switch(sl->spacetype) {
case SPACE_OOPS:
{
- SpaceOops *soops= sa->spacedata.first;
+ SpaceOops *soops= (SpaceOops *)sl;
memcpy(&ar->v2d, &soops->v2d, sizeof(View2D));
@@ -5107,7 +5107,7 @@
break;
case SPACE_TIME:
{
- SpaceTime *stime= sa->spacedata.first;
+ SpaceTime *stime= (SpaceTime *)sl;
memcpy(&ar->v2d, &stime->v2d, sizeof(View2D));
ar->v2d.scroll |= (V2D_SCROLL_BOTTOM|V2D_SCROLL_SCALE_BOTTOM);
@@ -5115,13 +5115,49 @@
ar->v2d.keepofs |= V2D_LOCKOFS_Y;
}
break;
- //case SPACE_XXX: // FIXME... add other ones
- // memcpy(&ar->v2d, &((SpaceXxx *)sa->spacedata.first)->v2d, sizeof(View2D));
- // break;
+ //case SPACE_XXX: // FIXME... add other ones
+ // memcpy(&ar->v2d, &((SpaceXxx *)sl)->v2d, sizeof(View2D));
+ // break;
}
+ /* further subdivision case, channels for ipo action nla... */
+ switch(sl->spacetype) {
+ case SPACE_IPO:
+ break;
+ case SPACE_ACTION:
+ break;
+ case SPACE_NLA:
+ break;
+ }
}
}
+static void do_versions_windowmanager_2_50(bScreen *screen)
+{
+ ScrArea *sa;
+ ARegion *ar;
+ SpaceLink *sl;
+
+ /* add regions */
+ for(sa= screen->areabase.first; sa; sa= sa->next) {
+
+ /* we keep headertype variable to convert old files only */
+ if(sa->headertype)
+ area_add_header_region(sa, &sa->regionbase);
+
+ area_add_window_regions(sa, sa->spacedata.first, &sa->regionbase);
+
+ /* pushed back spaces also need regions! */
+ if(sa->spacedata.first) {
+ sl= sa->spacedata.first;
+ for(sl= sl->next; sl; sl= sl->next) {
+ if(sa->headertype)
+ area_add_header_region(sa, &sl->regionbase);
+ area_add_window_regions(sa, sl, &sl->regionbase);
+ }
+ }
+ }
+}
+
static void do_versions(FileData *fd, Library *lib, Main *main)
{
/* WATCH IT!!!: pointers from libdata have not been converted */
@@ -8157,6 +8193,7 @@
do_versions_windowmanager_2_50(screen);
}
+
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */
Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2008-12-11 15:38:16 UTC (rev 17789)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2008-12-11 19:35:27 UTC (rev 17790)
@@ -51,6 +51,7 @@
void ED_spacetypes_init(void);
void ED_spacetypes_keymap(struct wmWindowManager *wm);
struct ARegionType *ED_regiontype_from_id(struct SpaceType *st, int regionid);
+void ED_newspace(struct ScrArea *sa, int type);
/* areas */
void ED_area_initialize(struct wmWindowManager *wm, struct wmWindow *win, struct ScrArea *sa);
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c 2008-12-11 15:38:16 UTC (rev 17789)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c 2008-12-11 19:35:27 UTC (rev 17790)
@@ -98,8 +98,6 @@
static struct ListBase iconfilelist = {0, 0};
-static int preview_render_size(int miplevel);
-
/* **************************************************** */
static void def_internal_icon(ImBuf *bbuf, int icon_id, int xofs, int yofs)
@@ -684,6 +682,7 @@
init_internal_icons();
}
+#if 0
static void icon_copy_rect(ImBuf *ibuf, unsigned int w, unsigned int h, unsigned int *rect)
{
struct ImBuf *ima;
@@ -734,6 +733,16 @@
IMB_freeImBuf(ima);
}
+/* Render size for preview images at level miplevel */
+static int preview_render_size(int miplevel)
+{
+ switch (miplevel) {
+ case 0: return 32;
+ case 1: return PREVIEW_DEFAULT_HEIGHT;
+ }
+ return 0;
+}
+
static void icon_create_mipmap(struct PreviewImage* prv_img, int miplevel)
{
unsigned int size = preview_render_size(miplevel);
@@ -794,6 +803,7 @@
}
}
}
+#endif
/* only called when icon has changed */
/* only call with valid pointer from UI_icon_draw */
@@ -881,16 +891,6 @@
glDrawPixels(w, h, GL_RGBA, GL_UNSIGNED_BYTE, rect);
}
-/* Render size for preview images at level miplevel */
-static int preview_render_size(int miplevel)
-{
- switch (miplevel) {
- case 0: return 32;
- case 1: return PREVIEW_DEFAULT_HEIGHT;
- }
- return 0;
-}
-
/* Drawing size for preview images at level miplevel */
static int preview_size(int miplevel)
{
@@ -977,7 +977,6 @@
void UI_icon_draw_aspect_blended(float x, float y, int icon_id, float aspect, int shade)
{
-
if(shade < 0) {
float r= (128+shade)/128.0f;
glPixelTransferf(GL_ALPHA_SCALE, r);
Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list