From bc63213844e723b0c552da446fb7fa9f9e7ea5f6 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 19 Jan 2009 16:54:41 +0000 Subject: 2.5 View3D has been split now in a local part (RegionView3D) and a per-area part (old View3D). Currently local is: - view transform - camera zoom/offset - gpencil (todo) - custom clipping planes Rest is in Area still, like active camera, draw type, layers, localview, custom centers, around-settings, transform widget, gridlines, and so on (mostly stuff as available in header). To see it work; also added new feature for region split, press SHIFT+ALT+CTRL+S for four-split. The idea is to make a preset 4-split, configured to stick to top/right/front views for three views. Another cool idea to explore is to then box-clip all drawing based on these 3 views. Note about the code: - currently view3d still stores some depricated settings, to convert from older files. Not all settings are copied over though, like custom clip planes or the 'lock view to object'. - since some view3d ops are now on area level, the operators for it should keep track of that. Bugfix in transform: quat initialize in operator-invoke missed one zero. Als brought back GE to compile for missing Ipos and channels. --- source/blender/blenkernel/BKE_screen.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender/blenkernel/BKE_screen.h') diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h index 7604dc8170b..a2e9329a18a 100644 --- a/source/blender/blenkernel/BKE_screen.h +++ b/source/blender/blenkernel/BKE_screen.h @@ -105,6 +105,10 @@ typedef struct ARegionType { void (*free)(struct ARegion *); + /* split region, copy data optionally */ + void *(*duplicate)(void *); + + /* register operator types on startup */ void (*operatortypes)(void); /* add own items to keymap */ @@ -127,6 +131,7 @@ typedef struct ARegionType { /* spacetypes */ struct SpaceType *BKE_spacetype_from_id(int spaceid); +struct ARegionType *BKE_regiontype_from_id(struct SpaceType *st, int regionid); const struct ListBase *BKE_spacetypes_list(void); void BKE_spacetype_register(struct SpaceType *st); void BKE_spacetypes_free(void); /* only for quitting blender */ @@ -136,8 +141,8 @@ void BKE_spacedata_freelist(ListBase *lb); void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2); /* area/regions */ -struct ARegion *BKE_area_region_copy(struct ARegion *ar); -void BKE_area_region_free(struct ARegion *ar); +struct ARegion *BKE_area_region_copy(struct SpaceType *st, struct ARegion *ar); +void BKE_area_region_free(struct SpaceType *st, struct ARegion *ar); void BKE_screen_area_free(struct ScrArea *sa); -- cgit v1.2.3