diff options
Diffstat (limited to 'source/blender/editors/space_image/image_draw.c')
-rw-r--r-- | source/blender/editors/space_image/image_draw.c | 85 |
1 files changed, 41 insertions, 44 deletions
diff --git a/source/blender/editors/space_image/image_draw.c b/source/blender/editors/space_image/image_draw.c index cb942472b9e..309c0061130 100644 --- a/source/blender/editors/space_image/image_draw.c +++ b/source/blender/editors/space_image/image_draw.c @@ -31,15 +31,14 @@ #include "MEM_guardedalloc.h" -#include "DNA_brush_types.h" #include "DNA_camera_types.h" -#include "DNA_image_types.h" #include "DNA_object_types.h" #include "DNA_space_types.h" #include "DNA_scene_types.h" #include "DNA_screen_types.h" #include "PIL_time.h" +#include "BLI_threads.h" #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" @@ -56,13 +55,13 @@ #include "ED_gpencil.h" #include "ED_image.h" -#include "ED_screen.h" #include "UI_interface.h" #include "UI_resources.h" #include "UI_view2d.h" -#include "WM_api.h" + +#include "RE_pipeline.h" #include "image_intern.h" @@ -77,50 +76,47 @@ static void image_verify_buffer_float(SpaceImage *sima, Image *ima, ImBuf *ibuf, 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) - ibuf->profile = IB_PROFILE_LINEAR_RGB; - } else { - ibuf->profile = IB_PROFILE_NONE; - } - IMB_rect_from_float(ibuf); + if(ibuf->rect_float && ibuf->rect==NULL) { + if(color_manage) { + if(ima && ima->source == IMA_SRC_VIEWER) + ibuf->profile = IB_PROFILE_LINEAR_RGB; } + else + ibuf->profile = IB_PROFILE_NONE; + + IMB_rect_from_float(ibuf); } } -static void draw_render_info(Image *ima, ARegion *ar) +static void draw_render_info(Scene *scene, Image *ima, ARegion *ar) { + RenderResult *rr; rcti rect; float colf[3]; - int showspare= 0; // XXX BIF_show_render_spare(); - if(ima->render_text==NULL) - return; - - rect= ar->winrct; - rect.xmin= 0; - rect.ymin= ar->winrct.ymax - ar->winrct.ymin - HEADER_HEIGHT; - rect.xmax= ar->winrct.xmax - ar->winrct.xmin; - rect.ymax= ar->winrct.ymax - ar->winrct.ymin; - - /* clear header rect */ - UI_GetThemeColor3fv(TH_BACK, colf); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); - glColor4f(colf[0]+0.1f, colf[1]+0.1f, colf[2]+0.1f, 0.5f); - glRecti(rect.xmin, rect.ymin, rect.xmax, rect.ymax+1); - glDisable(GL_BLEND); - - UI_ThemeColor(TH_TEXT_HI); + rr= BKE_image_acquire_renderresult(scene, ima); - if(showspare) { - UI_DrawString(12, rect.ymin + 5, "(Previous)"); - UI_DrawString(72, rect.ymin + 5, ima->render_text); + if(rr && rr->text) { + rect= ar->winrct; + rect.xmin= 0; + rect.ymin= ar->winrct.ymax - ar->winrct.ymin - HEADER_HEIGHT; + rect.xmax= ar->winrct.xmax - ar->winrct.xmin; + rect.ymax= ar->winrct.ymax - ar->winrct.ymin; + + /* clear header rect */ + UI_GetThemeColor3fv(TH_BACK, colf); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); + glColor4f(colf[0]+0.1f, colf[1]+0.1f, colf[2]+0.1f, 0.5f); + glRecti(rect.xmin, rect.ymin, rect.xmax, rect.ymax+1); + glDisable(GL_BLEND); + + UI_ThemeColor(TH_TEXT_HI); + + UI_DrawString(12, rect.ymin + 5, rr->text); } - else - UI_DrawString(12, rect.ymin + 5, ima->render_text); + + BKE_image_release_renderresult(scene, ima); } void draw_image_info(ARegion *ar, int channels, int x, int y, char *cp, float *fp, int *zp, float *zpf) @@ -500,7 +496,7 @@ void draw_image_grease_pencil(bContext *C, short onlyv2d) /* draw grease-pencil ('screen' strokes) */ //if (sima->flag & SI_DISPGP) - draw_gpencil_2dview(C, 0); + draw_gpencil_view2d(C, 0); } } @@ -633,8 +629,8 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene) /* retrieve the image and information about it */ ima= ED_space_image(sima); - ibuf= ED_space_image_acquire_buffer(sima, &lock); ED_space_image_zoom(sima, ar, &zoomx, &zoomy); + ibuf= ED_space_image_acquire_buffer(sima, &lock); show_viewer= (ima && ima->source == IMA_SRC_VIEWER); show_render= (show_viewer && ima->type == IMA_TYPE_R_RESULT); @@ -652,10 +648,7 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene) /* paint helpers */ draw_image_paint_helpers(sima, ar, scene, zoomx, zoomy); - /* render info */ - if(ibuf && ima && show_render) - draw_render_info(ima, ar); - + /* XXX integrate this code */ #if 0 if(ibuf) { @@ -674,5 +667,9 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene) #endif ED_space_image_release_buffer(sima, lock); + + /* render info */ + if(ima && show_render) + draw_render_info(scene, ima, ar); } |