diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-26 02:42:36 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-27 13:58:14 +0300 |
commit | f3fc872171203e51109b6500bbaa969933997209 (patch) | |
tree | 158a8fe5565428686f0629ef2d77853d1edcea2a /source/blender/draw/modes/paint_vertex_mode.c | |
parent | 01f5ef82afddcdb078644ce6b63ce370784b2a84 (diff) |
Cleanup: Paint Overlays: Remove DRW_STATE_OFFSET_*
Diffstat (limited to 'source/blender/draw/modes/paint_vertex_mode.c')
-rw-r--r-- | source/blender/draw/modes/paint_vertex_mode.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/source/blender/draw/modes/paint_vertex_mode.c b/source/blender/draw/modes/paint_vertex_mode.c index 815cf09487e..1deee01a779 100644 --- a/source/blender/draw/modes/paint_vertex_mode.c +++ b/source/blender/draw/modes/paint_vertex_mode.c @@ -100,12 +100,14 @@ typedef struct PAINT_VERTEX_PrivateData { } by_mode[MODE_LEN]; DRWShadingGroup *face_select_shgrp; DRWShadingGroup *vert_select_shgrp; + DRWView *view_wires; } PAINT_VERTEX_PrivateData; /* Transient data */ /* *********** FUNCTIONS *********** */ -static void PAINT_VERTEX_engine_init(void *UNUSED(vedata)) +static void PAINT_VERTEX_engine_init(void *vedata) { + PAINT_VERTEX_StorageList *stl = ((PAINT_VERTEX_Data *)vedata)->stl; const DRWContextState *draw_ctx = DRW_context_state_get(); PAINT_VERTEX_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg]; @@ -175,6 +177,13 @@ static void PAINT_VERTEX_engine_init(void *UNUSED(vedata)) }); } } + + if (!stl->g_data) { + /* Alloc transient pointers */ + stl->g_data = MEM_mallocN(sizeof(*stl->g_data), __func__); + } + + stl->g_data->view_wires = DRW_view_create_with_zoffset(draw_ctx->rv3d, 1.0f); } static void PAINT_VERTEX_cache_init(void *vedata) @@ -186,11 +195,6 @@ static void PAINT_VERTEX_cache_init(void *vedata) const RegionView3D *rv3d = draw_ctx->rv3d; PAINT_VERTEX_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg]; - if (!stl->g_data) { - /* Alloc transient pointers */ - stl->g_data = MEM_mallocN(sizeof(*stl->g_data), __func__); - } - /* Vertex color pass */ { DRWPass *pass = DRW_pass_create( @@ -223,9 +227,8 @@ static void PAINT_VERTEX_cache_init(void *vedata) } { - DRWPass *pass = DRW_pass_create("Wire Pass", - DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | - DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_OFFSET_NEGATIVE); + DRWPass *pass = DRW_pass_create( + "Wire Pass", DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS_EQUAL); for (int i = 0; i < MODE_LEN; i++) { DRWShadingGroup *shgrp = DRW_shgroup_create(sh_data->by_mode[i].wire_overlay, pass); DRW_shgroup_uniform_block(shgrp, "globalsBlock", G_draw.block_ubo); @@ -240,7 +243,7 @@ static void PAINT_VERTEX_cache_init(void *vedata) { DRWPass *pass = DRW_pass_create("Wire Mask Pass", DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | - DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_OFFSET_NEGATIVE); + DRW_STATE_DEPTH_LESS_EQUAL); for (int i = 0; i < MODE_LEN; i++) { DRWShadingGroup *shgrp = DRW_shgroup_create(sh_data->by_mode[i].wire_select_overlay, pass); DRW_shgroup_uniform_block(shgrp, "globalsBlock", G_draw.block_ubo); @@ -269,7 +272,7 @@ static void PAINT_VERTEX_cache_init(void *vedata) { DRWPass *pass = DRW_pass_create("Vert Mask Pass", DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | - DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_OFFSET_NEGATIVE); + DRW_STATE_DEPTH_LESS_EQUAL); DRWShadingGroup *shgrp = DRW_shgroup_create(sh_data->vert_select_overlay, pass); DRW_shgroup_uniform_block(shgrp, "globalsBlock", G_draw.block_ubo); if (rv3d->rflag & RV3D_CLIPPING) { @@ -334,13 +337,18 @@ static void PAINT_VERTEX_cache_populate(void *vedata, Object *ob) static void PAINT_VERTEX_draw_scene(void *vedata) { PAINT_VERTEX_PassList *psl = ((PAINT_VERTEX_Data *)vedata)->psl; + PAINT_VERTEX_StorageList *stl = ((PAINT_VERTEX_Data *)vedata)->stl; for (int i = 0; i < MODE_LEN; i++) { DRW_draw_pass(psl->by_mode[i].color_faces); } + DRW_draw_pass(psl->face_select_overlay); + + DRW_view_set_active(stl->g_data->view_wires); DRW_draw_pass(psl->wire_overlay); DRW_draw_pass(psl->wire_select_overlay); DRW_draw_pass(psl->vert_select_overlay); - DRW_draw_pass(psl->face_select_overlay); + + DRW_view_set_active(NULL); } static void PAINT_VERTEX_engine_free(void) |