Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/modes/edit_mesh_mode.c
| Show First 20 Lines • Show All 367 Lines • ▼ Show 20 Lines | static DRWPass *edit_mesh_create_overlay_pass(float *face_alpha, | ||||
| DRW_shgroup_state_enable(grp, DRW_STATE_OFFSET_NEGATIVE); | DRW_shgroup_state_enable(grp, DRW_STATE_OFFSET_NEGATIVE); | ||||
| /* Edges */ | /* Edges */ | ||||
| grp = *r_edge_shgrp = DRW_shgroup_create(edge_sh, pass); | grp = *r_edge_shgrp = DRW_shgroup_create(edge_sh, pass); | ||||
| DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); | DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); | ||||
| DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1); | DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1); | ||||
| DRW_shgroup_uniform_vec2(grp, "viewportSizeInv", DRW_viewport_invert_size_get(), 1); | DRW_shgroup_uniform_vec2(grp, "viewportSizeInv", DRW_viewport_invert_size_get(), 1); | ||||
| DRW_shgroup_uniform_ivec4(grp, "dataMask", data_mask, 1); | DRW_shgroup_uniform_ivec4(grp, "dataMask", data_mask, 1); | ||||
| DRW_shgroup_uniform_bool_copy(grp, "doEdges", do_edges); | |||||
| DRW_shgroup_uniform_float_copy(grp, "ofs", depth_ofs); | DRW_shgroup_uniform_float_copy(grp, "ofs", depth_ofs); | ||||
| DRW_shgroup_uniform_bool_copy(grp, "selectEdges", select_edge); | DRW_shgroup_uniform_bool_copy(grp, "selectEdges", do_edges || select_edge); | ||||
| DRW_shgroup_state_enable(grp, DRW_STATE_OFFSET_NEGATIVE); | DRW_shgroup_state_enable(grp, DRW_STATE_OFFSET_NEGATIVE); | ||||
| /* To match blender loop structure. */ | /* To match blender loop structure. */ | ||||
| DRW_shgroup_state_enable(grp, DRW_STATE_FIRST_VERTEX_CONVENTION); | DRW_shgroup_state_enable(grp, DRW_STATE_FIRST_VERTEX_CONVENTION); | ||||
| if (rv3d->rflag & RV3D_CLIPPING) { | if (rv3d->rflag & RV3D_CLIPPING) { | ||||
| DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); | DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | if (BKE_object_is_in_editmode(draw_ctx->object_edit)) { | ||||
| if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_SHARP) == 0) { | if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_SHARP) == 0) { | ||||
| stl->g_data->data_mask[1] &= ~VFLAG_EDGE_SHARP; | stl->g_data->data_mask[1] &= ~VFLAG_EDGE_SHARP; | ||||
| } | } | ||||
| if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_FREESTYLE_EDGE) == 0) { | if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_FREESTYLE_EDGE) == 0) { | ||||
| stl->g_data->data_mask[1] &= ~VFLAG_EDGE_FREESTYLE; | stl->g_data->data_mask[1] &= ~VFLAG_EDGE_FREESTYLE; | ||||
| } | } | ||||
| if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_EDGES) == 0) { | if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_EDGES) == 0) { | ||||
| if ((tsettings->selectmode & SCE_SELECT_EDGE) == 0) { | if ((tsettings->selectmode & SCE_SELECT_EDGE) == 0) { | ||||
| stl->g_data->data_mask[1] &= ~(VFLAG_EDGE_ACTIVE & VFLAG_EDGE_SELECTED); | |||||
| stl->g_data->do_edges = false; | stl->g_data->do_edges = false; | ||||
| } | } | ||||
| } | } | ||||
| if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_CREASES) == 0) { | if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_CREASES) == 0) { | ||||
| stl->g_data->data_mask[2] = 0x0; | stl->g_data->data_mask[2] = 0x0; | ||||
| } | } | ||||
| if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_BWEIGHTS) == 0) { | if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_BWEIGHTS) == 0) { | ||||
| stl->g_data->data_mask[3] = 0x0; | stl->g_data->data_mask[3] = 0x0; | ||||
| ▲ Show 20 Lines • Show All 389 Lines • Show Last 20 Lines | |||||