diff options
Diffstat (limited to 'source/blender/draw/intern/draw_manager_data.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager_data.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c index 81842f5d2ec..7fe3bc0f071 100644 --- a/source/blender/draw/intern/draw_manager_data.c +++ b/source/blender/draw/intern/draw_manager_data.c @@ -1947,7 +1947,7 @@ DRWPass *DRW_pass_create(const char *name, DRWState state) { DRWPass *pass = BLI_memblock_alloc(DST.vmempool->passes); pass->state = state | DRW_STATE_PROGRAM_POINT_SIZE; - if (((G.debug_value > 20) && (G.debug_value < 30)) || (G.debug & G_DEBUG)) { + if (G.debug & G_DEBUG_GPU) { BLI_strncpy(pass->name, name, MAX_PASS_NAME); } @@ -1962,6 +1962,8 @@ DRWPass *DRW_pass_create(const char *name, DRWState state) return pass; } +/* Create an instance of the original pass that will execute the same drawcalls but with its own + * DRWState. */ DRWPass *DRW_pass_create_instance(const char *name, DRWPass *original, DRWState state) { DRWPass *pass = DRW_pass_create(name, state); @@ -1980,6 +1982,10 @@ void DRW_pass_link(DRWPass *first, DRWPass *second) bool DRW_pass_is_empty(DRWPass *pass) { + if (pass->original) { + return DRW_pass_is_empty(pass->original); + } + LISTBASE_FOREACH (DRWShadingGroup *, shgroup, &pass->shgroups) { if (!DRW_shgroup_is_empty(shgroup)) { return false; @@ -1988,21 +1994,6 @@ bool DRW_pass_is_empty(DRWPass *pass) return true; } -void DRW_pass_state_set(DRWPass *pass, DRWState state) -{ - pass->state = state | DRW_STATE_PROGRAM_POINT_SIZE; -} - -void DRW_pass_state_add(DRWPass *pass, DRWState state) -{ - pass->state |= state; -} - -void DRW_pass_state_remove(DRWPass *pass, DRWState state) -{ - pass->state &= ~state; -} - void DRW_pass_foreach_shgroup(DRWPass *pass, void (*callback)(void *userData, DRWShadingGroup *shgrp), void *userData) |