diff options
author | Ton Roosendaal <ton@blender.org> | 2011-01-17 21:16:10 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2011-01-17 21:16:10 +0300 |
commit | 08287102046993203a4dd891552efc4a4ced51a4 (patch) | |
tree | 11cf097ecf7bfde6ee777dd7d27454d5479edcf2 /source/blender/editors/sculpt_paint | |
parent | 4b7930dbbd8a11fb5db3e1cc81ca9ca5b0a69fc0 (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.c | 5 |
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; |