Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/eevee/eevee_shaders.c
| Show First 20 Lines • Show All 136 Lines • ▼ Show 20 Lines | static struct { | ||||
| struct GPUShader *volumetric_clear_sh; | struct GPUShader *volumetric_clear_sh; | ||||
| struct GPUShader *scatter_sh; | struct GPUShader *scatter_sh; | ||||
| struct GPUShader *scatter_with_lights_sh; | struct GPUShader *scatter_with_lights_sh; | ||||
| struct GPUShader *volumetric_integration_sh; | struct GPUShader *volumetric_integration_sh; | ||||
| struct GPUShader *volumetric_resolve_sh[2]; | struct GPUShader *volumetric_resolve_sh[2]; | ||||
| struct GPUShader *volumetric_accum_sh; | struct GPUShader *volumetric_accum_sh; | ||||
| /* Shader strings */ | /* Shader strings */ | ||||
| char *closure_lit_lib; | |||||
| char *surface_lit_frag; | char *surface_lit_frag; | ||||
| char *surface_prepass_frag; | char *surface_prepass_frag; | ||||
| char *surface_geom_barycentric; | char *surface_geom_barycentric; | ||||
| DRWShaderLibrary *lib; | DRWShaderLibrary *lib; | ||||
| /* LookDev Materials */ | /* LookDev Materials */ | ||||
| Material *glossy_mat; | Material *glossy_mat; | ||||
| Show All 25 Lines | |||||
| extern char datatoc_gpu_shader_common_obinfos_lib_glsl[]; | extern char datatoc_gpu_shader_common_obinfos_lib_glsl[]; | ||||
| extern char datatoc_ambient_occlusion_lib_glsl[]; | extern char datatoc_ambient_occlusion_lib_glsl[]; | ||||
| extern char datatoc_background_vert_glsl[]; | extern char datatoc_background_vert_glsl[]; | ||||
| extern char datatoc_bsdf_common_lib_glsl[]; | extern char datatoc_bsdf_common_lib_glsl[]; | ||||
| extern char datatoc_bsdf_lut_frag_glsl[]; | extern char datatoc_bsdf_lut_frag_glsl[]; | ||||
| extern char datatoc_bsdf_sampling_lib_glsl[]; | extern char datatoc_bsdf_sampling_lib_glsl[]; | ||||
| extern char datatoc_btdf_lut_frag_glsl[]; | extern char datatoc_btdf_lut_frag_glsl[]; | ||||
| extern char datatoc_closure_lib_glsl[]; | extern char datatoc_closure_type_lib_glsl[]; | ||||
| extern char datatoc_common_uniforms_lib_glsl[]; | extern char datatoc_common_uniforms_lib_glsl[]; | ||||
| extern char datatoc_common_utiltex_lib_glsl[]; | extern char datatoc_common_utiltex_lib_glsl[]; | ||||
| extern char datatoc_cryptomatte_frag_glsl[]; | extern char datatoc_cryptomatte_frag_glsl[]; | ||||
| extern char datatoc_cubemap_lib_glsl[]; | extern char datatoc_cubemap_lib_glsl[]; | ||||
| extern char datatoc_default_frag_glsl[]; | extern char datatoc_default_frag_glsl[]; | ||||
| extern char datatoc_lookdev_world_frag_glsl[]; | extern char datatoc_lookdev_world_frag_glsl[]; | ||||
| extern char datatoc_effect_bloom_frag_glsl[]; | extern char datatoc_effect_bloom_frag_glsl[]; | ||||
| extern char datatoc_effect_dof_frag_glsl[]; | extern char datatoc_effect_dof_frag_glsl[]; | ||||
| Show All 23 Lines | |||||
| extern char datatoc_lightprobe_lib_glsl[]; | extern char datatoc_lightprobe_lib_glsl[]; | ||||
| extern char datatoc_lightprobe_planar_display_frag_glsl[]; | extern char datatoc_lightprobe_planar_display_frag_glsl[]; | ||||
| extern char datatoc_lightprobe_planar_display_vert_glsl[]; | extern char datatoc_lightprobe_planar_display_vert_glsl[]; | ||||
| extern char datatoc_lightprobe_planar_downsample_frag_glsl[]; | extern char datatoc_lightprobe_planar_downsample_frag_glsl[]; | ||||
| extern char datatoc_lightprobe_planar_downsample_geom_glsl[]; | extern char datatoc_lightprobe_planar_downsample_geom_glsl[]; | ||||
| extern char datatoc_lightprobe_planar_downsample_vert_glsl[]; | extern char datatoc_lightprobe_planar_downsample_vert_glsl[]; | ||||
| extern char datatoc_lightprobe_vert_glsl[]; | extern char datatoc_lightprobe_vert_glsl[]; | ||||
| extern char datatoc_lights_lib_glsl[]; | extern char datatoc_lights_lib_glsl[]; | ||||
| extern char datatoc_closure_lit_lib_glsl[]; | extern char datatoc_closure_eval_lib_glsl[]; | ||||
| extern char datatoc_closure_eval_diffuse_lib_glsl[]; | |||||
| extern char datatoc_closure_eval_glossy_lib_glsl[]; | |||||
| extern char datatoc_closure_eval_refraction_lib_glsl[]; | |||||
| extern char datatoc_closure_eval_translucent_lib_glsl[]; | |||||
| extern char datatoc_ltc_lib_glsl[]; | extern char datatoc_ltc_lib_glsl[]; | ||||
| extern char datatoc_object_motion_frag_glsl[]; | extern char datatoc_object_motion_frag_glsl[]; | ||||
| extern char datatoc_object_motion_vert_glsl[]; | extern char datatoc_object_motion_vert_glsl[]; | ||||
| extern char datatoc_octahedron_lib_glsl[]; | extern char datatoc_octahedron_lib_glsl[]; | ||||
| extern char datatoc_prepass_frag_glsl[]; | extern char datatoc_prepass_frag_glsl[]; | ||||
| extern char datatoc_prepass_vert_glsl[]; | extern char datatoc_prepass_vert_glsl[]; | ||||
| extern char datatoc_raytrace_lib_glsl[]; | extern char datatoc_raytrace_lib_glsl[]; | ||||
| extern char datatoc_renderpass_lib_glsl[]; | extern char datatoc_renderpass_lib_glsl[]; | ||||
| Show All 38 Lines | if (e_data.lib == NULL) { | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, ambient_occlusion_lib); | DRW_SHADER_LIB_ADD(e_data.lib, ambient_occlusion_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, octahedron_lib); | DRW_SHADER_LIB_ADD(e_data.lib, octahedron_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, irradiance_lib); | DRW_SHADER_LIB_ADD(e_data.lib, irradiance_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, lightprobe_lib); | DRW_SHADER_LIB_ADD(e_data.lib, lightprobe_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, ltc_lib); | DRW_SHADER_LIB_ADD(e_data.lib, ltc_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, lights_lib); | DRW_SHADER_LIB_ADD(e_data.lib, lights_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, surface_lib); | DRW_SHADER_LIB_ADD(e_data.lib, surface_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, volumetric_lib); | DRW_SHADER_LIB_ADD(e_data.lib, volumetric_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, closure_lib); | |||||
| DRW_SHADER_LIB_ADD(e_data.lib, ssr_lib); | DRW_SHADER_LIB_ADD(e_data.lib, ssr_lib); | ||||
| DRW_SHADER_LIB_ADD(e_data.lib, closure_type_lib); | |||||
| /* Add one for each Closure */ | DRW_SHADER_LIB_ADD(e_data.lib, closure_eval_lib); | ||||
| e_data.closure_lit_lib = BLI_string_joinN(datatoc_closure_lit_lib_glsl, | DRW_SHADER_LIB_ADD(e_data.lib, closure_eval_diffuse_lib); | ||||
| datatoc_closure_lit_lib_glsl, | DRW_SHADER_LIB_ADD(e_data.lib, closure_eval_glossy_lib); | ||||
| datatoc_closure_lit_lib_glsl, | DRW_SHADER_LIB_ADD(e_data.lib, closure_eval_translucent_lib); | ||||
| datatoc_closure_lit_lib_glsl, | DRW_SHADER_LIB_ADD(e_data.lib, closure_eval_refraction_lib); | ||||
| datatoc_closure_lit_lib_glsl, | |||||
| datatoc_closure_lit_lib_glsl, | |||||
| datatoc_closure_lit_lib_glsl, | |||||
| datatoc_closure_lit_lib_glsl, | |||||
| datatoc_closure_lit_lib_glsl, | |||||
| datatoc_closure_lit_lib_glsl, | |||||
| datatoc_closure_lit_lib_glsl); | |||||
| DRW_shader_library_add_file(e_data.lib, e_data.closure_lit_lib, "closure_lit_lib.glsl"); | |||||
| e_data.surface_lit_frag = DRW_shader_library_create_shader_string(e_data.lib, | e_data.surface_lit_frag = DRW_shader_library_create_shader_string(e_data.lib, | ||||
| datatoc_surface_frag_glsl); | datatoc_surface_frag_glsl); | ||||
| e_data.surface_prepass_frag = DRW_shader_library_create_shader_string( | e_data.surface_prepass_frag = DRW_shader_library_create_shader_string( | ||||
| e_data.lib, datatoc_prepass_frag_glsl); | e_data.lib, datatoc_prepass_frag_glsl); | ||||
| e_data.surface_geom_barycentric = DRW_shader_library_create_shader_string( | e_data.surface_geom_barycentric = DRW_shader_library_create_shader_string( | ||||
| ▲ Show 20 Lines • Show All 1,091 Lines • ▼ Show 20 Lines | struct GPUMaterial *EEVEE_material_get( | ||||
| } | } | ||||
| /* Returned material should be ready to be drawn. */ | /* Returned material should be ready to be drawn. */ | ||||
| BLI_assert(GPU_material_status(mat) == GPU_MAT_SUCCESS); | BLI_assert(GPU_material_status(mat) == GPU_MAT_SUCCESS); | ||||
| return mat; | return mat; | ||||
| } | } | ||||
| void EEVEE_shaders_free(void) | void EEVEE_shaders_free(void) | ||||
| { | { | ||||
| MEM_SAFE_FREE(e_data.closure_lit_lib); | |||||
| MEM_SAFE_FREE(e_data.surface_prepass_frag); | MEM_SAFE_FREE(e_data.surface_prepass_frag); | ||||
| MEM_SAFE_FREE(e_data.surface_lit_frag); | MEM_SAFE_FREE(e_data.surface_lit_frag); | ||||
| MEM_SAFE_FREE(e_data.surface_geom_barycentric); | MEM_SAFE_FREE(e_data.surface_geom_barycentric); | ||||
| DRW_SHADER_FREE_SAFE(e_data.lookdev_background); | DRW_SHADER_FREE_SAFE(e_data.lookdev_background); | ||||
| DRW_SHADER_FREE_SAFE(e_data.update_noise_sh); | DRW_SHADER_FREE_SAFE(e_data.update_noise_sh); | ||||
| DRW_SHADER_FREE_SAFE(e_data.downsample_sh); | DRW_SHADER_FREE_SAFE(e_data.downsample_sh); | ||||
| DRW_SHADER_FREE_SAFE(e_data.downsample_cube_sh); | DRW_SHADER_FREE_SAFE(e_data.downsample_cube_sh); | ||||
| DRW_SHADER_FREE_SAFE(e_data.minz_downlevel_sh); | DRW_SHADER_FREE_SAFE(e_data.minz_downlevel_sh); | ||||
| ▲ Show 20 Lines • Show All 89 Lines • Show Last 20 Lines | |||||