diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-28 15:20:58 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-30 13:25:20 +0300 |
commit | ec6da3d72e61240bfec1c09f1ef75e41873bf6a0 (patch) | |
tree | ec083fda5daf51cbdbaf108b125c7f80b932d031 /source/blender/draw/intern/draw_manager_exec.c | |
parent | 201952aed23b0e4fc93b93f2145621ffd2d86b0d (diff) |
DRW: Add new per drawcall option to bypass culling.
Diffstat (limited to 'source/blender/draw/intern/draw_manager_exec.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager_exec.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c index 8f5dce87c2b..8b0bbb3ad15 100644 --- a/source/blender/draw/intern/draw_manager_exec.c +++ b/source/blender/draw/intern/draw_manager_exec.c @@ -747,7 +747,8 @@ static void draw_matrices_model_prepare(DRWCallState *st) } /* No need to go further the call will not be used. */ - if (st->flag & DRW_CALL_CULLED) + if ((st->flag & DRW_CALL_CULLED) != 0 && + (st->flag & DRW_CALL_BYPASS_CULLING) == 0) return; /* Order matters */ @@ -1119,8 +1120,11 @@ static void draw_shgroup(DRWShadingGroup *shgroup, DRWState pass_state) draw_visibility_eval(call->state); draw_matrices_model_prepare(call->state); - if ((call->state->flag & DRW_CALL_CULLED) != 0) + if ((call->state->flag & DRW_CALL_CULLED) != 0 && + (call->state->flag & DRW_CALL_BYPASS_CULLING) == 0) + { continue; + } /* XXX small exception/optimisation for outline rendering. */ if (shgroup->callid != -1) { |