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
path: root/source
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-02-20 02:03:18 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-02-20 02:03:26 +0300
commit67cbce0b02f097e764c2f582adc868bb7fa37ee5 (patch)
tree6a1925a6d8eb9085daf0624fcaa05f5ee1e6cd39 /source
parent03a4d3c33f824f966675dbb8fe3b4d645dc88f42 (diff)
DRW: Fix facing reset when drawing with inverted camera
Diffstat (limited to 'source')
-rw-r--r--source/blender/draw/intern/draw_manager_exec.c9
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]);