diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-09-06 11:49:28 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-09-06 21:38:58 +0300 |
commit | b0b24b77ffc3e34b3aef24ff658826a8aeca7782 (patch) | |
tree | 70b9e1591291df069d7c98c97bd3532c9f3bd763 /source/blender/windowmanager/intern/wm_draw.c | |
parent | 7cec119c576b6754f6d824789877393194e3a2eb (diff) |
Fix T68796: stereo side-by-side and pageflip not drawing correctly
Diffstat (limited to 'source/blender/windowmanager/intern/wm_draw.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_draw.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index 3bcb955c2b2..0266a30dea6 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -436,6 +436,17 @@ static void wm_draw_region_blit(ARegion *ar, int view) return; } + if (view == -1) { + /* Non-stereo drawing. */ + view = 0; + } + else if (view > 0) { + if (ar->draw_buffer->viewport[view] == NULL && ar->draw_buffer->offscreen[view] == NULL) { + /* Region does not need stereo or failed to allocate stereo buffers. */ + view = 0; + } + } + if (ar->draw_buffer->viewport[view]) { GPU_viewport_draw_to_screen(ar->draw_buffer->viewport[view], &ar->winrct); } @@ -688,7 +699,7 @@ static void wm_draw_window_onscreen(bContext *C, wmWindow *win, int view) } else { /* Blit from offscreen buffer. */ - wm_draw_region_blit(ar, 0); + wm_draw_region_blit(ar, view); } } } |