From 577d3498b4d4d3b747e184550378bc7d77e72b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Sun, 26 May 2019 20:36:24 +0200 Subject: Cleanup: DRW: Move WorldClipPlanes to builtin uniform --- source/blender/draw/engines/basic/basic_engine.c | 5 +-- .../draw/engines/workbench/workbench_forward.c | 2 +- .../draw/engines/workbench/workbench_materials.c | 1 - source/blender/draw/intern/draw_common.c | 51 ++++++++++------------ source/blender/draw/intern/draw_common.h | 3 -- source/blender/draw/intern/draw_manager.c | 2 +- source/blender/draw/intern/draw_manager_data.c | 3 ++ source/blender/draw/modes/edit_curve_mode.c | 8 ++-- source/blender/draw/modes/edit_lattice_mode.c | 4 +- source/blender/draw/modes/edit_mesh_mode.c | 28 ++++++------ source/blender/draw/modes/object_mode.c | 16 +++---- source/blender/draw/modes/overlay_mode.c | 4 +- source/blender/draw/modes/paint_texture_mode.c | 6 +-- source/blender/draw/modes/paint_vertex_mode.c | 12 ++--- 14 files changed, 68 insertions(+), 77 deletions(-) (limited to 'source/blender/draw') diff --git a/source/blender/draw/engines/basic/basic_engine.c b/source/blender/draw/engines/basic/basic_engine.c index d6902dddc61..a274eda84fe 100644 --- a/source/blender/draw/engines/basic/basic_engine.c +++ b/source/blender/draw/engines/basic/basic_engine.c @@ -94,7 +94,6 @@ static void basic_cache_init(void *vedata) const DRWContextState *draw_ctx = DRW_context_state_get(); BASIC_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg]; - const RegionView3D *rv3d = draw_ctx->rv3d; if (!stl->g_data) { /* Alloc transient pointers */ @@ -106,7 +105,7 @@ static void basic_cache_init(void *vedata) DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS_EQUAL); stl->g_data->depth_shgrp = DRW_shgroup_create(sh_data->depth, psl->depth_pass); if (draw_ctx->sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(stl->g_data->depth_shgrp, rv3d); + DRW_shgroup_state_enable(stl->g_data->depth_shgrp, DRW_STATE_CLIP_PLANES); } psl->depth_pass_cull = DRW_pass_create("Depth Pass Cull", @@ -114,7 +113,7 @@ static void basic_cache_init(void *vedata) DRW_STATE_CULL_BACK); stl->g_data->depth_shgrp_cull = DRW_shgroup_create(sh_data->depth, psl->depth_pass_cull); if (draw_ctx->sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(stl->g_data->depth_shgrp_cull, rv3d); + DRW_shgroup_state_enable(stl->g_data->depth_shgrp_cull, DRW_STATE_CLIP_PLANES); } } } diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c index f12902b6801..5f15fb3f19e 100644 --- a/source/blender/draw/engines/workbench/workbench_forward.c +++ b/source/blender/draw/engines/workbench/workbench_forward.c @@ -212,7 +212,7 @@ WORKBENCH_MaterialData *workbench_forward_get_or_create_material_data(WORKBENCH_ material->object_id = engine_object_data->object_id; DRW_shgroup_uniform_int(material->shgrp_object_outline, "object_id", &material->object_id, 1); if (draw_ctx->sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(material->shgrp_object_outline, draw_ctx->rv3d); + DRW_shgroup_state_enable(material->shgrp_object_outline, DRW_STATE_CLIP_PLANES); } BLI_ghash_insert(wpd->material_transp_hash, POINTER_FROM_UINT(hash), material); } diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c index a079d64a799..02fbbe0b042 100644 --- a/source/blender/draw/engines/workbench/workbench_materials.c +++ b/source/blender/draw/engines/workbench/workbench_materials.c @@ -316,7 +316,6 @@ void workbench_material_shgroup_uniform(WORKBENCH_PrivateData *wpd, } if (WORLD_CLIPPING_ENABLED(wpd)) { - DRW_shgroup_uniform_vec4(grp, "WorldClipPlanes", wpd->world_clip_planes[0], 6); DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } } diff --git a/source/blender/draw/intern/draw_common.c b/source/blender/draw/intern/draw_common.c index 28b34bffe3e..bcca660f861 100644 --- a/source/blender/draw/intern/draw_common.c +++ b/source/blender/draw/intern/draw_common.c @@ -306,13 +306,6 @@ void DRW_globals_free(void) } } -void DRW_shgroup_world_clip_planes_from_rv3d(DRWShadingGroup *shgrp, const RegionView3D *rv3d) -{ - int world_clip_planes_len = (rv3d->viewlock & RV3D_BOXCLIP) ? 4 : 6; - DRW_shgroup_uniform_vec4(shgrp, "WorldClipPlanes", rv3d->clip[0], world_clip_planes_len); - DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); -} - struct DRWCallBuffer *buffer_dynlines_flat_color(DRWPass *pass, eGPUShaderConfig sh_cfg) { GPUShader *sh = GPU_shader_get_builtin_shader_with_config(GPU_SHADER_3D_FLAT_COLOR, sh_cfg); @@ -325,7 +318,7 @@ struct DRWCallBuffer *buffer_dynlines_flat_color(DRWPass *pass, eGPUShaderConfig DRWShadingGroup *grp = DRW_shgroup_create(sh, pass); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer(grp, g_formats.pos_color, GPU_PRIM_LINES); } @@ -349,7 +342,7 @@ struct DRWCallBuffer *buffer_dynlines_dashed_uniform_color(DRWPass *pass, DRW_shgroup_uniform_float(grp, "dash_factor", &dash_factor, 1); DRW_shgroup_uniform_int_copy(grp, "colors_len", 0); /* "simple" mode */ if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer(grp, g_formats.pos, GPU_PRIM_LINES); } @@ -372,7 +365,7 @@ struct DRWCallBuffer *buffer_groundlines_uniform_color(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh, pass); DRW_shgroup_uniform_vec4(grp, "color", color, 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer(grp, g_formats.pos, GPU_PRIM_POINTS); } @@ -388,7 +381,7 @@ struct DRWCallBuffer *buffer_groundpoints_uniform_color(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh, pass); DRW_shgroup_uniform_vec4(grp, "color", color, 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer(grp, g_formats.pos, GPU_PRIM_POINTS); } @@ -412,7 +405,7 @@ struct DRWCallBuffer *buffer_instance_screenspace(DRWPass *pass, DRW_shgroup_uniform_float(grp, "pixel_size", DRW_viewport_pixelsize_get(), 1); DRW_shgroup_uniform_vec3(grp, "screen_vecs[0]", DRW_viewport_screenvecs_get(), 2); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_screenspace, geom); } @@ -467,7 +460,7 @@ struct DRWCallBuffer *buffer_instance_screen_aligned(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh, pass); DRW_shgroup_uniform_vec3(grp, "screen_vecs[0]", DRW_viewport_screenvecs_get(), 2); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_screen_aligned, geom); } @@ -488,7 +481,7 @@ struct DRWCallBuffer *buffer_instance_scaled(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh_inst, pass); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_scaled, geom); } @@ -510,7 +503,7 @@ struct DRWCallBuffer *buffer_instance(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh_inst, pass); DRW_shgroup_state_disable(grp, DRW_STATE_BLEND); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_sized, geom); } @@ -551,7 +544,7 @@ struct DRWCallBuffer *buffer_instance_empty_axes(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh_data->empty_axes_sh, pass); DRW_shgroup_uniform_vec3(grp, "screenVecs[0]", DRW_viewport_screenvecs_get(), 2); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_sized, geom); } @@ -591,7 +584,7 @@ struct DRWCallBuffer *buffer_camera_instance(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh_inst, pass); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_camera, geom); } @@ -615,7 +608,7 @@ struct DRWCallBuffer *buffer_distance_lines_instance(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh_inst, pass); DRW_shgroup_uniform_float(grp, "size", &point_size, 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_distance_lines, geom); } @@ -640,7 +633,7 @@ struct DRWCallBuffer *buffer_spot_instance(DRWPass *pass, DRW_shgroup_uniform_bool(grp, "drawBack", &False, 1); DRW_shgroup_uniform_bool(grp, "drawSilhouette", &True, 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_spot, geom); } @@ -666,7 +659,7 @@ struct DRWCallBuffer *buffer_instance_bone_axes(DRWPass *pass, eGPUShaderConfig DRWShadingGroup *grp = DRW_shgroup_create(sh_data->bone_axes, pass); DRW_shgroup_uniform_vec3(grp, "screenVecs[0]", DRW_viewport_screenvecs_get(), 2); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance( grp, g_formats.instance_color, DRW_cache_bone_arrows_get()); @@ -696,7 +689,7 @@ struct DRWCallBuffer *buffer_instance_bone_envelope_outline(DRWPass *pass, eGPUS DRWShadingGroup *grp = DRW_shgroup_create(sh_data->bone_envelope_outline, pass); DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance( grp, g_formats.instance_bone_envelope_outline, DRW_cache_bone_envelope_outline_get()); @@ -725,7 +718,7 @@ struct DRWCallBuffer *buffer_instance_bone_envelope_distance(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh_data->bone_envelope_distance, pass); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance( grp, g_formats.instance_bone_envelope_distance, DRW_cache_bone_envelope_solid_get()); @@ -761,7 +754,7 @@ struct DRWCallBuffer *buffer_instance_bone_envelope_solid(DRWPass *pass, DRW_shgroup_state_enable(grp, DRW_STATE_CULL_BACK); DRW_shgroup_uniform_float_copy(grp, "alpha", transp ? 0.6f : 1.0f); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance( grp, g_formats.instance_bone_envelope, DRW_cache_bone_envelope_solid_get()); @@ -789,7 +782,7 @@ struct DRWCallBuffer *buffer_instance_mball_handles(DRWPass *pass, eGPUShaderCon DRWShadingGroup *grp = DRW_shgroup_create(sh_data->mball_handles, pass); DRW_shgroup_uniform_vec3(grp, "screen_vecs[0]", DRW_viewport_screenvecs_get(), 2); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance( grp, g_formats.instance_mball_handles, DRW_cache_screenspace_circle_get()); @@ -826,7 +819,7 @@ struct DRWCallBuffer *buffer_instance_bone_shape_outline(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh_data->shape_outline, pass); DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_bone_outline, geom); } @@ -859,7 +852,7 @@ struct DRWCallBuffer *buffer_instance_bone_shape_solid(DRWPass *pass, DRWShadingGroup *grp = DRW_shgroup_create(sh_data->shape_solid, pass); DRW_shgroup_uniform_float_copy(grp, "alpha", transp ? 0.6f : 1.0f); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_bone, geom); } @@ -889,7 +882,7 @@ struct DRWCallBuffer *buffer_instance_bone_sphere_solid(DRWPass *pass, /* More transparent than the shape to be less distractive. */ DRW_shgroup_uniform_float_copy(grp, "alpha", transp ? 0.4f : 1.0f); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance( grp, g_formats.instance_bone, DRW_cache_bone_point_get()); @@ -917,7 +910,7 @@ struct DRWCallBuffer *buffer_instance_bone_sphere_outline(DRWPass *pass, eGPUSha DRWShadingGroup *grp = DRW_shgroup_create(sh_data->bone_sphere_outline, pass); DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance( grp, g_formats.instance_bone_outline, DRW_cache_bone_point_wire_outline_get()); @@ -950,7 +943,7 @@ struct DRWCallBuffer *buffer_instance_bone_stick(DRWPass *pass, eGPUShaderConfig DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1); DRW_shgroup_uniform_float_copy(grp, "stickSize", 5.0f * U.pixelsize); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return DRW_shgroup_call_buffer_instance( grp, g_formats.instance_bone_stick, DRW_cache_bone_stick_get()); diff --git a/source/blender/draw/intern/draw_common.h b/source/blender/draw/intern/draw_common.h index b2c92d74426..d0717888525 100644 --- a/source/blender/draw/intern/draw_common.h +++ b/source/blender/draw/intern/draw_common.h @@ -123,9 +123,6 @@ BLI_STATIC_ASSERT_ALIGN(GlobalsUboStorage, 16) void DRW_globals_update(void); void DRW_globals_free(void); -void DRW_shgroup_world_clip_planes_from_rv3d(struct DRWShadingGroup *shgrp, - const RegionView3D *rv3d); - /* TODO(fclem) ideally, most of the DRWCallBuffer functions shouldn't create a shgroup. */ struct DRWCallBuffer *buffer_dynlines_flat_color(struct DRWPass *pass, eGPUShaderConfig sh_cfg); struct DRWCallBuffer *buffer_dynlines_dashed_uniform_color(struct DRWPass *pass, diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index d68a64a3abf..db882828867 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -2542,7 +2542,7 @@ void DRW_draw_depth_loop_gpencil(struct Depsgraph *depsgraph, /** See #DRW_shgroup_world_clip_planes_from_rv3d. */ static void draw_world_clip_planes_from_rv3d(GPUBatch *batch, const float world_clip_planes[6][4]) { - GPU_batch_uniform_4fv_array(batch, "WorldClipPlanes", 6, world_clip_planes[0]); + GPU_batch_uniform_4fv_array(batch, "clipPlanes", 6, world_clip_planes[0]); } /** diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c index 7e76c9c5c9f..9b131e68ae0 100644 --- a/source/blender/draw/intern/draw_manager_data.c +++ b/source/blender/draw/intern/draw_manager_data.c @@ -876,6 +876,9 @@ static void drw_shgroup_init(DRWShadingGroup *shgroup, GPUShader *shader) drw_shgroup_builtin_uniform(shgroup, GPU_UNIFORM_PROJECTION_INV, storage->wininv, 16, 1); } + drw_shgroup_builtin_uniform( + shgroup, GPU_UNIFORM_CLIPPLANES, DST.view_storage_cpy.clipplanes, 4, 6); + /* Not supported. */ BLI_assert(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_MODELVIEW_INV) == -1); BLI_assert(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_MODELVIEW) == -1); diff --git a/source/blender/draw/modes/edit_curve_mode.c b/source/blender/draw/modes/edit_curve_mode.c index ff9f433ad14..d1ea8af86f2 100644 --- a/source/blender/draw/modes/edit_curve_mode.c +++ b/source/blender/draw/modes/edit_curve_mode.c @@ -168,7 +168,7 @@ static void EDIT_CURVE_wire_shgrp_create(EDIT_CURVE_Shaders *sh_data, DRWShadingGroup *grp = DRW_shgroup_create(sh_data->wire_sh, pass); DRW_shgroup_uniform_vec4(grp, "color", G_draw.block.colorWireEdit, 1); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } *wire_shgrp = grp; @@ -176,7 +176,7 @@ static void EDIT_CURVE_wire_shgrp_create(EDIT_CURVE_Shaders *sh_data, DRW_shgroup_uniform_vec4(grp, "color", G_draw.block.colorWireEdit, 1); DRW_shgroup_uniform_float_copy(grp, "normalSize", v3d->overlay.normals_length); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } *wire_normals_shgrp = grp; } @@ -229,7 +229,7 @@ static void EDIT_CURVE_cache_init(void *vedata) DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1); DRW_shgroup_uniform_bool(grp, "showCurveHandles", &stl->g_data->show_handles, 1); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } stl->g_data->overlay_edge_shgrp = grp; @@ -238,7 +238,7 @@ static void EDIT_CURVE_cache_init(void *vedata) grp = DRW_shgroup_create(sh_data->overlay_vert_sh, psl->overlay_vert_pass); DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } stl->g_data->overlay_vert_shgrp = grp; } diff --git a/source/blender/draw/modes/edit_lattice_mode.c b/source/blender/draw/modes/edit_lattice_mode.c index 42d377f2abd..3058c5c829c 100644 --- a/source/blender/draw/modes/edit_lattice_mode.c +++ b/source/blender/draw/modes/edit_lattice_mode.c @@ -184,7 +184,7 @@ static void EDIT_LATTICE_cache_init(void *vedata) DRW_STATE_DEPTH_LESS_EQUAL); stl->g_data->wire_shgrp = DRW_shgroup_create(sh_data->wire, psl->wire_pass); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(stl->g_data->wire_shgrp, rv3d); + DRW_shgroup_state_enable(stl->g_data->wire_shgrp, DRW_STATE_CLIP_PLANES); } psl->vert_pass = DRW_pass_create("Lattice Verts", @@ -192,7 +192,7 @@ static void EDIT_LATTICE_cache_init(void *vedata) stl->g_data->vert_shgrp = DRW_shgroup_create(sh_data->overlay_vert, psl->vert_pass); DRW_shgroup_uniform_block(stl->g_data->vert_shgrp, "globalsBlock", G_draw.block_ubo); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(stl->g_data->vert_shgrp, rv3d); + DRW_shgroup_state_enable(stl->g_data->vert_shgrp, DRW_STATE_CLIP_PLANES); } } } diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c index f53a9df52c4..865e443b186 100644 --- a/source/blender/draw/modes/edit_mesh_mode.c +++ b/source/blender/draw/modes/edit_mesh_mode.c @@ -368,7 +368,7 @@ static void edit_mesh_create_overlay_passes(float face_alpha, DRW_shgroup_uniform_ivec4(grp, "dataMask", data_mask, 1); DRW_shgroup_uniform_bool_copy(grp, "selectFaces", select_face); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } /* Cage geom needs to be offseted to avoid Z-fighting. */ @@ -379,7 +379,7 @@ static void edit_mesh_create_overlay_passes(float face_alpha, DRW_shgroup_uniform_ivec4(grp, "dataMask", data_mask, 1); DRW_shgroup_uniform_bool_copy(grp, "selectFaces", select_face); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } /* Edges */ @@ -393,7 +393,7 @@ static void edit_mesh_create_overlay_passes(float face_alpha, DRW_shgroup_uniform_ivec4(grp, "dataMask", data_mask, 1); DRW_shgroup_uniform_bool_copy(grp, "selectEdges", do_edges || select_edge); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } /* Verts */ @@ -404,7 +404,7 @@ static void edit_mesh_create_overlay_passes(float face_alpha, DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } } if (select_face) { @@ -412,7 +412,7 @@ static void edit_mesh_create_overlay_passes(float face_alpha, DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); DRW_shgroup_state_enable(grp, DRW_STATE_WRITE_DEPTH); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } } } @@ -493,7 +493,7 @@ static void EDIT_MESH_cache_init(void *vedata) DRW_shgroup_uniform_texture(g_data->fweights_shgrp, "colorramp", G_draw.weight_ramp); DRW_shgroup_uniform_block(g_data->fweights_shgrp, "globalsBlock", G_draw.block_ubo); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(g_data->fweights_shgrp, rv3d); + DRW_shgroup_state_enable(g_data->fweights_shgrp, DRW_STATE_CLIP_PLANES); } } @@ -504,7 +504,7 @@ static void EDIT_MESH_cache_init(void *vedata) DRW_STATE_CULL_BACK); g_data->depth_shgrp_hidden_wire = DRW_shgroup_create(sh_data->depth, psl->depth_hidden_wire); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(g_data->depth_shgrp_hidden_wire, rv3d); + DRW_shgroup_state_enable(g_data->depth_shgrp_hidden_wire, DRW_STATE_CLIP_PLANES); } psl->depth_hidden_wire_in_front = DRW_pass_create( @@ -513,7 +513,7 @@ static void EDIT_MESH_cache_init(void *vedata) g_data->depth_shgrp_hidden_wire_in_front = DRW_shgroup_create(sh_data->depth, psl->depth_hidden_wire_in_front); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(g_data->depth_shgrp_hidden_wire_in_front, rv3d); + DRW_shgroup_state_enable(g_data->depth_shgrp_hidden_wire_in_front, DRW_STATE_CLIP_PLANES); } } @@ -527,21 +527,21 @@ static void EDIT_MESH_cache_init(void *vedata) DRW_shgroup_uniform_float(g_data->fnormals_shgrp, "normalSize", &size_normal, 1); DRW_shgroup_uniform_vec4(g_data->fnormals_shgrp, "color", G_draw.block.colorNormal, 1); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(g_data->fnormals_shgrp, rv3d); + DRW_shgroup_state_enable(g_data->fnormals_shgrp, DRW_STATE_CLIP_PLANES); } g_data->vnormals_shgrp = DRW_shgroup_create(sh_data->normals, psl->normals); DRW_shgroup_uniform_float(g_data->vnormals_shgrp, "normalSize", &size_normal, 1); DRW_shgroup_uniform_vec4(g_data->vnormals_shgrp, "color", G_draw.block.colorVNormal, 1); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(g_data->vnormals_shgrp, rv3d); + DRW_shgroup_state_enable(g_data->vnormals_shgrp, DRW_STATE_CLIP_PLANES); } g_data->lnormals_shgrp = DRW_shgroup_create(sh_data->normals_loop, psl->normals); DRW_shgroup_uniform_float(g_data->lnormals_shgrp, "normalSize", &size_normal, 1); DRW_shgroup_uniform_vec4(g_data->lnormals_shgrp, "color", G_draw.block.colorLNormal, 1); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(g_data->lnormals_shgrp, rv3d); + DRW_shgroup_state_enable(g_data->lnormals_shgrp, DRW_STATE_CLIP_PLANES); } } @@ -554,7 +554,7 @@ static void EDIT_MESH_cache_init(void *vedata) is_vertex_color ? sh_data->mesh_analysis_vertex : sh_data->mesh_analysis_face, psl->mesh_analysis_pass); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(g_data->mesh_analysis_shgrp, rv3d); + DRW_shgroup_state_enable(g_data->mesh_analysis_shgrp, DRW_STATE_CLIP_PLANES); } } /* For in front option */ @@ -597,7 +597,7 @@ static void EDIT_MESH_cache_init(void *vedata) DRW_shgroup_uniform_block(shgrp, "globalsBlock", G_draw.block_ubo); DRW_shgroup_uniform_ivec4(shgrp, "dataMask", g_data->data_mask, 1); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } shgrp = g_data->facefill_occluded_cage_shgrp = DRW_shgroup_create( @@ -605,7 +605,7 @@ static void EDIT_MESH_cache_init(void *vedata) DRW_shgroup_uniform_block(shgrp, "globalsBlock", G_draw.block_ubo); DRW_shgroup_uniform_ivec4(shgrp, "dataMask", g_data->data_mask, 1); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } } else { diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c index 68af4fc0c4a..5a9dc29ce6b 100644 --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@ -708,7 +708,7 @@ static DRWShadingGroup *shgroup_outline(DRWPass *pass, DRW_shgroup_uniform_int(grp, "baseId", ofs, 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return grp; } @@ -723,7 +723,7 @@ static DRWShadingGroup *shgroup_wire(DRWPass *pass, DRW_shgroup_uniform_vec4(grp, "color", col, 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return grp; } @@ -739,7 +739,7 @@ static DRWShadingGroup *shgroup_points(DRWPass *pass, DRW_shgroup_uniform_vec4(grp, "innerColor", G_draw.block.colorEditMeshMiddle, 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } return grp; } @@ -1016,7 +1016,7 @@ static void DRW_shgroup_empty_image(OBJECT_Shaders *sh_data, DRW_shgroup_uniform_vec2(grp, "offset", ob->ima_ofs, 1); DRW_shgroup_uniform_vec3(grp, "color", color, 1); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } DRW_shgroup_call(grp, DRW_cache_image_plane_wire_get(), ob->obmat); } @@ -1036,7 +1036,7 @@ static void DRW_shgroup_empty_image(OBJECT_Shaders *sh_data, DRW_shgroup_uniform_vec4(grp, "objectColor", ob->color, 1); DRW_shgroup_uniform_bool_copy(grp, "useAlphaTest", !use_alpha_blend); if (sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } DRW_shgroup_call(grp, DRW_cache_image_plane_get(), ob->obmat); } @@ -1404,7 +1404,7 @@ static void OBJECT_cache_init(void *vedata) DRW_shgroup_uniform_vec4(grp, "color", gb->colorLightNoAlpha, 1); DRW_shgroup_uniform_float(grp, "size", &gb->sizeLightCenter, 1); if (draw_ctx->sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } sgl->light_center = buffer_dynpoints_uniform_color(grp); @@ -1492,7 +1492,7 @@ static void OBJECT_cache_init(void *vedata) DRWShadingGroup *grp_transp = DRW_shgroup_create(sh, sgl->transp_shapes); if (draw_ctx->sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp_transp, DRW_context_state_get()->rv3d); + DRW_shgroup_state_enable(grp_transp, DRW_STATE_CLIP_PLANES); } DRWShadingGroup *grp_cull_back = DRW_shgroup_create_sub(grp_transp); @@ -1544,7 +1544,7 @@ static void OBJECT_cache_init(void *vedata) DRW_shgroup_uniform_vec4(grp, "color", gb->colorActive, 1); DRW_shgroup_uniform_vec4(grp, "outlineColor", gb->colorOutline, 1); if (draw_ctx->sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(grp, draw_ctx->rv3d); + DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES); } /* TODO find better name. */ stl->g_data->center_active = buffer_dynpoints_uniform_color(grp); diff --git a/source/blender/draw/modes/overlay_mode.c b/source/blender/draw/modes/overlay_mode.c index e202dcf01ee..6e484d3bcc0 100644 --- a/source/blender/draw/modes/overlay_mode.c +++ b/source/blender/draw/modes/overlay_mode.c @@ -210,7 +210,7 @@ static void overlay_cache_init(void *vedata) g_data->face_orientation_shgrp = DRW_shgroup_create(sh_data->face_orientation, psl->face_orientation_pass); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(g_data->face_orientation_shgrp, rv3d); + DRW_shgroup_state_enable(g_data->face_orientation_shgrp, DRW_STATE_CLIP_PLANES); } } @@ -246,7 +246,7 @@ static void overlay_cache_init(void *vedata) g_data->face_wires_shgrp, "viewportSizeInv", DRW_viewport_invert_size_get(), 1); } if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(g_data->face_wires_shgrp, rv3d); + DRW_shgroup_state_enable(g_data->face_wires_shgrp, DRW_STATE_CLIP_PLANES); } g_data->wire_step_param = stl->g_data->overlay.wireframe_threshold - 254.0f / 255.0f; diff --git a/source/blender/draw/modes/paint_texture_mode.c b/source/blender/draw/modes/paint_texture_mode.c index 7c87a6d402c..a27895f6ce8 100644 --- a/source/blender/draw/modes/paint_texture_mode.c +++ b/source/blender/draw/modes/paint_texture_mode.c @@ -248,7 +248,7 @@ static void PAINT_TEXTURE_cache_init(void *vedata) DRW_shgroup_uniform_vec4(shgrp, "color", color, 1); if (draw_ctx->sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, draw_ctx->rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } psl->image_faces = pass; stl->g_data->shgroup_fallback = shgrp; @@ -308,7 +308,7 @@ static void PAINT_TEXTURE_cache_init(void *vedata) DRW_shgroup_uniform_block(shgrp, "globalsBlock", G_draw.block_ubo); if (draw_ctx->sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, draw_ctx->rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } psl->wire_select_overlay = pass; stl->g_data->lwire_select_shgrp = shgrp; @@ -323,7 +323,7 @@ static void PAINT_TEXTURE_cache_init(void *vedata) DRW_shgroup_uniform_vec4(shgrp, "color", col, 1); if (draw_ctx->sh_cfg == GPU_SHADER_CFG_CLIPPED) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, draw_ctx->rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } psl->face_select_overlay = pass; stl->g_data->face_select_shgrp = shgrp; diff --git a/source/blender/draw/modes/paint_vertex_mode.c b/source/blender/draw/modes/paint_vertex_mode.c index 1deee01a779..051f57fd9e0 100644 --- a/source/blender/draw/modes/paint_vertex_mode.c +++ b/source/blender/draw/modes/paint_vertex_mode.c @@ -203,7 +203,7 @@ static void PAINT_VERTEX_cache_init(void *vedata) DRW_shgroup_uniform_float_copy( shgrp, "white_factor", 1.0f - v3d->overlay.vertex_paint_mode_opacity); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } psl->by_mode[VERTEX_MODE].color_faces = pass; stl->g_data->by_mode[VERTEX_MODE].color_shgrp = shgrp; @@ -220,7 +220,7 @@ static void PAINT_VERTEX_cache_init(void *vedata) DRW_shgroup_uniform_texture(shgrp, "colorramp", G_draw.weight_ramp); DRW_shgroup_uniform_block(shgrp, "globalsBlock", G_draw.block_ubo); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } psl->by_mode[WEIGHT_MODE].color_faces = pass; stl->g_data->by_mode[WEIGHT_MODE].color_shgrp = shgrp; @@ -233,7 +233,7 @@ static void PAINT_VERTEX_cache_init(void *vedata) DRWShadingGroup *shgrp = DRW_shgroup_create(sh_data->by_mode[i].wire_overlay, pass); DRW_shgroup_uniform_block(shgrp, "globalsBlock", G_draw.block_ubo); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } stl->g_data->by_mode[i].lwire_shgrp = shgrp; } @@ -248,7 +248,7 @@ static void PAINT_VERTEX_cache_init(void *vedata) DRWShadingGroup *shgrp = DRW_shgroup_create(sh_data->by_mode[i].wire_select_overlay, pass); DRW_shgroup_uniform_block(shgrp, "globalsBlock", G_draw.block_ubo); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } stl->g_data->by_mode[i].lwire_select_shgrp = shgrp; } @@ -263,7 +263,7 @@ static void PAINT_VERTEX_cache_init(void *vedata) DRWShadingGroup *shgrp = DRW_shgroup_create(sh_data->face_select_overlay, pass); DRW_shgroup_uniform_vec4(shgrp, "color", col, 1); if (rv3d->rflag & RV3D_CLIPPING) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } psl->face_select_overlay = pass; stl->g_data->face_select_shgrp = shgrp; @@ -276,7 +276,7 @@ static void PAINT_VERTEX_cache_init(void *vedata) 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) { - DRW_shgroup_world_clip_planes_from_rv3d(shgrp, rv3d); + DRW_shgroup_state_enable(shgrp, DRW_STATE_CLIP_PLANES); } psl->vert_select_overlay = pass; stl->g_data->vert_select_shgrp = shgrp; -- cgit v1.2.3