diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-02-20 02:03:18 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-02-20 02:03:26 +0300 |
commit | 67cbce0b02f097e764c2f582adc868bb7fa37ee5 (patch) | |
tree | 6a1925a6d8eb9085daf0624fcaa05f5ee1e6cd39 /source | |
parent | 03a4d3c33f824f966675dbb8fe3b4d645dc88f42 (diff) |
DRW: Fix facing reset when drawing with inverted camera
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/intern/draw_manager_exec.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c index 0ff3e2b1853..807f17a5635 100644 --- a/source/blender/draw/intern/draw_manager_exec.c +++ b/source/blender/draw/intern/draw_manager_exec.c @@ -1072,7 +1072,12 @@ static void draw_call_resource_bind(DRWCommandsState *state, const DRWResourceHa /* Front face is not a resource but it is inside the resource handle. */ bool neg_scale = DRW_handle_negative_scale_get(handle); if (neg_scale != state->neg_scale) { - glFrontFace((neg_scale != DST.view_active->is_inverted) ? GL_CW : GL_CCW); + if (DST.view_active->is_inverted) { + glFrontFace(neg_scale ? GL_CCW : GL_CW); + } + else { + glFrontFace(neg_scale ? GL_CW : GL_CCW); + } state->neg_scale = neg_scale; } @@ -1203,7 +1208,7 @@ static void draw_call_batching_finish(DRWShadingGroup *shgroup, DRWCommandsState /* Reset state */ if (state->neg_scale) { - glFrontFace(GL_CCW); + glFrontFace(DST.view_active->is_inverted ? GL_CW : GL_CCW); } if (state->obmats_loc != -1) { GPU_uniformbuffer_unbind(DST.vmempool->matrices_ubo[state->resource_chunk]); |