From 11920f7880062c1efb68a4e141162b7ec060ca29 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 25 Mar 2011 17:11:32 +0000 Subject: Bugfix #26195 When rendering, during processing scene data, drawing in 3d window is now locked. Can get extended to more areas in UI easily. At least this solves all crashes with conflicting memory access in render && 3d drawing. Deleting objects via operators or delete modifiers isn't locked yet. Also fixed: crash on quitting a renderwindow when it was rendering. --- source/blender/blenkernel/BKE_screen.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (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 0a7d9780a6b..56b0cd63e01 100644 --- a/source/blender/blenkernel/BKE_screen.h +++ b/source/blender/blenkernel/BKE_screen.h @@ -112,7 +112,7 @@ typedef struct SpaceType { typedef struct ARegionType { struct ARegionType *next, *prev; - int regionid; /* unique identifier within this space */ + int regionid; /* unique identifier within this space, defines RGN_TYPE_xxxx */ /* add handlers, stuff you only do once or on area/region type/size changes */ void (*init)(struct wmWindowManager *, struct ARegion *); @@ -152,6 +152,8 @@ typedef struct ARegionType { int prefsizex, prefsizey; /* default keymaps to add */ int keymapflag; + /* return without drawing. lock is set by region definition, and copied to do_lock by render. can become flag */ + short do_lock, lock; } ARegionType; /* panel types */ @@ -231,6 +233,7 @@ void BKE_spacetypes_free(void); /* only for quitting blender */ /* spacedata */ void BKE_spacedata_freelist(ListBase *lb); void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2); +void BKE_spacedata_draw_locks(int set); /* area/regions */ struct ARegion *BKE_area_region_copy(struct SpaceType *st, struct ARegion *ar); -- cgit v1.2.3