Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/overlay/overlay_shader.c
| Show First 20 Lines • Show All 124 Lines • ▼ Show 20 Lines | |||||
| extern char datatoc_common_fullscreen_vert_glsl[]; | extern char datatoc_common_fullscreen_vert_glsl[]; | ||||
| extern char datatoc_common_fxaa_lib_glsl[]; | extern char datatoc_common_fxaa_lib_glsl[]; | ||||
| extern char datatoc_common_smaa_lib_glsl[]; | extern char datatoc_common_smaa_lib_glsl[]; | ||||
| extern char datatoc_common_globals_lib_glsl[]; | extern char datatoc_common_globals_lib_glsl[]; | ||||
| extern char datatoc_common_view_lib_glsl[]; | extern char datatoc_common_view_lib_glsl[]; | ||||
| typedef struct OVERLAY_Shaders { | typedef struct OVERLAY_Shaders { | ||||
| GPUShader *antialiasing; | GPUShader *antialiasing; | ||||
| GPUShader *armature_dof; | GPUShader *armature_dof_wire; | ||||
| GPUShader *armature_dof_solid; | |||||
| GPUShader *armature_envelope_outline; | GPUShader *armature_envelope_outline; | ||||
| GPUShader *armature_envelope_solid; | GPUShader *armature_envelope_solid; | ||||
| GPUShader *armature_shape_outline; | GPUShader *armature_shape_outline; | ||||
| GPUShader *armature_shape_solid; | GPUShader *armature_shape_solid; | ||||
| GPUShader *armature_shape_wire; | GPUShader *armature_shape_wire; | ||||
| GPUShader *armature_sphere_outline; | GPUShader *armature_sphere_outline; | ||||
| GPUShader *armature_sphere_solid; | GPUShader *armature_sphere_solid; | ||||
| GPUShader *armature_stick; | GPUShader *armature_stick; | ||||
| ▲ Show 20 Lines • Show All 326 Lines • ▼ Show 20 Lines | sh_data->armature_stick = GPU_shader_create_from_arrays({ | ||||
| NULL}, | NULL}, | ||||
| .frag = (const char *[]){datatoc_armature_stick_frag_glsl, NULL}, | .frag = (const char *[]){datatoc_armature_stick_frag_glsl, NULL}, | ||||
| .defs = (const char *[]){sh_cfg->def, NULL}, | .defs = (const char *[]){sh_cfg->def, NULL}, | ||||
| }); | }); | ||||
| } | } | ||||
| return sh_data->armature_stick; | return sh_data->armature_stick; | ||||
| } | } | ||||
| GPUShader *OVERLAY_shader_armature_degrees_of_freedom(void) | GPUShader *OVERLAY_shader_armature_degrees_of_freedom_wire(void) | ||||
| { | { | ||||
| const DRWContextState *draw_ctx = DRW_context_state_get(); | const DRWContextState *draw_ctx = DRW_context_state_get(); | ||||
| const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[draw_ctx->sh_cfg]; | const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[draw_ctx->sh_cfg]; | ||||
| OVERLAY_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg]; | OVERLAY_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg]; | ||||
| if (!sh_data->armature_dof) { | if (!sh_data->armature_dof_wire) { | ||||
| sh_data->armature_dof = GPU_shader_create_from_arrays({ | sh_data->armature_dof_wire = GPU_shader_create_from_arrays({ | ||||
| .vert = (const char *[]){sh_cfg->lib, | .vert = (const char *[]){sh_cfg->lib, | ||||
| datatoc_common_globals_lib_glsl, | datatoc_common_globals_lib_glsl, | ||||
| datatoc_common_view_lib_glsl, | datatoc_common_view_lib_glsl, | ||||
| datatoc_armature_dof_vert_glsl, | datatoc_armature_dof_vert_glsl, | ||||
| NULL}, | NULL}, | ||||
| .frag = | .frag = | ||||
| (const char *[]){datatoc_common_view_lib_glsl, datatoc_armature_wire_frag_glsl, NULL}, | (const char *[]){datatoc_common_view_lib_glsl, datatoc_armature_wire_frag_glsl, NULL}, | ||||
| .defs = (const char *[]){sh_cfg->def, "#define EDGE\n", NULL}, | |||||
| }); | |||||
| } | |||||
| return sh_data->armature_dof_wire; | |||||
| } | |||||
| GPUShader *OVERLAY_shader_armature_degrees_of_freedom_solid(void) | |||||
| { | |||||
| const DRWContextState *draw_ctx = DRW_context_state_get(); | |||||
| const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[draw_ctx->sh_cfg]; | |||||
| OVERLAY_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg]; | |||||
| if (!sh_data->armature_dof_solid) { | |||||
| sh_data->armature_dof_solid = GPU_shader_create_from_arrays({ | |||||
| .vert = (const char *[]){sh_cfg->lib, | |||||
| datatoc_common_globals_lib_glsl, | |||||
| datatoc_common_view_lib_glsl, | |||||
| datatoc_armature_dof_vert_glsl, | |||||
| NULL}, | |||||
| .frag = (const char *[]){datatoc_common_view_lib_glsl, | |||||
| datatoc_gpu_shader_flat_color_frag_glsl, | |||||
| NULL}, | |||||
| .defs = (const char *[]){sh_cfg->def, NULL}, | .defs = (const char *[]){sh_cfg->def, NULL}, | ||||
| }); | }); | ||||
| } | } | ||||
| return sh_data->armature_dof; | return sh_data->armature_dof_solid; | ||||
| } | } | ||||
| GPUShader *OVERLAY_shader_armature_wire(void) | GPUShader *OVERLAY_shader_armature_wire(void) | ||||
| { | { | ||||
| const DRWContextState *draw_ctx = DRW_context_state_get(); | const DRWContextState *draw_ctx = DRW_context_state_get(); | ||||
| const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[draw_ctx->sh_cfg]; | const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[draw_ctx->sh_cfg]; | ||||
| OVERLAY_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg]; | OVERLAY_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg]; | ||||
| if (!sh_data->armature_wire) { | if (!sh_data->armature_wire) { | ||||
| ▲ Show 20 Lines • Show All 998 Lines • Show Last 20 Lines | |||||