Blender  V2.93
Classes | Macros | Functions | Variables
gpu_shader_builtin.c File Reference
#include "MEM_guardedalloc.h"
#include "BLI_math_base.h"
#include "BLI_math_vector.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
#include "BLI_string_utils.h"
#include "BLI_utildefines.h"
#include "BKE_appdir.h"
#include "BKE_global.h"
#include "DNA_space_types.h"
#include "GPU_matrix.h"
#include "GPU_platform.h"
#include "GPU_shader.h"
#include "GPU_texture.h"
#include "GPU_uniform_buffer.h"

Go to the source code of this file.

Classes

struct  GPUShaderStages
 

Macros

#define MAX_DEFINE_LENGTH   256
 
#define MAX_EXT_DEFINE_LENGTH   512
 

Functions

GPUShaderGPU_shader_get_builtin_shader_with_config (eGPUBuiltinShader shader, eGPUShaderConfig sh_cfg)
 
GPUShaderGPU_shader_get_builtin_shader (eGPUBuiltinShader shader)
 
void GPU_shader_get_builtin_shader_code (eGPUBuiltinShader shader, const char **r_vert, const char **r_frag, const char **r_geom, const char **r_defines)
 
void GPU_shader_free_builtin_shaders (void)
 

Variables

char datatoc_gpu_shader_depth_only_frag_glsl []
 
char datatoc_gpu_shader_uniform_color_frag_glsl []
 
char datatoc_gpu_shader_checker_frag_glsl []
 
char datatoc_gpu_shader_diag_stripes_frag_glsl []
 
char datatoc_gpu_shader_simple_lighting_frag_glsl []
 
char datatoc_gpu_shader_flat_color_frag_glsl []
 
char datatoc_gpu_shader_flat_color_alpha_test_0_frag_glsl []
 
char datatoc_gpu_shader_flat_id_frag_glsl []
 
char datatoc_gpu_shader_2D_area_borders_vert_glsl []
 
char datatoc_gpu_shader_2D_area_borders_frag_glsl []
 
char datatoc_gpu_shader_2D_vert_glsl []
 
char datatoc_gpu_shader_2D_flat_color_vert_glsl []
 
char datatoc_gpu_shader_2D_smooth_color_uniform_alpha_vert_glsl []
 
char datatoc_gpu_shader_2D_smooth_color_vert_glsl []
 
char datatoc_gpu_shader_2D_smooth_color_frag_glsl []
 
char datatoc_gpu_shader_2D_image_vert_glsl []
 
char datatoc_gpu_shader_2D_image_rect_vert_glsl []
 
char datatoc_gpu_shader_2D_image_multi_rect_vert_glsl []
 
char datatoc_gpu_shader_2D_widget_base_vert_glsl []
 
char datatoc_gpu_shader_2D_widget_base_frag_glsl []
 
char datatoc_gpu_shader_2D_widget_shadow_vert_glsl []
 
char datatoc_gpu_shader_2D_widget_shadow_frag_glsl []
 
char datatoc_gpu_shader_2D_nodelink_frag_glsl []
 
char datatoc_gpu_shader_2D_nodelink_vert_glsl []
 
char datatoc_gpu_shader_3D_image_vert_glsl []
 
char datatoc_gpu_shader_image_frag_glsl []
 
char datatoc_gpu_shader_image_overlays_merge_frag_glsl []
 
char datatoc_gpu_shader_image_overlays_stereo_merge_frag_glsl []
 
char datatoc_gpu_shader_image_color_frag_glsl []
 
char datatoc_gpu_shader_image_desaturate_frag_glsl []
 
char datatoc_gpu_shader_image_modulate_alpha_frag_glsl []
 
char datatoc_gpu_shader_image_varying_color_frag_glsl []
 
char datatoc_gpu_shader_image_shuffle_color_frag_glsl []
 
char datatoc_gpu_shader_3D_vert_glsl []
 
char datatoc_gpu_shader_3D_normal_vert_glsl []
 
char datatoc_gpu_shader_3D_flat_color_vert_glsl []
 
char datatoc_gpu_shader_3D_polyline_frag_glsl []
 
char datatoc_gpu_shader_3D_polyline_geom_glsl []
 
char datatoc_gpu_shader_3D_polyline_vert_glsl []
 
char datatoc_gpu_shader_3D_smooth_color_vert_glsl []
 
char datatoc_gpu_shader_3D_smooth_color_frag_glsl []
 
char datatoc_gpu_shader_3D_passthrough_vert_glsl []
 
char datatoc_gpu_shader_3D_clipped_uniform_color_vert_glsl []
 
char datatoc_gpu_shader_instance_variying_size_variying_color_vert_glsl []
 
char datatoc_gpu_shader_point_uniform_color_frag_glsl []
 
char datatoc_gpu_shader_point_uniform_color_aa_frag_glsl []
 
char datatoc_gpu_shader_point_uniform_color_outline_aa_frag_glsl []
 
char datatoc_gpu_shader_point_varying_color_outline_aa_frag_glsl []
 
char datatoc_gpu_shader_point_varying_color_varying_outline_aa_frag_glsl []
 
char datatoc_gpu_shader_point_varying_color_frag_glsl []
 
char datatoc_gpu_shader_3D_point_fixed_size_varying_color_vert_glsl []
 
char datatoc_gpu_shader_3D_point_varying_size_vert_glsl []
 
char datatoc_gpu_shader_3D_point_varying_size_varying_color_vert_glsl []
 
char datatoc_gpu_shader_3D_point_uniform_size_aa_vert_glsl []
 
char datatoc_gpu_shader_3D_point_uniform_size_outline_aa_vert_glsl []
 
char datatoc_gpu_shader_2D_point_varying_size_varying_color_vert_glsl []
 
char datatoc_gpu_shader_2D_point_uniform_size_aa_vert_glsl []
 
char datatoc_gpu_shader_2D_point_uniform_size_outline_aa_vert_glsl []
 
char datatoc_gpu_shader_2D_point_uniform_size_varying_color_outline_aa_vert_glsl []
 
char datatoc_gpu_shader_2D_edituvs_points_vert_glsl []
 
char datatoc_gpu_shader_2D_edituvs_facedots_vert_glsl []
 
char datatoc_gpu_shader_2D_edituvs_edges_vert_glsl []
 
char datatoc_gpu_shader_2D_edituvs_edges_frag_glsl []
 
char datatoc_gpu_shader_2D_edituvs_faces_vert_glsl []
 
char datatoc_gpu_shader_2D_edituvs_stretch_vert_glsl []
 
char datatoc_gpu_shader_2D_line_dashed_uniform_color_vert_glsl []
 
char datatoc_gpu_shader_2D_line_dashed_frag_glsl []
 
char datatoc_gpu_shader_3D_line_dashed_uniform_color_vert_glsl []
 
char datatoc_gpu_shader_text_vert_glsl []
 
char datatoc_gpu_shader_text_frag_glsl []
 
char datatoc_gpu_shader_keyframe_diamond_vert_glsl []
 
char datatoc_gpu_shader_keyframe_diamond_frag_glsl []
 
char datatoc_gpu_shader_gpencil_stroke_vert_glsl []
 
char datatoc_gpu_shader_gpencil_stroke_frag_glsl []
 
char datatoc_gpu_shader_gpencil_stroke_geom_glsl []
 
char datatoc_gpu_shader_cfg_world_clip_lib_glsl []
 
char datatoc_gpu_shader_colorspace_lib_glsl []
 
const struct GPUShaderConfigData GPU_shader_cfg_data [GPU_SHADER_CFG_LEN]
 
static GPUShaderbuiltin_shaders [GPU_SHADER_CFG_LEN][GPU_SHADER_BUILTIN_LEN] = {{NULL}}
 
static const GPUShaderStages builtin_shader_stages [GPU_SHADER_BUILTIN_LEN]
 

Macro Definition Documentation

◆ MAX_DEFINE_LENGTH

#define MAX_DEFINE_LENGTH   256

Definition at line 45 of file gpu_shader_builtin.c.

◆ MAX_EXT_DEFINE_LENGTH

#define MAX_EXT_DEFINE_LENGTH   512

Definition at line 46 of file gpu_shader_builtin.c.

Function Documentation

◆ GPU_shader_free_builtin_shaders()

void GPU_shader_free_builtin_shaders ( void  )

◆ GPU_shader_get_builtin_shader()

GPUShader* GPU_shader_get_builtin_shader ( eGPUBuiltinShader  shader)

◆ GPU_shader_get_builtin_shader_code()

void GPU_shader_get_builtin_shader_code ( eGPUBuiltinShader  shader,
const char **  r_vert,
const char **  r_frag,
const char **  r_geom,
const char **  r_defines 
)

◆ GPU_shader_get_builtin_shader_with_config()

GPUShader* GPU_shader_get_builtin_shader_with_config ( eGPUBuiltinShader  shader,
eGPUShaderConfig  sh_cfg 
)

Variable Documentation

◆ builtin_shader_stages

const GPUShaderStages builtin_shader_stages[GPU_SHADER_BUILTIN_LEN]
static

◆ builtin_shaders

GPUShader* builtin_shaders[GPU_SHADER_CFG_LEN][GPU_SHADER_BUILTIN_LEN] = {{NULL}}
static

◆ datatoc_gpu_shader_2D_area_borders_frag_glsl

char datatoc_gpu_shader_2D_area_borders_frag_glsl[]
extern

◆ datatoc_gpu_shader_2D_area_borders_vert_glsl

char datatoc_gpu_shader_2D_area_borders_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_edituvs_edges_frag_glsl

char datatoc_gpu_shader_2D_edituvs_edges_frag_glsl[]
extern

◆ datatoc_gpu_shader_2D_edituvs_edges_vert_glsl

char datatoc_gpu_shader_2D_edituvs_edges_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_edituvs_facedots_vert_glsl

char datatoc_gpu_shader_2D_edituvs_facedots_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_edituvs_faces_vert_glsl

char datatoc_gpu_shader_2D_edituvs_faces_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_edituvs_points_vert_glsl

char datatoc_gpu_shader_2D_edituvs_points_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_edituvs_stretch_vert_glsl

char datatoc_gpu_shader_2D_edituvs_stretch_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_flat_color_vert_glsl

char datatoc_gpu_shader_2D_flat_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_image_multi_rect_vert_glsl

char datatoc_gpu_shader_2D_image_multi_rect_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_image_rect_vert_glsl

char datatoc_gpu_shader_2D_image_rect_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_image_vert_glsl

char datatoc_gpu_shader_2D_image_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_line_dashed_frag_glsl

char datatoc_gpu_shader_2D_line_dashed_frag_glsl[]
extern

◆ datatoc_gpu_shader_2D_line_dashed_uniform_color_vert_glsl

char datatoc_gpu_shader_2D_line_dashed_uniform_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_nodelink_frag_glsl

char datatoc_gpu_shader_2D_nodelink_frag_glsl[]
extern

◆ datatoc_gpu_shader_2D_nodelink_vert_glsl

char datatoc_gpu_shader_2D_nodelink_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_point_uniform_size_aa_vert_glsl

char datatoc_gpu_shader_2D_point_uniform_size_aa_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_point_uniform_size_outline_aa_vert_glsl

char datatoc_gpu_shader_2D_point_uniform_size_outline_aa_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_point_uniform_size_varying_color_outline_aa_vert_glsl

char datatoc_gpu_shader_2D_point_uniform_size_varying_color_outline_aa_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_point_varying_size_varying_color_vert_glsl

char datatoc_gpu_shader_2D_point_varying_size_varying_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_smooth_color_frag_glsl

char datatoc_gpu_shader_2D_smooth_color_frag_glsl[]
extern

◆ datatoc_gpu_shader_2D_smooth_color_uniform_alpha_vert_glsl

char datatoc_gpu_shader_2D_smooth_color_uniform_alpha_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_smooth_color_vert_glsl

char datatoc_gpu_shader_2D_smooth_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_vert_glsl

char datatoc_gpu_shader_2D_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_widget_base_frag_glsl

char datatoc_gpu_shader_2D_widget_base_frag_glsl[]
extern

◆ datatoc_gpu_shader_2D_widget_base_vert_glsl

char datatoc_gpu_shader_2D_widget_base_vert_glsl[]
extern

◆ datatoc_gpu_shader_2D_widget_shadow_frag_glsl

char datatoc_gpu_shader_2D_widget_shadow_frag_glsl[]
extern

◆ datatoc_gpu_shader_2D_widget_shadow_vert_glsl

char datatoc_gpu_shader_2D_widget_shadow_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_clipped_uniform_color_vert_glsl

char datatoc_gpu_shader_3D_clipped_uniform_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_flat_color_vert_glsl

char datatoc_gpu_shader_3D_flat_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_image_vert_glsl

char datatoc_gpu_shader_3D_image_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_line_dashed_uniform_color_vert_glsl

char datatoc_gpu_shader_3D_line_dashed_uniform_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_normal_vert_glsl

char datatoc_gpu_shader_3D_normal_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_passthrough_vert_glsl

char datatoc_gpu_shader_3D_passthrough_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_point_fixed_size_varying_color_vert_glsl

char datatoc_gpu_shader_3D_point_fixed_size_varying_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_point_uniform_size_aa_vert_glsl

char datatoc_gpu_shader_3D_point_uniform_size_aa_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_point_uniform_size_outline_aa_vert_glsl

char datatoc_gpu_shader_3D_point_uniform_size_outline_aa_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_point_varying_size_varying_color_vert_glsl

char datatoc_gpu_shader_3D_point_varying_size_varying_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_point_varying_size_vert_glsl

char datatoc_gpu_shader_3D_point_varying_size_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_polyline_frag_glsl

char datatoc_gpu_shader_3D_polyline_frag_glsl[]
extern

◆ datatoc_gpu_shader_3D_polyline_geom_glsl

char datatoc_gpu_shader_3D_polyline_geom_glsl[]
extern

◆ datatoc_gpu_shader_3D_polyline_vert_glsl

char datatoc_gpu_shader_3D_polyline_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_smooth_color_frag_glsl

char datatoc_gpu_shader_3D_smooth_color_frag_glsl[]
extern

◆ datatoc_gpu_shader_3D_smooth_color_vert_glsl

char datatoc_gpu_shader_3D_smooth_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_3D_vert_glsl

char datatoc_gpu_shader_3D_vert_glsl[]
extern

◆ datatoc_gpu_shader_cfg_world_clip_lib_glsl

char datatoc_gpu_shader_cfg_world_clip_lib_glsl[]
extern

◆ datatoc_gpu_shader_checker_frag_glsl

char datatoc_gpu_shader_checker_frag_glsl[]
extern

◆ datatoc_gpu_shader_colorspace_lib_glsl

char datatoc_gpu_shader_colorspace_lib_glsl[]
extern

Definition at line 53 of file gpu_shader.cc.

Referenced by GPU_shader_create_from_python().

◆ datatoc_gpu_shader_depth_only_frag_glsl

char datatoc_gpu_shader_depth_only_frag_glsl[]
extern

◆ datatoc_gpu_shader_diag_stripes_frag_glsl

char datatoc_gpu_shader_diag_stripes_frag_glsl[]
extern

◆ datatoc_gpu_shader_flat_color_alpha_test_0_frag_glsl

char datatoc_gpu_shader_flat_color_alpha_test_0_frag_glsl[]
extern

◆ datatoc_gpu_shader_flat_color_frag_glsl

char datatoc_gpu_shader_flat_color_frag_glsl[]
extern

◆ datatoc_gpu_shader_flat_id_frag_glsl

char datatoc_gpu_shader_flat_id_frag_glsl[]
extern

◆ datatoc_gpu_shader_gpencil_stroke_frag_glsl

char datatoc_gpu_shader_gpencil_stroke_frag_glsl[]
extern

◆ datatoc_gpu_shader_gpencil_stroke_geom_glsl

char datatoc_gpu_shader_gpencil_stroke_geom_glsl[]
extern

◆ datatoc_gpu_shader_gpencil_stroke_vert_glsl

char datatoc_gpu_shader_gpencil_stroke_vert_glsl[]
extern

◆ datatoc_gpu_shader_image_color_frag_glsl

char datatoc_gpu_shader_image_color_frag_glsl[]
extern

◆ datatoc_gpu_shader_image_desaturate_frag_glsl

char datatoc_gpu_shader_image_desaturate_frag_glsl[]
extern

◆ datatoc_gpu_shader_image_frag_glsl

char datatoc_gpu_shader_image_frag_glsl[]
extern

◆ datatoc_gpu_shader_image_modulate_alpha_frag_glsl

char datatoc_gpu_shader_image_modulate_alpha_frag_glsl[]
extern

◆ datatoc_gpu_shader_image_overlays_merge_frag_glsl

char datatoc_gpu_shader_image_overlays_merge_frag_glsl[]
extern

◆ datatoc_gpu_shader_image_overlays_stereo_merge_frag_glsl

char datatoc_gpu_shader_image_overlays_stereo_merge_frag_glsl[]
extern

◆ datatoc_gpu_shader_image_shuffle_color_frag_glsl

char datatoc_gpu_shader_image_shuffle_color_frag_glsl[]
extern

◆ datatoc_gpu_shader_image_varying_color_frag_glsl

char datatoc_gpu_shader_image_varying_color_frag_glsl[]
extern

◆ datatoc_gpu_shader_instance_variying_size_variying_color_vert_glsl

char datatoc_gpu_shader_instance_variying_size_variying_color_vert_glsl[]
extern

◆ datatoc_gpu_shader_keyframe_diamond_frag_glsl

char datatoc_gpu_shader_keyframe_diamond_frag_glsl[]
extern

◆ datatoc_gpu_shader_keyframe_diamond_vert_glsl

char datatoc_gpu_shader_keyframe_diamond_vert_glsl[]
extern

◆ datatoc_gpu_shader_point_uniform_color_aa_frag_glsl

char datatoc_gpu_shader_point_uniform_color_aa_frag_glsl[]
extern

◆ datatoc_gpu_shader_point_uniform_color_frag_glsl

char datatoc_gpu_shader_point_uniform_color_frag_glsl[]
extern

◆ datatoc_gpu_shader_point_uniform_color_outline_aa_frag_glsl

char datatoc_gpu_shader_point_uniform_color_outline_aa_frag_glsl[]
extern

◆ datatoc_gpu_shader_point_varying_color_frag_glsl

char datatoc_gpu_shader_point_varying_color_frag_glsl[]
extern

◆ datatoc_gpu_shader_point_varying_color_outline_aa_frag_glsl

char datatoc_gpu_shader_point_varying_color_outline_aa_frag_glsl[]
extern

◆ datatoc_gpu_shader_point_varying_color_varying_outline_aa_frag_glsl

char datatoc_gpu_shader_point_varying_color_varying_outline_aa_frag_glsl[]
extern

◆ datatoc_gpu_shader_simple_lighting_frag_glsl

char datatoc_gpu_shader_simple_lighting_frag_glsl[]
extern

◆ datatoc_gpu_shader_text_frag_glsl

char datatoc_gpu_shader_text_frag_glsl[]
extern

◆ datatoc_gpu_shader_text_vert_glsl

char datatoc_gpu_shader_text_vert_glsl[]
extern

◆ datatoc_gpu_shader_uniform_color_frag_glsl

char datatoc_gpu_shader_uniform_color_frag_glsl[]
extern

◆ GPU_shader_cfg_data

const struct GPUShaderConfigData GPU_shader_cfg_data[GPU_SHADER_CFG_LEN]
Initial value:
= {
{
.lib = "",
.def = "#define blender_srgb_to_framebuffer_space(a) a\n",
},
{
.def = "#define USE_WORLD_CLIP_PLANES\n"
"#define blender_srgb_to_framebuffer_space(a) a\n",
},
}
@ GPU_SHADER_CFG_DEFAULT
Definition: GPU_shader.h:392
@ GPU_SHADER_CFG_CLIPPED
Definition: GPU_shader.h:393
char datatoc_gpu_shader_cfg_world_clip_lib_glsl[]

Definition at line 134 of file gpu_shader_builtin.c.

Referenced by basic_engine_init(), external_engine_init(), OVERLAY_shader_armature_degrees_of_freedom_solid(), OVERLAY_shader_armature_degrees_of_freedom_wire(), OVERLAY_shader_armature_envelope(), OVERLAY_shader_armature_shape(), OVERLAY_shader_armature_shape_wire(), OVERLAY_shader_armature_sphere(), OVERLAY_shader_armature_stick(), OVERLAY_shader_armature_wire(), OVERLAY_shader_clipbound(), OVERLAY_shader_depth_only(), OVERLAY_shader_edit_curve_handle(), OVERLAY_shader_edit_curve_point(), OVERLAY_shader_edit_curve_wire(), OVERLAY_shader_edit_gpencil_point(), OVERLAY_shader_edit_gpencil_wire(), OVERLAY_shader_edit_lattice_point(), OVERLAY_shader_edit_lattice_wire(), OVERLAY_shader_edit_mesh_analysis(), OVERLAY_shader_edit_mesh_edge(), OVERLAY_shader_edit_mesh_face(), OVERLAY_shader_edit_mesh_facedot(), OVERLAY_shader_edit_mesh_normal(), OVERLAY_shader_edit_mesh_skin_root(), OVERLAY_shader_edit_mesh_vert(), OVERLAY_shader_edit_particle_point(), OVERLAY_shader_edit_particle_strand(), OVERLAY_shader_extra(), OVERLAY_shader_extra_grid(), OVERLAY_shader_extra_groundline(), OVERLAY_shader_extra_loose_point(), OVERLAY_shader_extra_point(), OVERLAY_shader_extra_wire(), OVERLAY_shader_facing(), OVERLAY_shader_image(), OVERLAY_shader_motion_path_line(), OVERLAY_shader_motion_path_vert(), OVERLAY_shader_outline_prepass(), OVERLAY_shader_outline_prepass_gpencil(), OVERLAY_shader_outline_prepass_pointcloud(), OVERLAY_shader_paint_face(), OVERLAY_shader_paint_point(), OVERLAY_shader_paint_texture(), OVERLAY_shader_paint_vertcol(), OVERLAY_shader_paint_weight(), OVERLAY_shader_paint_wire(), OVERLAY_shader_particle_dot(), OVERLAY_shader_particle_shape(), OVERLAY_shader_sculpt_mask(), OVERLAY_shader_uniform_color(), OVERLAY_shader_wireframe(), OVERLAY_shader_wireframe_select(), select_engine_init(), and workbench_shader_get_ex().