Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/overlay/overlay_shader.c
| Show First 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | |||||
| extern char datatoc_edit_uv_verts_vert_glsl[]; | extern char datatoc_edit_uv_verts_vert_glsl[]; | ||||
| extern char datatoc_edit_uv_verts_frag_glsl[]; | extern char datatoc_edit_uv_verts_frag_glsl[]; | ||||
| extern char datatoc_edit_uv_edges_vert_glsl[]; | extern char datatoc_edit_uv_edges_vert_glsl[]; | ||||
| extern char datatoc_edit_uv_edges_geom_glsl[]; | extern char datatoc_edit_uv_edges_geom_glsl[]; | ||||
| extern char datatoc_edit_uv_edges_frag_glsl[]; | extern char datatoc_edit_uv_edges_frag_glsl[]; | ||||
| extern char datatoc_edit_uv_faces_vert_glsl[]; | extern char datatoc_edit_uv_faces_vert_glsl[]; | ||||
| extern char datatoc_edit_uv_face_dots_vert_glsl[]; | extern char datatoc_edit_uv_face_dots_vert_glsl[]; | ||||
| extern char datatoc_edit_uv_stretching_vert_glsl[]; | extern char datatoc_edit_uv_stretching_vert_glsl[]; | ||||
| extern char datatoc_edit_uv_stencil_image_vert_glsl[]; | |||||
| extern char datatoc_edit_uv_tiled_image_borders_vert_glsl[]; | extern char datatoc_edit_uv_tiled_image_borders_vert_glsl[]; | ||||
| extern char datatoc_extra_frag_glsl[]; | extern char datatoc_extra_frag_glsl[]; | ||||
| extern char datatoc_extra_vert_glsl[]; | extern char datatoc_extra_vert_glsl[]; | ||||
| extern char datatoc_extra_groundline_vert_glsl[]; | extern char datatoc_extra_groundline_vert_glsl[]; | ||||
| extern char datatoc_extra_lightprobe_grid_vert_glsl[]; | extern char datatoc_extra_lightprobe_grid_vert_glsl[]; | ||||
| extern char datatoc_extra_loose_point_vert_glsl[]; | extern char datatoc_extra_loose_point_vert_glsl[]; | ||||
| extern char datatoc_extra_loose_point_frag_glsl[]; | extern char datatoc_extra_loose_point_frag_glsl[]; | ||||
| extern char datatoc_extra_point_vert_glsl[]; | extern char datatoc_extra_point_vert_glsl[]; | ||||
| ▲ Show 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | typedef struct OVERLAY_Shaders { | ||||
| GPUShader *edit_particle_point; | GPUShader *edit_particle_point; | ||||
| GPUShader *edit_uv_verts; | GPUShader *edit_uv_verts; | ||||
| GPUShader *edit_uv_faces; | GPUShader *edit_uv_faces; | ||||
| GPUShader *edit_uv_edges; | GPUShader *edit_uv_edges; | ||||
| GPUShader *edit_uv_face_dots; | GPUShader *edit_uv_face_dots; | ||||
| GPUShader *edit_uv_stretching_angle; | GPUShader *edit_uv_stretching_angle; | ||||
| GPUShader *edit_uv_stretching_area; | GPUShader *edit_uv_stretching_area; | ||||
| GPUShader *edit_uv_tiled_image_borders; | GPUShader *edit_uv_tiled_image_borders; | ||||
| GPUShader *edit_uv_stencil_image; | |||||
| GPUShader *extra; | GPUShader *extra; | ||||
| GPUShader *extra_select; | GPUShader *extra_select; | ||||
| GPUShader *extra_groundline; | GPUShader *extra_groundline; | ||||
| GPUShader *extra_wire[2]; | GPUShader *extra_wire[2]; | ||||
| GPUShader *extra_wire_select; | GPUShader *extra_wire_select; | ||||
| GPUShader *extra_point; | GPUShader *extra_point; | ||||
| GPUShader *extra_lightprobe_grid; | GPUShader *extra_lightprobe_grid; | ||||
| GPUShader *extra_loose_point; | GPUShader *extra_loose_point; | ||||
| Show All 38 Lines | |||||
| void OVERLAY_shader_library_ensure(void) | void OVERLAY_shader_library_ensure(void) | ||||
| { | { | ||||
| if (e_data.lib == NULL) { | if (e_data.lib == NULL) { | ||||
| e_data.lib = DRW_shader_library_create(); | e_data.lib = DRW_shader_library_create(); | ||||
| /* NOTE: Theses needs to be ordered by dependencies. */ | /* NOTE: Theses needs to be ordered by dependencies. */ | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, common_globals_lib); | DRW_SHADER_LIB_ADD(e_data.lib, common_globals_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, common_overlay_lib); | DRW_SHADER_LIB_ADD(e_data.lib, common_overlay_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, common_colormanagement_lib); | |||||
| DRW_SHADER_LIB_ADD(e_data.lib, common_view_lib); | DRW_SHADER_LIB_ADD(e_data.lib, common_view_lib); | ||||
| } | } | ||||
| } | } | ||||
| GPUShader *OVERLAY_shader_antialiasing(void) | GPUShader *OVERLAY_shader_antialiasing(void) | ||||
| { | { | ||||
| OVERLAY_Shaders *sh_data = &e_data.sh_data[0]; | OVERLAY_Shaders *sh_data = &e_data.sh_data[0]; | ||||
| if (!sh_data->antialiasing) { | if (!sh_data->antialiasing) { | ||||
| ▲ Show 20 Lines • Show All 809 Lines • ▼ Show 20 Lines | sh_data->grid_image = DRW_shader_create_with_shaderlib( | ||||
| NULL, | NULL, | ||||
| datatoc_gpu_shader_uniform_color_frag_glsl, | datatoc_gpu_shader_uniform_color_frag_glsl, | ||||
| e_data.lib, | e_data.lib, | ||||
| "#define blender_srgb_to_framebuffer_space(a) a\n"); | "#define blender_srgb_to_framebuffer_space(a) a\n"); | ||||
| } | } | ||||
| return sh_data->grid_image; | return sh_data->grid_image; | ||||
| } | } | ||||
| GPUShader *OVERLAY_shader_edit_uv_stencil_image(void) | |||||
| { | |||||
| OVERLAY_Shaders *sh_data = &e_data.sh_data[0]; | |||||
| if (!sh_data->edit_uv_stencil_image) { | |||||
| sh_data->edit_uv_stencil_image = DRW_shader_create_with_shaderlib( | |||||
| datatoc_edit_uv_stencil_image_vert_glsl, NULL, datatoc_image_frag_glsl, e_data.lib, NULL); | |||||
| } | |||||
| return sh_data->edit_uv_stencil_image; | |||||
| } | |||||
| GPUShader *OVERLAY_shader_image(void) | GPUShader *OVERLAY_shader_image(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->image) { | if (!sh_data->image) { | ||||
| sh_data->image = GPU_shader_create_from_arrays({ | sh_data->image = GPU_shader_create_from_arrays({ | ||||
| .vert = (const char *[]){sh_cfg->lib, | .vert = (const char *[]){sh_cfg->lib, | ||||
| ▲ Show 20 Lines • Show All 673 Lines • Show Last 20 Lines | |||||