[Bf-blender-cvs] [9516921c05b] master: Overlay Engine: Refactor & Cleanup

Clément Foucault noreply at git.blender.org
Mon Dec 2 13:18:19 CET 2019


Commit: 9516921c05bd9fee5c94942eb8e38f47ba7e4351
Author: Clément Foucault
Date:   Mon Dec 2 01:40:58 2019 +0100
Branches: master
https://developer.blender.org/rB9516921c05bd9fee5c94942eb8e38f47ba7e4351

Overlay Engine: Refactor & Cleanup

This is the unification of all overlays into one overlay engine as described in T65347.

I went over all the code making it more future proof with less hacks and removing old / not relevent parts.

Goals / Acheivements:
- Remove internal shader usage (only drw shaders)
- Remove viewportSize and viewportSizeInv and put them in gloabl ubo
- Fixed some drawing issues: Missing probe option and Missing Alt+B clipping of some shader
- Remove old (legacy) shaders dependancy (not using view UBO).
- Less shader variation (less compilation time at first load and less patching needed for vulkan)
- removed some geom shaders when I could
- Remove static e_data (except shaders storage where it is OK)
- Clear the way to fix some anoying limitations (dithered transparency, background image compositing etc...)
- Wireframe drawing now uses the same batching capabilities as workbench & eevee (indirect drawing).
- Reduced complexity, removed ~3000 Lines of code in draw (also removed a lot of unused shader in GPU).
- Post AA to avoid complexity and cost of MSAA.

Remaining issues:
- ~~Armature edits, overlay toggles, (... others?) are not refreshing viewport after AA is complete~~
- FXAA is not the best for wires, maybe investigate SMAA
- Maybe do something more temporally stable for AA.
- ~~Paint overlays are not working with AA.~~
- ~~infront objects are difficult to select.~~
- ~~the infront wires sometimes goes through they solid counterpart (missing clear maybe?) (toggle overlays on-off when using infront+wireframe overlay in solid shading)~~

Note: I made some decision to change slightly the appearance of some objects to simplify their drawing. Namely the empty arrows end (which is now hollow/wire) and distance points of the cameras/spots being done by lines.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D6296

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

M	release/scripts/startup/bl_ui/properties_data_lightprobe.py
M	source/blender/blenfont/intern/blf_font.c
M	source/blender/draw/CMakeLists.txt
M	source/blender/draw/DRW_engine.h
M	source/blender/draw/engines/basic/basic_engine.c
M	source/blender/draw/engines/gpencil/gpencil_engine.c
M	source/blender/draw/engines/gpencil/gpencil_engine.h
M	source/blender/draw/engines/gpencil/gpencil_render.c
A	source/blender/draw/engines/overlay/overlay_antialiasing.c
A	source/blender/draw/engines/overlay/overlay_armature.c
A	source/blender/draw/engines/overlay/overlay_edit_curve.c
A	source/blender/draw/engines/overlay/overlay_edit_mesh.c
A	source/blender/draw/engines/overlay/overlay_edit_text.c
A	source/blender/draw/engines/overlay/overlay_engine.c
R060	source/blender/draw/modes/edit_mesh_mode_intern.h	source/blender/draw/engines/overlay/overlay_engine.h
A	source/blender/draw/engines/overlay/overlay_extra.c
A	source/blender/draw/engines/overlay/overlay_facing.c
A	source/blender/draw/engines/overlay/overlay_grid.c
A	source/blender/draw/engines/overlay/overlay_image.c
A	source/blender/draw/engines/overlay/overlay_lattice.c
A	source/blender/draw/engines/overlay/overlay_metaball.c
A	source/blender/draw/engines/overlay/overlay_motion_path.c
A	source/blender/draw/engines/overlay/overlay_outline.c
A	source/blender/draw/engines/overlay/overlay_paint.c
A	source/blender/draw/engines/overlay/overlay_particle.c
A	source/blender/draw/engines/overlay/overlay_private.h
A	source/blender/draw/engines/overlay/overlay_sculpt.c
A	source/blender/draw/engines/overlay/overlay_shader.c
A	source/blender/draw/engines/overlay/overlay_wireframe.c
A	source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl
A	source/blender/draw/engines/overlay/shaders/antialiasing_vert.glsl
R062	source/blender/draw/modes/shaders/armature_dof_vert.glsl	source/blender/draw/engines/overlay/shaders/armature_dof_vert.glsl
R093	source/blender/draw/modes/shaders/armature_envelope_outline_vert.glsl	source/blender/draw/engines/overlay/shaders/armature_envelope_outline_vert.glsl
A	source/blender/draw/engines/overlay/shaders/armature_envelope_solid_frag.glsl
R093	source/blender/draw/modes/shaders/armature_envelope_solid_vert.glsl	source/blender/draw/engines/overlay/shaders/armature_envelope_solid_vert.glsl
R096	source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl	source/blender/draw/engines/overlay/shaders/armature_shape_outline_geom.glsl
R071	source/blender/draw/modes/shaders/armature_shape_outline_vert.glsl	source/blender/draw/engines/overlay/shaders/armature_shape_outline_vert.glsl
R100	source/blender/draw/modes/shaders/armature_shape_solid_frag.glsl	source/blender/draw/engines/overlay/shaders/armature_shape_solid_frag.glsl
R072	source/blender/draw/modes/shaders/armature_shape_solid_vert.glsl	source/blender/draw/engines/overlay/shaders/armature_shape_solid_vert.glsl
R085	source/blender/draw/modes/shaders/armature_sphere_outline_vert.glsl	source/blender/draw/engines/overlay/shaders/armature_sphere_outline_vert.glsl
R095	source/blender/draw/modes/shaders/armature_sphere_solid_frag.glsl	source/blender/draw/engines/overlay/shaders/armature_sphere_solid_frag.glsl
R088	source/blender/draw/modes/shaders/armature_sphere_solid_vert.glsl	source/blender/draw/engines/overlay/shaders/armature_sphere_solid_vert.glsl
R100	source/blender/draw/modes/shaders/armature_stick_frag.glsl	source/blender/draw/engines/overlay/shaders/armature_stick_frag.glsl
R089	source/blender/draw/modes/shaders/armature_stick_vert.glsl	source/blender/draw/engines/overlay/shaders/armature_stick_vert.glsl
A	source/blender/draw/engines/overlay/shaders/armature_wire_vert.glsl
R084	source/blender/draw/modes/shaders/pose_selection_vert.glsl	source/blender/draw/engines/overlay/shaders/depth_only_vert.glsl
R094	source/blender/draw/modes/shaders/edit_curve_overlay_handle_geom.glsl	source/blender/draw/engines/overlay/shaders/edit_curve_handle_geom.glsl
R092	source/blender/draw/modes/shaders/edit_curve_overlay_handle_vert.glsl	source/blender/draw/engines/overlay/shaders/edit_curve_handle_vert.glsl
R090	source/blender/draw/modes/shaders/edit_curve_overlay_loosevert_vert.glsl	source/blender/draw/engines/overlay/shaders/edit_curve_point_vert.glsl
R089	source/blender/draw/modes/shaders/edit_curve_overlay_normals_vert.glsl	source/blender/draw/engines/overlay/shaders/edit_curve_wire_vert.glsl
A	source/blender/draw/engines/overlay/shaders/edit_lattice_point_vert.glsl
A	source/blender/draw/engines/overlay/shaders/edit_lattice_wire_vert.glsl
R100	source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_frag.glsl	source/blender/draw/engines/overlay/shaders/edit_mesh_analysis_frag.glsl
R100	source/blender/draw/modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl	source/blender/draw/engines/overlay/shaders/edit_mesh_analysis_vert.glsl
R100	source/blender/draw/modes/shaders/edit_mesh_overlay_common_lib.glsl	source/blender/draw/engines/overlay/shaders/edit_mesh_common_lib.glsl
R100	source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_frag.glsl	source/blender/draw/engines/overlay/shaders/edit_mesh_facefill_frag.glsl
R100	source/blender/draw/modes/shaders/edit_mesh_overlay_facefill_vert.glsl	source/blender/draw/engines/overlay/shaders/edit_mesh_facefill_vert.glsl
R086	source/blender/draw/modes/shaders/edit_mesh_overlay_frag.glsl	source/blender/draw/engines/overlay/shaders/edit_mesh_frag.glsl
R093	source/blender/draw/modes/shaders/edit_mesh_overlay_geom.glsl	source/blender/draw/engines/overlay/shaders/edit_mesh_geom.glsl
A	source/blender/draw/engines/overlay/shaders/edit_mesh_normal_vert.glsl
A	source/blender/draw/engines/overlay/shaders/edit_mesh_skin_root_vert.glsl
R082	source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl	source/blender/draw/engines/overlay/shaders/edit_mesh_vert.glsl
A	source/blender/draw/engines/overlay/shaders/edit_particle_point_vert.glsl
A	source/blender/draw/engines/overlay/shaders/edit_particle_strand_vert.glsl
A	source/blender/draw/engines/overlay/shaders/extra_frag.glsl
A	source/blender/draw/engines/overlay/shaders/extra_groundline_vert.glsl
R077	source/blender/draw/modes/shaders/object_loose_points_frag.glsl	source/blender/draw/engines/overlay/shaders/extra_loose_point_frag.glsl
A	source/blender/draw/engines/overlay/shaders/extra_loose_point_vert.glsl
A	source/blender/draw/engines/overlay/shaders/extra_point_vert.glsl
A	source/blender/draw/engines/overlay/shaders/extra_vert.glsl
A	source/blender/draw/engines/overlay/shaders/extra_wire_frag.glsl
A	source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl
R100	source/blender/draw/modes/shaders/overlay_face_orientation_frag.glsl	source/blender/draw/engines/overlay/shaders/facing_frag.glsl
R100	source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl	source/blender/draw/engines/overlay/shaders/facing_vert.glsl
R099	source/blender/draw/modes/shaders/object_grid_frag.glsl	source/blender/draw/engines/overlay/shaders/grid_frag.glsl
R100	source/blender/draw/modes/shaders/object_grid_vert.glsl	source/blender/draw/engines/overlay/shaders/grid_vert.glsl
A	source/blender/draw/engines/overlay/shaders/image_frag.glsl
A	source/blender/draw/engines/overlay/shaders/image_vert.glsl
R061	source/blender/draw/modes/shaders/animviz_mpath_lines_geom.glsl	source/blender/draw/engines/overlay/shaders/motion_path_line_geom.glsl
R082	source/blender/draw/modes/shaders/animviz_mpath_lines_vert.glsl	source/blender/draw/engines/overlay/shaders/motion_path_line_vert.glsl
R072	source/blender/draw/modes/shaders/animviz_mpath_points_vert.glsl	source/blender/draw/engines/overlay/shaders/motion_path_point_vert.glsl
R098	source/blender/draw/modes/shaders/object_outline_detect_frag.glsl	source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl
R100	source/blender/draw/modes/shaders/object_outline_expand_frag.glsl	source/blender/draw/engines/overlay/shaders/outline_expand_frag.glsl
R100	source/blender/draw/modes/shaders/object_lightprobe_grid_vert.glsl	source/blender/draw/engines/overlay/shaders/outline_lightprobe_grid_vert.glsl
R100	source/blender/draw/modes/shaders/object_outline_prepass_frag.glsl	source/blender/draw/engines/overlay/shaders/outline_prepass_frag.glsl
R100	source/blender/draw/modes/shaders/object_outline_prepass_geom.glsl	source/blender/draw/engines/overlay/shaders/outline_prepass_geom.glsl
R100	source/blender/draw/modes/shaders/object_outline_prepass_vert.glsl	source/blender/draw/engines/overlay/shaders/outline_prepass_vert.glsl
R100	source/blender/draw/modes/shaders/object_outline_resolve_frag.glsl	source/blender/draw/engines/overlay/shaders/outline_resolve_frag.glsl
R063	source/blender/draw/modes/shaders/paint_face_selection_vert.glsl	source/blender/draw/engines/overlay/shaders/paint_face_vert.glsl
A	source/blender/draw/engines/overlay/shaders/paint_point_vert.glsl
A	source/blender/draw/engines/overlay/shaders/paint_texture_frag.glsl
R076	source/blender/draw/modes/shaders/paint_texture_vert.glsl	source/blender/draw/engines/overlay/shaders/paint_texture_vert.glsl
R056	source/blender/draw/modes/shaders/paint_vertex_frag.glsl	source/blender/draw/engines/overlay/shaders/paint_vertcol_frag.glsl
R092	source/blender/draw/modes/shaders/paint_vertex_vert.glsl	source/blender/draw/engines/overlay/shaders/paint_vertcol_vert.glsl
R091	source/blender/draw/modes/shaders/paint_weight_frag.glsl	source/blender/draw/engines/overlay/shaders/paint_weight_frag.glsl
R091	source/blender/draw/modes/shaders/paint_weight_vert.glsl	source/blender/draw/engines/overlay/shaders/paint_weight_vert.glsl
R051	source/blender/draw/modes/shaders/paint_wire_vert.glsl	source/blender/draw/engines/overlay/shaders/paint_wire_vert.glsl
A	source/blender/draw/engines/overlay/shaders/particle_frag.glsl
A	source/blender/draw/engines/overlay/shaders/particle_vert.glsl
R064	source/blender/draw/modes/shaders/sculpt_mask_vert.glsl	source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl
R100	source/blender/draw/modes/shaders/volume_velocity_vert.glsl	source/blender/draw/engines/overlay/shaders/volume_velocity_vert.glsl
A	source/blender/draw/engines/overlay/shaders/wireframe_frag.glsl
R078	source/blender/draw/modes/shaders/overlay_face_wireframe_geom.glsl	source/blender/draw/engines/overlay/shaders/wireframe_geom.glsl
A	source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
M	source/blender/draw/engines/select/select_engine.c
M	source/blender/draw/engines/workbench/shaders/workbench_effect_fxaa_frag.glsl
M	source/blender/draw/engines/workbench/workbench_deferred.c
M	source/blender/draw/intern/DRW_render.h
D	source/blender/draw/intern/draw_anim_viz.c
D	source/blender/draw/intern/draw_armature.c
M	source/blender/draw/intern/draw_cache.c
M	source/blender/draw/intern/draw_cache.h
M	source/blender/draw/intern/draw_cache_extract_mesh.c
M	source/blender/draw/intern/draw_cache_impl_lattice.c
M	source/blender/draw/intern/draw_cache_impl_mesh.c
M	source/blender/draw/intern/draw_cache_impl_particles.c
M	source/blender/draw/intern/draw_common.c
M	source/blender/draw/intern/draw_common.h
M	source/blender/draw/intern/draw_instance_data.c
M	source/blender/draw/intern/draw_instance_data.h
M	source/blender/draw/intern/draw_manager.c
M	source/blender/draw/intern/draw_manager.h
M	source/blender/draw/intern/draw_manager_data.c
M	source/blender/draw/intern/draw_manager_exec.c
M	source/blender/draw/intern/draw_manager_text.c
M	source/blender/draw/intern/draw_manager_text.h
R100	source/blender/draw/modes/shaders/common_colormanagement_lib.glsl	source/blender/draw/intern/shaders/common_colormanagement_lib.glsl
R100	source/blender/draw/modes/shaders/common_fullscreen_vert.glsl	source/blender/draw/intern/shaders/common_fullscreen_vert.glsl
R099	source/blender/draw/modes/shaders/common_fxaa_lib.glsl	source/blender/draw/intern/shaders/common_fxaa_lib.glsl
R087	source/blender/draw/modes/shaders/common_globals_lib.glsl	source/blender/draw/intern/shaders/common_globals_lib.glsl
R100	source/blender/draw/modes/shaders/common_hair_lib.glsl	source/blender/draw/intern/shaders/common_hair_lib.glsl
R100	source/blender/draw/modes/shaders/common_hair_refine_vert.glsl	source/blender/draw/intern/shaders/common_hair_refine_vert.glsl
A	source/blender/draw/intern/shaders/common_smaa_lib.glsl
R074	source/blender/draw/modes/shaders/common_view_lib.glsl	source/blender/draw/intern/shaders/common_view_lib.glsl
A	source/blender/draw/intern/smaa_textures.h
D	source/blender/draw/modes/draw_mode_engines.h
D	source/blender/draw/modes/edit_armature_mode.c
D	source/blender/draw/modes/edit_curve_mode.c
D	source/blender/draw/modes/edit_lattice_mode.c
D	source/blender/draw/modes/edit_mesh_mode.c
D	source/blender/draw/modes/edit_mesh_mode_text.c
D	source/blender/draw/modes/edit_metaball_mode.c
D	source/blender/draw/modes/edit_text_mode.c
D	source/blender/draw/modes/object_mode.c
D	source/blender/draw/modes/overlay_mode.c
D	source/blender/draw/modes/paint_texture_mode.c
D	source/blender/draw/modes/paint_vertex_mode.c
D	source/blender/draw/modes/particle_mode.c
D	source/blender/draw/modes/pose_mode.c
D	source/blender/draw/modes/sculpt_mode.c
D	source/blender/draw/modes/shaders/armature_axes_vert.glsl
D	source/blender/draw/modes/shaders/armature_envelope_distance_frag.glsl
D	source/blender/draw/modes/shaders/armature_envelope_solid_frag.glsl
D	source/blender/draw/modes/shaders/edit_lattice_overlay_frag.glsl
D	source/blender/draw/modes/shaders/edit_lattice_overlay_loosevert_vert.glsl
D	source/blender/draw/modes/shaders/edit_mesh_overlay_ghost_clear_vert.glsl
D	source/blender/draw/modes/shaders/edit_mesh_overlay_mix_frag.glsl
D	source/blender/draw/modes/shaders/edit_mesh_skin_root_vert.glsl
D	source/blender/draw/modes/shaders/edit_normals_geom.glsl
D	source/blender/draw/modes/shaders/edit_normals_vert.glsl
D	source/blender/draw/modes/shaders/object_camera_image_frag.glsl
D	source/blender/draw/modes/shaders/object_camera_image_vert.glsl
D	source/blender/draw/modes/shaders/object_color_axes_vert.glsl
D	source/blender/draw/modes/shaders/object_empty_axes_vert.glsl
D	source/blender/draw/modes/shaders/object_empty_image_frag.glsl
D	source/blender/draw/modes/shaders/object_empty_image_vert.glsl
D	source/blender/draw/modes/shaders/object_mball_handles_vert.glsl
D	source/blender/draw/modes/shaders/object_particle_dot_frag.glsl
D	source/blender/draw/modes/shaders/object_particle_dot_vert.glsl
D	source/blender/draw/modes/shaders/object_particle_prim_vert.glsl
D	source/blender/draw/modes/shaders/overlay_face_wireframe_frag.glsl
D	source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl
D	source/blender/draw/modes/shaders/paint_face_vert.glsl
D	source/blender/draw/modes/shaders/paint_texture_frag.glsl
D	source/blender/draw/modes/shaders/paint_vert_frag.glsl
D	source/blender/draw/modes/shaders/paint_wire_frag.glsl
D	source/blender/draw/modes/shaders/particle_strand_frag.glsl
D	source/blender/draw/modes/shaders/particle_strand_vert.glsl
M	source/blender/editors/armature/armature_add.c
M	source/blender/editors/armature/armature_edit.c
M	source/blender/editors/armature/armature_relations.c
M	source/blender/editors/armature/armature_select.c
M	source/blender/editors/space_sequencer/sequencer_draw.c
M	source/blender/editors/transform/transform_generics.c
M	source/blender/editors/transform/transform_snap.c
M	source/blender/gpu/CMakeLists.txt
M	source/blender/gpu/GPU_batch.h
M	source/blender/gpu/GPU_shader.h
M	source/blender/gpu/GPU_vertex_buffer.h
M	source/blender/gpu/intern/gpu_batch.c
M	source/blender/gpu/intern/gpu_shader.c
M	source/blender/gpu/intern/gpu_vertex_buffer.c
M	source/blender/gpu/intern/gpu_viewport.c
M	source/blender/gpu/shaders/gpu_shader_2D_line_dashed_frag.glsl
D	source/blender/gpu/shaders/gpu_shader_2D_line_dashed_geom.glsl
M	source/blender/gpu/shaders/gpu_shader_2D_line_dashed_uniform_color_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_2D_line_dashed_width_geom.glsl
D	source/blender/gpu/shaders/gpu_shader_3D_groundline_geom.glsl
D	source/blender/gpu/shaders/gpu_shader_3D_groundpoint_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_3D_line_dashed_uniform_color_legacy_vert.glsl
M	source/blender/gpu/shaders/gpu_shader_3D_line_dashed_uniform_color_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_instance_camera_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_instance_distance_line_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_instance_edges_variying_color_geom.glsl
D	source/blender/gpu/shaders/gpu_shader_instance_edges_variying_color_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_instance_objectspace_variying_color_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_instance_screen_aligned_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_instance_screenspace_variying_color_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_instance_variying_size_variying_id_vert.glsl
D	source/blender/gpu/shaders/gpu_shader_instance_vert.glsl
M	source/blender/gpu/shaders/gpu_shader_text_frag.glsl
D	source/blender/gpu/shaders/gpu_shader_text_geom.glsl
D	source/blender/gpu/shaders/gpu_shader_text_simple_geom.glsl
D	source/blender/gpu/shaders/gpu_shader_text_simple_vert.glsl
M	source/blender/gpu/shaders/gpu_shader_text_vert.glsl
M	source/blender/gpu/shaders/material/gpu_shader_material_normal_map.glsl
M	source/blender/makesdna/DNA_world_types.h

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

diff --git a/release/scripts/startup/bl_ui/properties_data_lightprobe.py b/release/scripts/startup/bl_ui/properties_data_lightprobe.py
index d6fd0cb6ec2..e8244c9c107 100644
--- a/release/scripts/startup/bl_ui/properties_data_lightprobe.py
+++ b/release/scripts/startup/bl_ui/properties_data_lightprobe.py
@@ -168,6 +168,7 @@ class DATA_PT_lightprobe_display(DataButtonsPanel, Panel):
 
         if probe.type == 'PLANAR':
             col.prop(ob, "empty_display_size", text="Arrow Size")
+            col.prop(probe, "show_influence")
             col.prop(probe, "show_data")
 
         if probe.type in {'GRID', 'CUBEMAP'}:
diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index 1c06dfd3f70..25ea0770f8b 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -96,7 +96,13 @@ static void blf_batch_draw_init(void)
   GPU_vertbuf_attr_get_raw_data(g_batch.verts, g_batch.col_loc, &g_batch.col_step);
   g_batch.glyph_len = 0;
 
-  g_batch.batch = GPU_batch_create_ex(GPU_PRIM_POINTS, g_batch.verts, NULL, GPU_BATCH_OWNS_VBO);
+  /* A dummy vbo containing 4 points, attribs are not used.  */
+  GPUVertBuf *vbo = GPU_vertbuf_create_with_format(&format);
+  GPU_vertbuf_data_alloc(vbo, 4);
+
+  /* We render a quad as a triangle strip and instance it for each glyph. */
+  g_batch.batch = GPU_batch_create_ex(GPU_PRIM_TRI_STRIP, vbo, NULL, GPU_BATCH_OWNS_VBO);
+  GPU_batch_instbuf_set(g_batch.batch, g_batch.verts, true);
 }
 
 static void blf_batch_draw_exit(void)
@@ -188,8 +194,7 @@ void blf_batch_draw(void)
   GPU_vertbuf_data_len_set(g_batch.verts, g_batch.glyph_len);
   GPU_vertbuf_use(g_batch.verts); /* send data */
 
-  eGPUBuiltinShader shader = (g_batch.simple_shader) ? GPU_SHADER_TEXT_SIMPLE : GPU_SHADER_TEXT;
-  GPU_batch_program_set_builtin(g_batch.batch, shader);
+  GPU_batch_program_set_builtin(g_batch.batch, GPU_SHADER_TEXT);
   GPU_batch_uniform_1i(g_batch.batch, "glyph", 0);
   GPU_batch_draw(g_batch.batch);
 
diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt
index dc5508340de..7d996f3c535 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -21,7 +21,6 @@
 set(INC
   .
   intern
-  modes
 
   ../blenfont
   ../blenkernel
@@ -49,8 +48,6 @@ set(INC_SYS
 )
 
 set(SRC
-  intern/draw_anim_viz.c
-  intern/draw_armature.c
   intern/draw_cache.c
   intern/draw_cache_extract_mesh.c
   intern/draw_cache_impl_curve.c
@@ -72,20 +69,6 @@ set(SRC
   intern/draw_manager_texture.c
   intern/draw_select_buffer.c
   intern/draw_view.c
-  modes/edit_armature_mode.c
-  modes/edit_curve_mode.c
-  modes/edit_lattice_mode.c
-  modes/edit_mesh_mode.c
-  modes/edit_mesh_mode_text.c
-  modes/edit_metaball_mode.c
-  modes/edit_text_mode.c
-  modes/object_mode.c
-  modes/overlay_mode.c
-  modes/paint_texture_mode.c
-  modes/paint_vertex_mode.c
-  modes/particle_mode.c
-  modes/pose_mode.c
-  modes/sculpt_mode.c
   engines/basic/basic_engine.c
   engines/eevee/eevee_bloom.c
   engines/eevee/eevee_data.c
@@ -136,6 +119,25 @@ set(SRC
   engines/gpencil/gpencil_shader_fx.c
   engines/select/select_draw_utils.c
   engines/select/select_engine.c
+  engines/overlay/overlay_antialiasing.c
+  engines/overlay/overlay_armature.c
+  engines/overlay/overlay_engine.c
+  engines/overlay/overlay_edit_curve.c
+  engines/overlay/overlay_edit_text.c
+  engines/overlay/overlay_edit_mesh.c
+  engines/overlay/overlay_extra.c
+  engines/overlay/overlay_facing.c
+  engines/overlay/overlay_grid.c
+  engines/overlay/overlay_image.c
+  engines/overlay/overlay_lattice.c
+  engines/overlay/overlay_metaball.c
+  engines/overlay/overlay_motion_path.c
+  engines/overlay/overlay_outline.c
+  engines/overlay/overlay_paint.c
+  engines/overlay/overlay_particle.c
+  engines/overlay/overlay_shader.c
+  engines/overlay/overlay_sculpt.c
+  engines/overlay/overlay_wireframe.c
 
   DRW_engine.h
   DRW_select_buffer.h
@@ -152,8 +154,7 @@ set(SRC
   intern/draw_manager_profiling.h
   intern/draw_manager_text.h
   intern/draw_view.h
-  modes/draw_mode_engines.h
-  modes/edit_mesh_mode_intern.h
+  intern/smaa_textures.h
   engines/basic/basic_engine.h
   engines/eevee/eevee_engine.h
   engines/eevee/eevee_lightcache.h
@@ -164,6 +165,8 @@ set(SRC
   engines/workbench/workbench_private.h
   engines/select/select_engine.h
   engines/select/select_private.h
+  engines/overlay/overlay_engine.h
+  engines/overlay/overlay_private.h
 )
 
 set(LIB
@@ -261,90 +264,14 @@ data_to_c_simple(engines/workbench/shaders/workbench_volume_vert.glsl SRC)
 data_to_c_simple(engines/workbench/shaders/workbench_volume_frag.glsl SRC)
 data_to_c_simple(engines/workbench/shaders/workbench_world_light_lib.glsl SRC)
 
-data_to_c_simple(modes/shaders/common_colormanagement_lib.glsl SRC)
-data_to_c_simple(modes/shaders/common_globals_lib.glsl SRC)
-data_to_c_simple(modes/shaders/common_hair_lib.glsl SRC)
-data_to_c_simple(modes/shaders/common_hair_refine_vert.glsl SRC)
-data_to_c_simple(modes/shaders/common_view_lib.glsl SRC)
-data_to_c_simple(modes/shaders/common_fxaa_lib.glsl SRC)
-data_to_c_simple(modes/shaders/common_fullscreen_vert.glsl SRC)
-data_to_c_simple(modes/shaders/animviz_mpath_lines_vert.glsl SRC)
-data_to_c_simple(modes/shaders/animviz_mpath_lines_geom.glsl SRC)
-data_to_c_simple(modes/shaders/animviz_mpath_points_vert.glsl SRC)
-data_to_c_simple(modes/shaders/armature_axes_vert.glsl SRC)
-data_to_c_simple(modes/shaders/armature_sphere_solid_vert.glsl SRC)
-data_to_c_simple(modes/shaders/armature_sphere_solid_frag.glsl SRC)
-data_to_c_simple(modes/shaders/armature_sphere_outline_vert.glsl SRC)
-data_to_c_simple(modes/shaders/armature_envelope_solid_vert.glsl SRC)
-data_to_c_simple(modes/shaders/armature_envelope_solid_frag.glsl SRC)
-data_to_c_simple(modes/shaders/armature_envelope_outline_vert.glsl SRC)
-data_to_c_simple(modes/shaders/armature_envelope_distance_frag.glsl SRC)
-data_to_c_simple(modes/shaders/armature_shape_solid_vert.glsl SRC)
-data_to_c_simple(modes/shaders/armature_shape_solid_frag.glsl SRC)
-data_to_c_simple(modes/shaders/armature_shape_outline_vert.glsl SRC)
-data_to_c_simple(modes/shaders/armature_shape_outline_geom.glsl SRC)
-data_to_c_simple(modes/shaders/armature_stick_vert.glsl SRC)
-data_to_c_simple(modes/shaders/armature_stick_frag.glsl SRC)
-data_to_c_simple(modes/shaders/armature_dof_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_overlay_common_lib.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_overlay_frag.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_overlay_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_overlay_geom.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_overlay_mix_frag.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_overlay_facefill_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_overlay_facefill_frag.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_overlay_mesh_analysis_frag.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_overlay_mesh_analysis_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_mesh_skin_root_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_curve_overlay_handle_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_curve_overlay_handle_geom.glsl SRC)
-data_to_c_simple(modes/shaders/edit_curve_overlay_loosevert_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_curve_overlay_normals_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_lattice_overlay_frag.glsl SRC)
-data_to_c_simple(modes/shaders/edit_lattice_overlay_loosevert_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_normals_vert.glsl SRC)
-data_to_c_simple(modes/shaders/edit_normals_geom.glsl SRC)
-data_to_c_simple(modes/shaders/overlay_face_orientation_frag.glsl SRC)
-data_to_c_simple(modes/shaders/overlay_face_orientation_vert.glsl SRC)
-data_to_c_simple(modes/shaders/overlay_face_wireframe_vert.glsl SRC)
-data_to_c_simple(modes/shaders/overlay_face_wireframe_geom.glsl SRC)
-data_to_c_simple(modes/shaders/overlay_face_wireframe_frag.glsl SRC)
-data_to_c_simple(modes/shaders/object_camera_image_frag.glsl SRC)
-data_to_c_simple(modes/shaders/object_camera_image_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_color_axes_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_empty_axes_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_empty_image_frag.glsl SRC)
-data_to_c_simple(modes/shaders/object_empty_image_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_outline_resolve_frag.glsl SRC)
-data_to_c_simple(modes/shaders/object_outline_expand_frag.glsl SRC)
-data_to_c_simple(modes/shaders/object_outline_detect_frag.glsl SRC)
-data_to_c_simple(modes/shaders/object_outline_prepass_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_outline_prepass_geom.glsl SRC)
-data_to_c_simple(modes/shaders/object_outline_prepass_frag.glsl SRC)
-data_to_c_simple(modes/shaders/object_grid_frag.glsl SRC)
-data_to_c_simple(modes/shaders/object_grid_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_lightprobe_grid_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_mball_handles_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_particle_prim_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_particle_dot_vert.glsl SRC)
-data_to_c_simple(modes/shaders/object_particle_dot_frag.glsl SRC)
-data_to_c_simple(modes/shaders/object_loose_points_frag.glsl SRC)
-data_to_c_simple(modes/shaders/paint_texture_frag.glsl SRC)
-data_to_c_simple(modes/shaders/paint_texture_vert.glsl SRC)
-data_to_c_simple(modes/shaders/paint_vertex_frag.glsl SRC)
-data_to_c_simple(modes/shaders/paint_vertex_vert.glsl SRC)
-data_to_c_simple(modes/shaders/paint_weight_frag.glsl SRC)
-data_to_c_simple(modes/shaders/paint_weight_vert.glsl SRC)
-data_to_c_simple(modes/shaders/paint_face_selection_vert.glsl SRC)
-data_to_c_simple(modes/shaders/paint_face_vert.glsl SRC)
-data_to_c_simple(modes/shaders/paint_wire_frag.glsl SRC)
-data_to_c_simple(modes/shaders/paint_wire_vert.glsl SRC)
-data_to_c_simple(modes/shaders/paint_vert_frag.glsl SRC)
-data_to_c_simple(modes/shaders/particle_strand_frag.glsl SRC)
-data_to_c_simple(modes/shaders/particle_strand_vert.glsl SRC)
-data_to_c_simple(modes/shaders/pose_selection_vert.glsl SRC)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list