diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-06-25 16:13:21 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-06-25 16:13:21 +0400 |
commit | 32bf9567d3800630cdfc0872d07f401f7927ae1f (patch) | |
tree | 4e11ca3d42992c5da77a34ba413c418aef62cb16 /source/blender/editors/space_view3d/view3d_draw.c | |
parent | 3271850a2f59cdcae4bb224522e67b986b8cb9fd (diff) |
Fix #31920: switching from cycles to blender internal with 3d view in rendered
draw mode did not draw the 3d view properly.
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_draw.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 709de274b8b..2d4fbb90ae1 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2795,6 +2795,14 @@ static void draw_viewport_fps(Scene *scene, ARegion *ar) static void view3d_main_area_draw_objects(const bContext *C, ARegion *ar, const char **grid_unit); +static int view3d_main_area_do_render_draw(const bContext *C) +{ + Scene *scene = CTX_data_scene(C); + RenderEngineType *type = RE_engines_find(scene->r.engine); + + return (type && type->view_update && type->view_draw); +} + static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar, int draw_border) { Scene *scene = CTX_data_scene(C); @@ -3131,7 +3139,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) int draw_border = (rv3d->persp == RV3D_CAMOB && (scene->r.mode & R_BORDER)); /* draw viewport using opengl */ - if (v3d->drawtype != OB_RENDER || draw_border) { + if (v3d->drawtype != OB_RENDER || !view3d_main_area_do_render_draw(C) || draw_border) { view3d_main_area_draw_objects(C, ar, &grid_unit); ED_region_pixelspace(ar); } |