[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27799] trunk/blender/source/blender: Attempt to fix #21796: render crash on windows after slots commit.
Brecht Van Lommel
brecht at blender.org
Sun Mar 28 15:45:20 CEST 2010
Revision: 27799
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27799
Author: blendix
Date: 2010-03-28 15:45:19 +0200 (Sun, 28 Mar 2010)
Log Message:
-----------
Attempt to fix #21796: render crash on windows after slots commit.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/image.c
trunk/blender/source/blender/editors/render/render_internal.c
trunk/blender/source/blender/editors/space_image/image_draw.c
Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c 2010-03-28 10:52:24 UTC (rev 27798)
+++ trunk/blender/source/blender/blenkernel/intern/image.c 2010-03-28 13:45:19 UTC (rev 27799)
@@ -1948,8 +1948,11 @@
ibuf->x= rres.rectx;
ibuf->y= rres.recty;
- if(ibuf->rect_float!=rectf || rect) /* ensure correct redraw */
+ if(ibuf->rect_float!=rectf || rect) { /* ensure correct redraw */
+ BLI_lock_thread(LOCK_CUSTOM1);
imb_freerectImBuf(ibuf);
+ BLI_unlock_thread(LOCK_CUSTOM1);
+ }
if(rect)
ibuf->rect= rect;
Modified: trunk/blender/source/blender/editors/render/render_internal.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_internal.c 2010-03-28 10:52:24 UTC (rev 27798)
+++ trunk/blender/source/blender/editors/render/render_internal.c 2010-03-28 13:45:19 UTC (rev 27799)
@@ -30,30 +30,24 @@
#include "MEM_guardedalloc.h"
-#include "BLI_math.h"
#include "BLI_blenlib.h"
-#include "BLI_editVert.h"
-#include "BLI_dlrbTree.h"
+#include "BLI_math.h"
+#include "BLI_threads.h"
#include "DNA_scene_types.h"
#include "BKE_blender.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
-#include "BKE_customdata.h"
#include "BKE_global.h"
#include "BKE_image.h"
-#include "BKE_idprop.h"
#include "BKE_library.h"
#include "BKE_main.h"
-#include "BKE_mesh.h"
#include "BKE_multires.h"
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_screen.h"
#include "BKE_utildefines.h"
-#include "BKE_sound.h"
-#include "BKE_writeavi.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -68,7 +62,6 @@
#include "RNA_access.h"
#include "RNA_define.h"
-
#include "wm_window.h"
#include "render_intern.h"
@@ -136,8 +129,12 @@
}
if(rectf==NULL) return;
- if(ibuf->rect==NULL)
- imb_addrectImBuf(ibuf);
+ if(ibuf->rect==NULL) {
+ BLI_lock_thread(LOCK_CUSTOM1);
+ if(ibuf->rect==NULL)
+ imb_addrectImBuf(ibuf);
+ BLI_unlock_thread(LOCK_CUSTOM1);
+ }
rectf+= 4*(rr->rectx*ymin + xmin);
rectc= (char *)(ibuf->rect + ibuf->x*rymin + rxmin);
Modified: trunk/blender/source/blender/editors/space_image/image_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_draw.c 2010-03-28 10:52:24 UTC (rev 27798)
+++ trunk/blender/source/blender/editors/space_image/image_draw.c 2010-03-28 13:45:19 UTC (rev 27799)
@@ -38,6 +38,7 @@
#include "DNA_screen_types.h"
#include "PIL_time.h"
+#include "BLI_threads.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -75,16 +76,19 @@
NOTE: if float buffer changes, we have to manually remove the rect
*/
- if(ibuf->rect_float) {
- if(ibuf->rect==NULL) {
- if (color_manage) {
- if (ima && ima->source == IMA_SRC_VIEWER)
+ if(ibuf->rect_float && ibuf->rect==NULL) {
+ BLI_lock_thread(LOCK_CUSTOM1);
+ if(ibuf->rect_float && ibuf->rect==NULL) {
+ if(color_manage) {
+ if(ima && ima->source == IMA_SRC_VIEWER)
ibuf->profile = IB_PROFILE_LINEAR_RGB;
- } else {
+ }
+ else
ibuf->profile = IB_PROFILE_NONE;
- }
+
IMB_rect_from_float(ibuf);
}
+ BLI_unlock_thread(LOCK_CUSTOM1);
}
}
More information about the Bf-blender-cvs
mailing list