156 "overlay_depth_only");
168 "overlay_edit_mesh_depth");
180 "overlay_edit_mesh_vert");
190 if (*sh ==
nullptr) {
193 (use_flat_interp ?
"overlay_edit_mesh_edge_flat_clipped" :
194 "overlay_edit_mesh_edge_clipped") :
195 (use_flat_interp ?
"overlay_edit_mesh_edge_flat" :
"overlay_edit_mesh_edge"));
207 "overlay_armature_sphere_outline");
212 "overlay_armature_sphere_solid");
224 "overlay_armature_shape_outline");
229 "overlay_armature_shape_solid");
241 "overlay_armature_shape_wire");
253 "overlay_armature_envelope_outline_clipped" :
254 "overlay_armature_envelope_outline");
259 "overlay_armature_envelope_solid");
271 "overlay_armature_stick");
283 "overlay_armature_dof");
295 "overlay_armature_dof");
307 "overlay_armature_wire");
319 "overlay_edit_curve_handle");
331 "overlay_edit_curve_point");
343 "overlay_edit_curves_handle");
355 "overlay_edit_curve_wire");
367 "overlay_edit_gpencil_guide_point");
379 "overlay_edit_gpencil_point");
391 "overlay_edit_gpencil_wire");
403 "overlay_edit_lattice_point");
415 "overlay_edit_lattice_wire");
427 "overlay_edit_mesh_face");
439 "overlay_edit_mesh_facedot");
451 "overlay_edit_mesh_normal");
463 "overlay_edit_mesh_analysis");
475 "overlay_edit_mesh_skin_root");
487 "overlay_edit_particle_strand");
499 "overlay_edit_particle_point");
512 (is_select ?
"overlay_extra_select_clipped" :
"overlay_extra_clipped") :
513 (is_select ?
"overlay_extra_select" :
"overlay_extra"));
525 "overlay_extra_grid");
537 "overlay_extra_groundline");
548 const char *info_name =
nullptr;
551 info_name =
"overlay_extra_wire_select_clipped";
554 info_name = use_object ?
"overlay_extra_wire_object_clipped" :
555 "overlay_extra_wire_clipped";
560 info_name =
"overlay_extra_wire_select";
563 info_name = use_object ?
"overlay_extra_wire_object" :
"overlay_extra_wire";
578 "overlay_extra_loose_point");
590 "overlay_extra_point");
615 false ?
"overlay_gpencil_canvas_clipped" :
"overlay_gpencil_canvas");
652 "overlay_edit_uv_stencil_image");
685 "overlay_motion_path_line");
697 "overlay_motion_path_point");
709 "overlay_outline_prepass_wire");
714 "overlay_outline_prepass_mesh");
726 "overlay_outline_prepass_curves");
738 "overlay_outline_prepass_gpencil");
750 "overlay_outline_prepass_pointcloud_clipped" :
751 "overlay_outline_prepass_pointcloud");
772 "overlay_paint_face");
784 "overlay_paint_point");
796 "overlay_paint_texture");
808 "overlay_paint_vertcol");
815 const char *info_name[2][2] = {
816 {
"overlay_paint_weight",
"overlay_paint_weight_fake_shading"},
817 {
"overlay_paint_weight_clipped",
"overlay_paint_weight_fake_shading_clipped"},
819 int index = shading ? 1 : 0;
824 info_name[draw_ctx->
sh_cfg][index]);
836 "overlay_paint_wire");
848 "overlay_particle_dot");
860 "overlay_particle_shape");
872 "overlay_sculpt_mask");
884 "overlay_sculpt_curves_selection");
896 "overlay_sculpt_curves_cage");
908 "overlay_viewer_attribute_mesh");
920 "overlay_viewer_attribute_pointcloud_clipped" :
921 "overlay_viewer_attribute_pointcloud");
933 "overlay_viewer_attribute_curve");
945 "overlay_viewer_attribute_curves");
957 "overlay_uniform_color");
969 "overlay_uniform_color_pointcloud");
979 "overlay_volume_velocity_needle");
983 "overlay_volume_velocity_mac");
987 "overlay_volume_velocity_streamline");
1004 "overlay_volume_gridlines_flags");
1008 "overlay_volume_gridlines_range");
1012 "overlay_volume_gridlines_flat");
1015 if (color_with_flags) {
1032 "overlay_wireframe_select");
1044 "overlay_wireframe_custom_depth_clipped" :
1045 "overlay_wireframe_custom_depth") :
1047 "overlay_wireframe"));
1079 "overlay_edit_uv_edges_select");
1117 "overlay_edit_uv_stretching_area");
1128 "overlay_edit_uv_stretching_angle");
1139 "overlay_edit_uv_tiled_image_borders");
1152 {
"pos", DRW_ATTR_FLOAT, 3},
1156 {
"pos", DRW_ATTR_FLOAT, 3},
1157 {
"color", DRW_ATTR_FLOAT, 4},
1161 {
"inst_pos", DRW_ATTR_FLOAT, 3},
1165 {
"color", DRW_ATTR_FLOAT, 4},
1166 {
"inst_obmat", DRW_ATTR_FLOAT, 16},
1170 {
"pos", DRW_ATTR_FLOAT, 3},
1171 {
"colorid", DRW_ATTR_INT, 1},
1175 {
"pos", DRW_ATTR_FLOAT, 3},
1176 {
"vertex_color", DRW_ATTR_FLOAT, 4},
1180 {
"inst_obmat", DRW_ATTR_FLOAT, 16},
1184 {
"boneStart", DRW_ATTR_FLOAT, 3},
1185 {
"boneEnd", DRW_ATTR_FLOAT, 3},
1186 {
"wireColor", DRW_ATTR_FLOAT, 4},
1187 {
"boneColor", DRW_ATTR_FLOAT, 4},
1188 {
"headColor", DRW_ATTR_FLOAT, 4},
1189 {
"tailColor", DRW_ATTR_FLOAT, 4},
1193 {
"headSphere", DRW_ATTR_FLOAT, 4},
1194 {
"tailSphere", DRW_ATTR_FLOAT, 4},
1195 {
"outlineColorSize", DRW_ATTR_FLOAT, 4},
1196 {
"xAxis", DRW_ATTR_FLOAT, 3},
1200 {
"headSphere", DRW_ATTR_FLOAT, 4},
1201 {
"tailSphere", DRW_ATTR_FLOAT, 4},
1202 {
"xAxis", DRW_ATTR_FLOAT, 3},
1206 {
"headSphere", DRW_ATTR_FLOAT, 4},
1207 {
"tailSphere", DRW_ATTR_FLOAT, 4},
1208 {
"boneColor", DRW_ATTR_FLOAT, 3},
1209 {
"stateColor", DRW_ATTR_FLOAT, 3},
1210 {
"xAxis", DRW_ATTR_FLOAT, 3},
1218 for (
int sh_data_index = 0; sh_data_index <
ARRAY_SIZE(
e_data.sh_data); sh_data_index++) {
1226 for (
int i = 0; i <
sizeof(
g_formats) /
sizeof(
void *); i++,
format++) {
#define DRW_shgroup_instance_format(format,...)
#define DRW_SHADER_FREE_SAFE(shader)
GPUShader * GPU_shader_create_from_info_name(const char *info_name)
#define GPU_SHADER_CFG_LEN
struct GPUShader GPUShader
const DRWContextState * DRW_context_state_get()
GPUShader * OVERLAY_shader_edit_uv_edges_for_edge_select_get()
GPUShader * OVERLAY_shader_edit_uv_face_dots_get()
GPUShader * OVERLAY_shader_extra_wire(bool use_object, bool is_select)
GPUShader * OVERLAY_shader_armature_wire()
GPUShader * OVERLAY_shader_edit_lattice_point()
GPUShader * OVERLAY_shader_edit_uv_stencil_image()
GPUShader * OVERLAY_shader_edit_mesh_facedot()
GPUShader * OVERLAY_shader_edit_uv_mask_image()
GPUShader * OVERLAY_shader_wireframe(bool custom_bias)
GPUShader * OVERLAY_shader_edit_gpencil_wire()
GPUShader * OVERLAY_shader_edit_uv_verts_get()
GPUShader * OVERLAY_shader_uniform_color()
GPUShader * OVERLAY_shader_sculpt_mask()
GPUShader * OVERLAY_shader_armature_stick()
GPUShader * OVERLAY_shader_edit_mesh_normal()
GPUShader * OVERLAY_shader_outline_prepass(bool use_wire)
GPUShader * OVERLAY_shader_edit_gpencil_point()
GPUShader * OVERLAY_shader_armature_shape(bool use_outline)
GPUShader * OVERLAY_shader_outline_prepass_pointcloud()
GPUShader * OVERLAY_shader_paint_texture()
GPUShader * OVERLAY_shader_paint_weight(const bool shading)
static struct @244 e_data
GPUShader * OVERLAY_shader_paint_wire()
GPUShader * OVERLAY_shader_edit_particle_point()
GPUShader * OVERLAY_shader_clipbound()
GPUShader * OVERLAY_shader_edit_uv_tiled_image_borders_get()
GPUShader * OVERLAY_shader_edit_uv_stretching_angle_get()
void OVERLAY_shader_free()
GPUShader * OVERLAY_shader_uniform_color_pointcloud()
OVERLAY_Shaders sh_data[GPU_SHADER_CFG_LEN]
GPUShader * OVERLAY_shader_edit_curve_handle()
GPUShader * OVERLAY_shader_sculpt_curves_cage()
GPUShader * OVERLAY_shader_image()
GPUShader * OVERLAY_shader_armature_sphere(bool use_outline)
GPUShader * OVERLAY_shader_facing()
GPUShader * OVERLAY_shader_edit_mesh_depth()
GPUShader * OVERLAY_shader_edit_gpencil_guide_point()
GPUShader * OVERLAY_shader_grid_background()
GPUShader * OVERLAY_shader_edit_mesh_edge(bool use_flat_interp)
GPUShader * OVERLAY_shader_armature_shape_wire()
GPUShader * OVERLAY_shader_volume_gridlines(bool color_with_flags, bool color_range)
GPUShader * OVERLAY_shader_extra_grid()
GPUShader * OVERLAY_shader_viewer_attribute_curve()
GPUShader * OVERLAY_shader_armature_degrees_of_freedom_wire()
GPUShader * OVERLAY_shader_volume_velocity(bool use_needle, bool use_mac)
GPUShader * OVERLAY_shader_paint_face()
GPUShader * OVERLAY_shader_extra_point()
GPUShader * OVERLAY_shader_particle_shape()
GPUShader * OVERLAY_shader_armature_degrees_of_freedom_solid()
GPUShader * OVERLAY_shader_outline_detect()
GPUShader * OVERLAY_shader_edit_uv_edges_get()
GPUShader * OVERLAY_shader_edit_curve_wire()
GPUShader * OVERLAY_shader_edit_mesh_skin_root()
GPUShader * OVERLAY_shader_viewer_attribute_pointcloud()
GPUShader * OVERLAY_shader_motion_path_vert()
GPUShader * OVERLAY_shader_background()
GPUShader * OVERLAY_shader_extra_loose_point()
GPUShader * OVERLAY_shader_edit_mesh_analysis()
GPUShader * OVERLAY_shader_grid()
GPUShader * OVERLAY_shader_sculpt_curves_selection()
GPUShader * OVERLAY_shader_edit_particle_strand()
GPUShader * OVERLAY_shader_particle_dot()
GPUShader * OVERLAY_shader_paint_vertcol()
GPUShader * OVERLAY_shader_motion_path_line()
GPUShader * OVERLAY_shader_wireframe_select()
GPUShader * OVERLAY_shader_extra(bool is_select)
GPUShader * OVERLAY_shader_edit_curves_handle()
GPUShader * OVERLAY_shader_edit_uv_face_get()
GPUShader * OVERLAY_shader_xray_fade()
GPUShader * OVERLAY_shader_outline_prepass_gpencil()
GPUShader * OVERLAY_shader_edit_mesh_vert()
GPUShader * OVERLAY_shader_depth_only()
GPUShader * OVERLAY_shader_edit_uv_stretching_area_get()
GPUShader * OVERLAY_shader_antialiasing()
GPUShader * OVERLAY_shader_armature_envelope(bool use_outline)
OVERLAY_InstanceFormats * OVERLAY_shader_instance_formats_get()
GPUShader * OVERLAY_shader_edit_curve_point()
GPUShader * OVERLAY_shader_edit_mesh_face()
GPUShader * OVERLAY_shader_gpencil_canvas()
GPUShader * OVERLAY_shader_outline_prepass_curves()
GPUShader * OVERLAY_shader_viewer_attribute_curves()
GPUShader * OVERLAY_shader_paint_point()
GPUShader * OVERLAY_shader_extra_groundline()
GPUShader * OVERLAY_shader_edit_lattice_wire()
GPUShader * OVERLAY_shader_viewer_attribute_mesh()
GPUShader * OVERLAY_shader_grid_image()
static OVERLAY_InstanceFormats g_formats
GPUShader * uniform_color_pointcloud
GPUShader * edit_curve_handle
GPUShader * edit_uv_stencil_image
GPUShader * edit_mesh_face
GPUShader * edit_uv_face_dots
GPUShader * paint_weight[2]
GPUShader * volume_gridlines_sh
GPUShader * armature_envelope_solid
GPUShader * edit_uv_faces
GPUShader * edit_particle_strand
GPUShader * volume_velocity_mac_sh
GPUShader * paint_vertcol
GPUShader * wireframe_select
GPUShader * edit_mesh_normals
GPUShader * grid_background
GPUShader * outline_prepass_pointcloud
GPUShader * edit_uv_verts
GPUShader * edit_uv_stretching_angle
GPUShader * motion_path_vert
GPUShader * outline_detect
GPUShader * sculpt_curves_cage
GPUShader * edit_mesh_depth
GPUShader * edit_mesh_edge_flat
GPUShader * edit_mesh_skin_root
GPUShader * edit_mesh_fnormals
GPUShader * edit_curve_point
GPUShader * armature_shape_solid
GPUShader * volume_gridlines_flags_sh
GPUShader * edit_mesh_edge
GPUShader * outline_prepass_gpencil
GPUShader * sculpt_curves_selection
GPUShader * viewer_attribute_curve
GPUShader * edit_uv_tiled_image_borders
GPUShader * edit_gpencil_guide_point
GPUShader * uniform_color
GPUShader * edit_mesh_facedot
GPUShader * edit_uv_edges
GPUShader * outline_prepass_curves
GPUShader * particle_shape
GPUShader * viewer_attribute_mesh
GPUShader * outline_prepass
GPUShader * armature_sphere_solid
GPUShader * edit_gpencil_wire
GPUShader * armature_shape_wire
GPUShader * edit_lattice_point
GPUShader * extra_loose_point
GPUShader * edit_lattice_wire
GPUShader * armature_envelope_outline
GPUShader * extra_lightprobe_grid
GPUShader * paint_texture
GPUShader * edit_mesh_vert
GPUShader * edit_mesh_analysis
GPUShader * extra_groundline
GPUShader * edit_curves_handle
GPUShader * edit_gpencil_point
GPUShader * armature_shape_outline
GPUShader * edit_uv_edges_for_edge_select
GPUShader * volume_velocity_needle_sh
GPUShader * extra_wire[2]
GPUShader * armature_stick
GPUShader * outline_prepass_wire
GPUShader * viewer_attribute_curves
GPUShader * edit_uv_mask_image
GPUShader * pointcloud_dot
GPUShader * armature_dof_wire
GPUShader * armature_wire
GPUShader * edit_particle_point
GPUShader * volume_velocity_sh
GPUShader * edit_mesh_vnormals
GPUShader * edit_curve_wire
GPUShader * extra_wire_select
GPUShader * armature_dof_solid
GPUShader * volume_gridlines_range_sh
GPUShader * gpencil_canvas
GPUShader * edit_uv_stretching_area
GPUShader * armature_sphere_outline
GPUShader * motion_path_line
GPUShader * viewer_attribute_pointcloud