diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-05-30 20:32:16 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-05-30 20:34:12 +0300 |
commit | 0b6603d9b61007080f66633c7dafe26b33e2ceb7 (patch) | |
tree | ad3adf58062a4d37a3bc99c1be97f725ce25fa5b /source/blender/gpu/intern | |
parent | c86437cc83c595f68cde0bc05a9dac202645bbe8 (diff) |
Fix selection randomly failing with border render.
We no longer user scissor for 3D viewport drawing, and some selection
code assumed it still. This also cleans up unnecessary scissor test
switching, we only have it temporarily enabled now.
Diffstat (limited to 'source/blender/gpu/intern')
-rw-r--r-- | source/blender/gpu/intern/gpu_select_pick.c | 2 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_select_sample_query.c | 7 |
2 files changed, 4 insertions, 5 deletions
diff --git a/source/blender/gpu/intern/gpu_select_pick.c b/source/blender/gpu/intern/gpu_select_pick.c index 4aef80934ad..953f6daf805 100644 --- a/source/blender/gpu/intern/gpu_select_pick.c +++ b/source/blender/gpu/intern/gpu_select_pick.c @@ -337,7 +337,7 @@ void gpu_select_pick_begin( } float viewport[4]; - glGetFloatv(GL_SCISSOR_BOX, viewport); + glGetFloatv(GL_VIEWPORT, viewport); ps->src.clip_rect = *input; ps->src.rect_len = rect_len; diff --git a/source/blender/gpu/intern/gpu_select_sample_query.c b/source/blender/gpu/intern/gpu_select_sample_query.c index 12390e5cdb0..919ccbea2e9 100644 --- a/source/blender/gpu/intern/gpu_select_sample_query.c +++ b/source/blender/gpu/intern/gpu_select_sample_query.c @@ -103,10 +103,10 @@ void gpu_select_query_begin( glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); /* In order to save some fill rate we minimize the viewport using rect. - * We need to get the region of the scissor so that our geometry doesn't + * We need to get the region of the viewport so that our geometry doesn't * get rejected before the depth test. Should probably cull rect against - * scissor for viewport but this is a rare case I think */ - glGetFloatv(GL_SCISSOR_BOX, viewport); + * the viewport but this is a rare case I think */ + glGetFloatv(GL_VIEWPORT, viewport); glViewport(viewport[0], viewport[1], BLI_rcti_size_x(input), BLI_rcti_size_y(input)); /* occlusion queries operates on fragments that pass tests and since we are interested on all @@ -116,7 +116,6 @@ void gpu_select_query_begin( glDepthMask(GL_FALSE); } else if (mode == GPU_SELECT_NEAREST_FIRST_PASS) { - glDisable(GL_SCISSOR_TEST); /* allows fast clear */ glClear(GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); glDepthMask(GL_TRUE); |