Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/modes/edit_curve_mode.c
| Show First 20 Lines • Show All 161 Lines • ▼ Show 20 Lines | static void EDIT_CURVE_wire_shgrp_create(EDIT_CURVE_Shaders *sh_data, | ||||
| const View3D *v3d, | const View3D *v3d, | ||||
| const RegionView3D *rv3d, | const RegionView3D *rv3d, | ||||
| DRWPass *pass, | DRWPass *pass, | ||||
| DRWShadingGroup **wire_shgrp, | DRWShadingGroup **wire_shgrp, | ||||
| DRWShadingGroup **wire_normals_shgrp) | DRWShadingGroup **wire_normals_shgrp) | ||||
| { | { | ||||
| DRWShadingGroup *grp = DRW_shgroup_create(sh_data->wire_sh, pass); | DRWShadingGroup *grp = DRW_shgroup_create(sh_data->wire_sh, pass); | ||||
| DRW_shgroup_uniform_vec4(grp, "color", G_draw.block.colorWireEdit, 1); | DRW_shgroup_uniform_vec4(grp, "color", G_draw.block.colorWireEdit, 1); | ||||
| if (rv3d->rflag & RV3D_CLIPPING) { | if (RV3D_CLIPPING_ENABLED(v3d, rv3d)) { | ||||
| DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); | DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); | ||||
| } | } | ||||
| *wire_shgrp = grp; | *wire_shgrp = grp; | ||||
| grp = DRW_shgroup_create(sh_data->wire_normals_sh, pass); | grp = DRW_shgroup_create(sh_data->wire_normals_sh, pass); | ||||
| DRW_shgroup_uniform_vec4(grp, "color", G_draw.block.colorWireEdit, 1); | DRW_shgroup_uniform_vec4(grp, "color", G_draw.block.colorWireEdit, 1); | ||||
| DRW_shgroup_uniform_float_copy(grp, "normalSize", v3d->overlay.normals_length); | DRW_shgroup_uniform_float_copy(grp, "normalSize", v3d->overlay.normals_length); | ||||
| if (rv3d->rflag & RV3D_CLIPPING) { | if (RV3D_CLIPPING_ENABLED(v3d, rv3d)) { | ||||
| DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); | DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); | ||||
| } | } | ||||
| *wire_normals_shgrp = grp; | *wire_normals_shgrp = grp; | ||||
| } | } | ||||
| /* Here init all passes and shading groups | /* Here init all passes and shading groups | ||||
| * Assume that all Passes are NULL */ | * Assume that all Passes are NULL */ | ||||
| static void EDIT_CURVE_cache_init(void *vedata) | static void EDIT_CURVE_cache_init(void *vedata) | ||||
| Show All 36 Lines | stl->g_data->show_handles = (v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_CU_HANDLES) != 0; | ||||
| psl->overlay_edge_pass = DRW_pass_create("Curve Handle Overlay", | psl->overlay_edge_pass = DRW_pass_create("Curve Handle Overlay", | ||||
| DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_ALPHA); | DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_ALPHA); | ||||
| grp = DRW_shgroup_create(sh_data->overlay_edge_sh, psl->overlay_edge_pass); | grp = DRW_shgroup_create(sh_data->overlay_edge_sh, psl->overlay_edge_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_bool(grp, "showCurveHandles", &stl->g_data->show_handles, 1); | DRW_shgroup_uniform_bool(grp, "showCurveHandles", &stl->g_data->show_handles, 1); | ||||
| if (rv3d->rflag & RV3D_CLIPPING) { | if (RV3D_CLIPPING_ENABLED(v3d, rv3d)) { | ||||
| DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); | DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); | ||||
| } | } | ||||
| stl->g_data->overlay_edge_shgrp = grp; | stl->g_data->overlay_edge_shgrp = grp; | ||||
| psl->overlay_vert_pass = DRW_pass_create("Curve Vert Overlay", DRW_STATE_WRITE_COLOR); | psl->overlay_vert_pass = DRW_pass_create("Curve Vert Overlay", DRW_STATE_WRITE_COLOR); | ||||
| grp = DRW_shgroup_create(sh_data->overlay_vert_sh, psl->overlay_vert_pass); | grp = DRW_shgroup_create(sh_data->overlay_vert_sh, psl->overlay_vert_pass); | ||||
| DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); | DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); | ||||
| if (rv3d->rflag & RV3D_CLIPPING) { | if (RV3D_CLIPPING_ENABLED(v3d, rv3d)) { | ||||
| DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); | DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); | ||||
| } | } | ||||
| stl->g_data->overlay_vert_shgrp = grp; | stl->g_data->overlay_vert_shgrp = grp; | ||||
| } | } | ||||
| } | } | ||||
| /* Add geometry to shadingGroups. Execute for each objects */ | /* Add geometry to shadingGroups. Execute for each objects */ | ||||
| static void EDIT_CURVE_cache_populate(void *vedata, Object *ob) | static void EDIT_CURVE_cache_populate(void *vedata, Object *ob) | ||||
| ▲ Show 20 Lines • Show All 127 Lines • Show Last 20 Lines | |||||