[Bf-blender-cvs] [1bf797be982] tmp-overlay-engine: Cleanup: Port screenVecs, pixelSize (pixelFac) and sizeViewport to UBO

Clément Foucault noreply at git.blender.org
Fri Nov 15 01:35:24 CET 2019


Commit: 1bf797be982180b6262afc249b51826916e7360b
Author: Clément Foucault
Date:   Sun Nov 10 01:38:36 2019 +0100
Branches: tmp-overlay-engine
https://developer.blender.org/rB1bf797be982180b6262afc249b51826916e7360b

Cleanup: Port screenVecs, pixelSize (pixelFac) and sizeViewport to UBO

===================================================================

M	source/blender/draw/engines/overlay/overlay_edit_mesh.c
M	source/blender/draw/engines/overlay/overlay_extra.c
M	source/blender/draw/engines/overlay/overlay_grid.c
M	source/blender/draw/engines/overlay/overlay_private.h
M	source/blender/draw/engines/overlay/overlay_shader.c
M	source/blender/draw/engines/overlay/overlay_wireframe.c
M	source/blender/draw/engines/overlay/shaders/edit_mesh_geom.glsl
M	source/blender/draw/engines/overlay/shaders/edit_mesh_skin_root_vert.glsl
M	source/blender/draw/engines/overlay/shaders/extra_groundline_vert.glsl
M	source/blender/draw/engines/overlay/shaders/extra_vert.glsl
M	source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl
M	source/blender/draw/engines/overlay/shaders/grid_frag.glsl
M	source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl
M	source/blender/draw/engines/overlay/shaders/wireframe_geom.glsl
M	source/blender/draw/intern/draw_common.c
M	source/blender/draw/intern/draw_common.h
M	source/blender/draw/modes/shaders/armature_axes_vert.glsl
M	source/blender/draw/modes/shaders/common_globals_lib.glsl
M	source/blender/draw/modes/shaders/common_view_lib.glsl

===================================================================

diff --git a/source/blender/draw/engines/overlay/overlay_edit_mesh.c b/source/blender/draw/engines/overlay/overlay_edit_mesh.c
index 49282434da4..44a43eef1f9 100644
--- a/source/blender/draw/engines/overlay/overlay_edit_mesh.c
+++ b/source/blender/draw/engines/overlay/overlay_edit_mesh.c
@@ -213,8 +213,6 @@ void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata)
 
     grp = pd->edit_mesh_edges_grp[i] = DRW_shgroup_create(edge_sh, psl->edit_mesh_edges_ps[i]);
     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, "viewportSizeInv", DRW_viewport_invert_size_get(), 1);
     DRW_shgroup_uniform_ivec4(grp, "dataMask", mask, 1);
     DRW_shgroup_uniform_bool_copy(grp, "selectEdges", pd->edit_mesh.do_edges || select_edge);
 
@@ -226,12 +224,10 @@ void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata)
       sh = OVERLAY_shader_edit_mesh_vert();
       grp = pd->edit_mesh_verts_grp[i] = DRW_shgroup_create(sh, psl->edit_mesh_verts_ps[i]);
       DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
-      DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1);
 
       sh = OVERLAY_shader_edit_mesh_skin_root();
       grp = pd->edit_mesh_skin_roots_grp[i] = DRW_shgroup_create(sh, psl->edit_mesh_verts_ps[i]);
       DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
-      DRW_shgroup_uniform_vec3(grp, "screen_vecs[0]", DRW_viewport_screenvecs_get(), 2);
     }
     /* Facedots */
     if (select_face && show_face_dots) {
diff --git a/source/blender/draw/engines/overlay/overlay_extra.c b/source/blender/draw/engines/overlay/overlay_extra.c
index 6afa7d29b56..3f597fae58e 100644
--- a/source/blender/draw/engines/overlay/overlay_extra.c
+++ b/source/blender/draw/engines/overlay/overlay_extra.c
@@ -70,7 +70,6 @@ void OVERLAY_extra_cache_init(OVERLAY_Data *vedata)
     struct GPUShader *sh;
     struct GPUVertFormat *format;
     DRWShadingGroup *grp, *grp_sub;
-    float pixelsize = *DRW_viewport_pixelsize_get() * U.pixelsize;
 
     OVERLAY_InstanceFormats *formats = OVERLAY_shader_instance_formats_get();
     OVERLAY_ExtraCallBuffers *cb = &pd->extra_call_buffers[i];
@@ -82,80 +81,6 @@ void OVERLAY_extra_cache_init(OVERLAY_Data *vedata)
     DRWPass *extra_ps = *p_extra_ps;
 
 #if 0
-    /* Empties */
-    empties_callbuffers_create(cb->non_meshes, &cb->empties, draw_ctx->sh_cfg);
-
-    /* Force Field */
-    geom = DRW_cache_field_wind_get();
-    cb->field_wind = buffer_instance_scaled(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_field_force_get();
-    cb->field_force = buffer_instance_screen_aligned(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_field_vortex_get();
-    cb->field_vortex = buffer_instance_scaled(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_screenspace_circle_get();
-    cb->field_curve_sta = buffer_instance_screen_aligned(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    /* Grease Pencil */
-    geom = DRW_cache_gpencil_axes_get();
-    cb->gpencil_axes = buffer_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    /* Speaker */
-    geom = DRW_cache_speaker_get();
-    cb->speaker = buffer_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    /* Probe */
-    static float probeSize = 14.0f;
-    geom = DRW_cache_lightprobe_cube_get();
-    cb->probe_cube = buffer_instance_screenspace(
-        cb->non_meshes, geom, &probeSize, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_lightprobe_grid_get();
-    cb->probe_grid = buffer_instance_screenspace(
-        cb->non_meshes, geom, &probeSize, draw_ctx->sh_cfg);
-
-    static float probePlanarSize = 20.0f;
-    geom = DRW_cache_lightprobe_planar_get();
-    cb->probe_planar = buffer_instance_screenspace(
-        cb->non_meshes, geom, &probePlanarSize, draw_ctx->sh_cfg);
-
-    /* Camera */
-    geom = DRW_cache_camera_get();
-    cb->camera = buffer_camera_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_camera_frame_get();
-    cb->camera_frame = buffer_camera_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_camera_tria_get();
-    cb->camera_tria = buffer_camera_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_plain_axes_get();
-    cb->camera_focus = buffer_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_single_line_get();
-    cb->camera_clip = buffer_distance_lines_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-    cb->camera_mist = buffer_distance_lines_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_single_line_endpoints_get();
-    cb->camera_clip_points = buffer_distance_lines_instance(
-        cb->non_meshes, geom, draw_ctx->sh_cfg);
-    cb->camera_mist_points = buffer_distance_lines_instance(
-        cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_quad_wires_get();
-    cb->camera_stereo_plane_wires = buffer_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    geom = DRW_cache_empty_cube_get();
-    cb->camera_stereo_volume_wires = buffer_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
-    BLI_listbase_clear(&cb->camera_path);
-
-    /* Texture Space */
-    geom = DRW_cache_empty_cube_get();
-    cb->texspace = buffer_instance(cb->non_meshes, geom, draw_ctx->sh_cfg);
-
     /* Wires (for loose edges) */
     sh = GPU_shader_get_builtin_shader_with_config(GPU_SHADER_3D_UNIFORM_COLOR, draw_ctx->sh_cfg);
     cb->wire = shgroup_wire(cb->non_meshes, gb->colorWire, sh, draw_ctx->sh_cfg);
@@ -200,28 +125,13 @@ void OVERLAY_extra_cache_init(OVERLAY_Data *vedata)
       sh = OVERLAY_shader_extra();
 
       grp = DRW_shgroup_create(sh, extra_ps);
-      DRW_shgroup_uniform_float_copy(grp, "pixel_size", pixelsize);
-      DRW_shgroup_uniform_vec3(grp, "screen_vecs[0]", DRW_viewport_screenvecs_get(), 2);
       DRW_shgroup_uniform_block_persistent(grp, "globalsBlock", G_draw.block_ubo);
 
       grp_sub = DRW_shgroup_create_sub(grp);
-      cb->light_point = BUF_INSTANCE(grp_sub, format, DRW_cache_light_point_lines_get());
-      cb->light_sun = BUF_INSTANCE(grp_sub, format, DRW_cache_light_sun_lines_get());
-      cb->light_area[0] = BUF_INSTANCE(grp_sub, format, DRW_cache_light_area_disk_lines_get());
-      cb->light_area[1] = BUF_INSTANCE(grp_sub, format, DRW_cache_light_area_square_lines_get());
-      cb->light_spot = BUF_INSTANCE(grp_sub, format, DRW_cache_light_spot_lines_get());
-
-      cb->probe_cube = BUF_INSTANCE(grp_sub, format, DRW_cache_lightprobe_planar_get());
-      cb->probe_grid = BUF_INSTANCE(grp_sub, format, DRW_cache_lightprobe_grid_get());
-      cb->probe_planar = BUF_INSTANCE(grp_sub, format, DRW_cache_lightprobe_planar_get());
-
-      cb->speaker = BUF_INSTANCE(grp_sub, format, DRW_cache_speaker_get());
-
+      cb->camera_distances = BUF_INSTANCE(grp_sub, format, DRW_cache_camera_distances_get());
       cb->camera_frame = BUF_INSTANCE(grp_sub, format, DRW_cache_camera_frame_get());
       cb->camera_tria[0] = BUF_INSTANCE(grp_sub, format, DRW_cache_camera_tria_wire_get());
       cb->camera_tria[1] = BUF_INSTANCE(grp_sub, format, DRW_cache_camera_tria_get());
-      cb->camera_distances = BUF_INSTANCE(grp_sub, format, DRW_cache_camera_distances_get());
-
       cb->empty_axes = BUF_INSTANCE(grp_sub, format, DRW_cache_bone_arrows_get());
       cb->empty_capsule_body = BUF_INSTANCE(grp_sub, format, DRW_cache_empty_capsule_body_get());
       cb->empty_capsule_cap = BUF_INSTANCE(grp_sub, format, DRW_cache_empty_capsule_cap_get());
@@ -233,46 +143,48 @@ void OVERLAY_extra_cache_init(OVERLAY_Data *vedata)
       cb->empty_single_arrow = BUF_INSTANCE(grp_sub, format, DRW_cache_single_arrow_get());
       cb->empty_sphere = BUF_INSTANCE(grp_sub, format, DRW_cache_empty_sphere_get());
       cb->empty_sphere_solid = BUF_INSTANCE(grp_sub, format, DRW_cache_sphere_get());
-
-      cb->field_wind = BUF_INSTANCE(grp_sub, format, DRW_cache_field_wind_get());
-      cb->field_force = BUF_INSTANCE(grp_sub, format, DRW_cache_field_force_get());
-      cb->field_vortex = BUF_INSTANCE(grp_sub, format, DRW_cache_field_vortex_get());
-      cb->field_curve = BUF_INSTANCE(grp_sub, format, DRW_cache_field_curve_get());
-      cb->field_tube_limit = BUF_INSTANCE(grp_sub, format, DRW_cache_field_tube_limit_get());
       cb->field_cone_limit = BUF_INSTANCE(grp_sub, format, DRW_cache_field_cone_limit_get());
+      cb->field_curve = BUF_INSTANCE(grp_sub, format, DRW_cache_field_curve_get());
+      cb->field_force = BUF_INSTANCE(grp_sub, format, DRW_cache_field_force_get());
       cb->field_sphere_limit = BUF_INSTANCE(grp_sub, format, DRW_cache_field_sphere_limit_get());
+      cb->field_tube_limit = BUF_INSTANCE(grp_sub, format, DRW_cache_field_tube_limit_get());
+      cb->field_vortex = BUF_INSTANCE(grp_sub, format, DRW_cache_field_vortex_get());
+      cb->field_wind = BUF_INSTANCE(grp_sub, format, DRW_cache_field_wind_get());
+      cb->light_area[0] = BUF_INSTANCE(grp_sub, format, DRW_cache_light_area_disk_lines_get());
+      cb->light_area[1] = BUF_INSTANCE(grp_sub, format, DRW_cache_light_area_square_lines_get());
+      cb->light_point = BUF_INSTANCE(grp_sub, format, DRW_cache_light_point_lines_get());
+      cb->light_spot = BUF_INSTANCE(grp_sub, format, DRW_cache_light_spot_lines_get());
+      cb->light_sun = BUF_INSTANCE(grp_sub, format, DRW_cache_light_sun_lines_get());
+      cb->probe_cube = BUF_INSTANCE(grp_sub, format, DRW_cache_lightprobe_planar_get());
+      cb->probe_grid = BUF_INSTANCE(grp_sub, format, DRW_cache_lightprobe_grid_get());
+      cb->probe_planar = BUF_INSTANCE(grp_sub, format, DRW_cache_lightprobe_planar_get());
+      cb->speaker = BUF_INSTANCE(grp_sub, format, DRW_cache_speaker_get());
 
       grp_sub = DRW_shgroup_create_sub(grp);
       DRW_shgroup_state_enable(grp_sub, DRW_STATE_DEPTH_ALWAYS);
       DRW_shgroup_state_disable(grp_sub, DRW_STATE_DEPTH_LESS_EQUAL);
       cb->origin_xform = BUF_INSTANCE(grp_sub, format, DRW_cache_bone_arrows_get());
-
-      /* TODO Own move to transparent pass. */
-      grp_sub = DRW_shgroup_create_sub(grp);
-     

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list