Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2011-01-17 21:16:10 +0300
committerTon Roosendaal <ton@blender.org>2011-01-17 21:16:10 +0300
commit08287102046993203a4dd891552efc4a4ced51a4 (patch)
tree11cf097ecf7bfde6ee777dd7d27454d5479edcf2 /source/blender/editors/sculpt_paint
parent4b7930dbbd8a11fb5db3e1cc81ca9ca5b0a69fc0 (diff)
Bugfix #25657
Three code fixes for 1 report. User experienced crashes while painting on float buffer + having preview renders on. - Texture Nodes: Image was re-allocated without using proper thread lock - Paint code: old convention to free the byte rect from a float image as signal to re-create now is a proper flag. This keeps image memory unchanged. Nice for render. - Imbuf: call to make a byte rect from float was freeing mipmaps unnecessary.
Diffstat (limited to 'source/blender/editors/sculpt_paint')
-rw-r--r--source/blender/editors/sculpt_paint/paint_image.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c
index 6f4f996d004..f4ab598d3a9 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -432,7 +432,8 @@ static void image_undo_restore(bContext *C, ListBase *lb)
GPU_free_image(ima); /* force OpenGL reload */
if(ibuf->rect_float)
- imb_freerectImBuf(ibuf); /* force recreate of char rect */
+ ibuf->userflags |= IB_RECT_INVALID; /* force recreate of char rect */
+
}
IMB_freeImBuf(tmpibuf);
@@ -4022,7 +4023,7 @@ static void imapaint_image_update(SpaceImage *sima, Image *image, ImBuf *ibuf, s
{
if(ibuf->rect_float)
/* TODO - should just update a portion from imapaintpartial! */
- imb_freerectImBuf(ibuf); /* force recreate of char rect */
+ ibuf->userflags |= IB_RECT_INVALID; /* force recreate of char rect */
if(ibuf->mipmap[0])
ibuf->userflags |= IB_MIPMAP_INVALID;