diff options
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image.c | 5 | ||||
-rw-r--r-- | source/blender/editors/space_image/image_draw.c | 2 |
2 files changed, 4 insertions, 3 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; diff --git a/source/blender/editors/space_image/image_draw.c b/source/blender/editors/space_image/image_draw.c index 22ca549637e..5fd86e2ed9a 100644 --- a/source/blender/editors/space_image/image_draw.c +++ b/source/blender/editors/space_image/image_draw.c @@ -83,7 +83,7 @@ static void image_verify_buffer_float(Image *ima, ImBuf *ibuf, int color_manage) NOTE: if float buffer changes, we have to manually remove the rect */ - if(ibuf->rect_float && ibuf->rect==NULL) { + if(ibuf->rect_float && (ibuf->rect==NULL || (ibuf->userflags & IB_RECT_INVALID)) ) { if(color_manage) { if(ima && ima->source == IMA_SRC_VIEWER) ibuf->profile = IB_PROFILE_LINEAR_RGB; |