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:
Diffstat (limited to 'source/blender/editors/space_image/image_draw.c')
-rw-r--r--source/blender/editors/space_image/image_draw.c85
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);
}