156 "overlay_depth_only");
165 if (!
sh_data->edit_mesh_depth) {
168 "overlay_edit_mesh_depth");
170 return sh_data->edit_mesh_depth;
177 if (!
sh_data->edit_mesh_vert) {
180 "overlay_edit_mesh_vert");
182 return sh_data->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"));
204 if (use_outline && !
sh_data->armature_sphere_outline) {
207 "overlay_armature_sphere_outline");
209 else if (!
sh_data->armature_sphere_solid) {
212 "overlay_armature_sphere_solid");
214 return use_outline ?
sh_data->armature_sphere_outline :
sh_data->armature_sphere_solid;
221 if (use_outline && !
sh_data->armature_shape_outline) {
224 "overlay_armature_shape_outline");
226 else if (!
sh_data->armature_shape_solid) {
229 "overlay_armature_shape_solid");
231 return use_outline ?
sh_data->armature_shape_outline :
sh_data->armature_shape_solid;
238 if (!
sh_data->armature_shape_wire) {
241 "overlay_armature_shape_wire");
243 return sh_data->armature_shape_wire;
250 if (use_outline && !
sh_data->armature_envelope_outline) {
253 "overlay_armature_envelope_outline_clipped" :
254 "overlay_armature_envelope_outline");
256 else if (!
sh_data->armature_envelope_solid) {
259 "overlay_armature_envelope_solid");
261 return use_outline ?
sh_data->armature_envelope_outline :
sh_data->armature_envelope_solid;
268 if (!
sh_data->armature_stick) {
271 "overlay_armature_stick");
273 return sh_data->armature_stick;
280 if (!
sh_data->armature_dof_wire) {
283 "overlay_armature_dof");
285 return sh_data->armature_dof_wire;
292 if (!
sh_data->armature_dof_solid) {
295 "overlay_armature_dof");
297 return sh_data->armature_dof_solid;
307 "overlay_armature_wire");
316 if (!
sh_data->edit_curve_handle) {
319 "overlay_edit_curve_handle");
321 return sh_data->edit_curve_handle;
328 if (!
sh_data->edit_curve_point) {
331 "overlay_edit_curve_point");
333 return sh_data->edit_curve_point;
340 if (!
sh_data->edit_curves_handle) {
343 "overlay_edit_curves_handle");
345 return sh_data->edit_curves_handle;
352 if (!
sh_data->edit_curve_wire) {
355 "overlay_edit_curve_wire");
357 return sh_data->edit_curve_wire;
364 if (!
sh_data->edit_gpencil_guide_point) {
367 "overlay_edit_gpencil_guide_point");
369 return sh_data->edit_gpencil_guide_point;
376 if (!
sh_data->edit_gpencil_point) {
379 "overlay_edit_gpencil_point");
381 return sh_data->edit_gpencil_point;
388 if (!
sh_data->edit_gpencil_wire) {
391 "overlay_edit_gpencil_wire");
393 return sh_data->edit_gpencil_wire;
400 if (!
sh_data->edit_lattice_point) {
403 "overlay_edit_lattice_point");
405 return sh_data->edit_lattice_point;
412 if (!
sh_data->edit_lattice_wire) {
415 "overlay_edit_lattice_wire");
417 return sh_data->edit_lattice_wire;
424 if (!
sh_data->edit_mesh_face) {
427 "overlay_edit_mesh_face");
429 return sh_data->edit_mesh_face;
436 if (!
sh_data->edit_mesh_facedot) {
439 "overlay_edit_mesh_facedot");
441 return sh_data->edit_mesh_facedot;
448 if (!
sh_data->edit_mesh_normals) {
451 "overlay_edit_mesh_normal");
453 return sh_data->edit_mesh_normals;
460 if (!
sh_data->edit_mesh_analysis) {
463 "overlay_edit_mesh_analysis");
465 return sh_data->edit_mesh_analysis;
472 if (!
sh_data->edit_mesh_skin_root) {
475 "overlay_edit_mesh_skin_root");
477 return sh_data->edit_mesh_skin_root;
484 if (!
sh_data->edit_particle_strand) {
487 "overlay_edit_particle_strand");
489 return sh_data->edit_particle_strand;
496 if (!
sh_data->edit_particle_point) {
499 "overlay_edit_particle_point");
501 return sh_data->edit_particle_point;
512 (is_select ?
"overlay_extra_select_clipped" :
"overlay_extra_clipped") :
513 (is_select ?
"overlay_extra_select" :
"overlay_extra"));
522 if (!
sh_data->extra_lightprobe_grid) {
525 "overlay_extra_grid");
527 return sh_data->extra_lightprobe_grid;
534 if (!
sh_data->extra_groundline) {
537 "overlay_extra_groundline");
539 return sh_data->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";
575 if (!
sh_data->extra_loose_point) {
578 "overlay_extra_loose_point");
580 return sh_data->extra_loose_point;
590 "overlay_extra_point");
611 if (!
sh_data->gpencil_canvas) {
615 false ?
"overlay_gpencil_canvas_clipped" :
"overlay_gpencil_canvas");
617 return sh_data->gpencil_canvas;
632 if (!
sh_data->grid_background) {
635 return sh_data->grid_background;
650 if (!
sh_data->edit_uv_stencil_image) {
652 "overlay_edit_uv_stencil_image");
654 return sh_data->edit_uv_stencil_image;
660 if (!
sh_data->edit_uv_mask_image) {
663 return sh_data->edit_uv_mask_image;
682 if (!
sh_data->motion_path_line) {
685 "overlay_motion_path_line");
687 return sh_data->motion_path_line;
694 if (!
sh_data->motion_path_vert) {
697 "overlay_motion_path_point");
699 return sh_data->motion_path_vert;
706 if (use_wire && !
sh_data->outline_prepass_wire) {
709 "overlay_outline_prepass_wire");
711 else if (!
sh_data->outline_prepass) {
714 "overlay_outline_prepass_mesh");
716 return use_wire ?
sh_data->outline_prepass_wire :
sh_data->outline_prepass;
723 if (!
sh_data->outline_prepass_curves) {
726 "overlay_outline_prepass_curves");
728 return sh_data->outline_prepass_curves;
735 if (!
sh_data->outline_prepass_gpencil) {
738 "overlay_outline_prepass_gpencil");
740 return sh_data->outline_prepass_gpencil;
747 if (!
sh_data->outline_prepass_pointcloud) {
750 "overlay_outline_prepass_pointcloud_clipped" :
751 "overlay_outline_prepass_pointcloud");
753 return sh_data->outline_prepass_pointcloud;
759 if (!
sh_data->outline_detect) {
762 return sh_data->outline_detect;
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;
822 if (!
sh_data->paint_weight[index]) {
824 info_name[draw_ctx->
sh_cfg][index]);
826 return sh_data->paint_weight[index];
836 "overlay_paint_wire");
848 "overlay_particle_dot");
857 if (!
sh_data->particle_shape) {
860 "overlay_particle_shape");
862 return sh_data->particle_shape;
872 "overlay_sculpt_mask");
881 if (!
sh_data->sculpt_curves_selection) {
884 "overlay_sculpt_curves_selection");
886 return sh_data->sculpt_curves_selection;
893 if (!
sh_data->sculpt_curves_cage) {
896 "overlay_sculpt_curves_cage");
898 return sh_data->sculpt_curves_cage;
905 if (!
sh_data->viewer_attribute_mesh) {
908 "overlay_viewer_attribute_mesh");
910 return sh_data->viewer_attribute_mesh;
917 if (!
sh_data->viewer_attribute_pointcloud) {
920 "overlay_viewer_attribute_pointcloud_clipped" :
921 "overlay_viewer_attribute_pointcloud");
923 return sh_data->viewer_attribute_pointcloud;
930 if (!
sh_data->viewer_attribute_curve) {
933 "overlay_viewer_attribute_curve");
935 return sh_data->viewer_attribute_curve;
942 if (!
sh_data->viewer_attribute_curves) {
945 "overlay_viewer_attribute_curves");
947 return sh_data->viewer_attribute_curves;
957 "overlay_uniform_color");
966 if (!
sh_data->uniform_color_pointcloud) {
969 "overlay_uniform_color_pointcloud");
971 return sh_data->uniform_color_pointcloud;
977 if (use_needle && !
sh_data->volume_velocity_needle_sh) {
979 "overlay_volume_velocity_needle");
981 else if (use_mac && !
sh_data->volume_velocity_mac_sh) {
983 "overlay_volume_velocity_mac");
985 else if (!
sh_data->volume_velocity_sh) {
987 "overlay_volume_velocity_streamline");
991 return sh_data->volume_velocity_needle_sh;
994 return sh_data->volume_velocity_mac_sh;
996 return sh_data->volume_velocity_sh;
1002 if (!
sh_data->volume_gridlines_flags_sh && color_with_flags) {
1004 "overlay_volume_gridlines_flags");
1006 else if (!
sh_data->volume_gridlines_range_sh && color_range) {
1008 "overlay_volume_gridlines_range");
1010 else if (!
sh_data->volume_gridlines_sh) {
1012 "overlay_volume_gridlines_flat");
1015 if (color_with_flags) {
1016 return sh_data->volume_gridlines_flags_sh;
1019 return sh_data->volume_gridlines_range_sh;
1022 return sh_data->volume_gridlines_sh;
1029 if (!
sh_data->wireframe_select) {
1032 "overlay_wireframe_select");
1034 return sh_data->wireframe_select;
1041 if (!
sh_data->wireframe[custom_bias]) {
1044 "overlay_wireframe_custom_depth_clipped" :
1045 "overlay_wireframe_custom_depth") :
1047 "overlay_wireframe"));
1049 return sh_data->wireframe[custom_bias];
1068 if (!
sh_data->edit_uv_edges) {
1071 return sh_data->edit_uv_edges;
1077 if (!
sh_data->edit_uv_edges_for_edge_select) {
1079 "overlay_edit_uv_edges_select");
1081 return sh_data->edit_uv_edges_for_edge_select;
1087 if (!
sh_data->edit_uv_faces) {
1090 return sh_data->edit_uv_faces;
1096 if (!
sh_data->edit_uv_face_dots) {
1099 return sh_data->edit_uv_face_dots;
1105 if (!
sh_data->edit_uv_verts) {
1109 return sh_data->edit_uv_verts;
1115 if (!
sh_data->edit_uv_stretching_area) {
1117 "overlay_edit_uv_stretching_area");
1120 return sh_data->edit_uv_stretching_area;
1126 if (!
sh_data->edit_uv_stretching_angle) {
1128 "overlay_edit_uv_stretching_angle");
1131 return sh_data->edit_uv_stretching_angle;
1137 if (!
sh_data->edit_uv_tiled_image_borders) {
1139 "overlay_edit_uv_tiled_image_borders");
1141 return sh_data->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
static struct @164212377162106273131312160131351227321337210370 e_data
BASIC_Shaders sh_data[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)
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()
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