diff --git a/source/blender/CMakeLists.txt b/source/blender/CMakeLists.txt index 85f3ac564a0..f26c5cd31e1 100644 --- a/source/blender/CMakeLists.txt +++ b/source/blender/CMakeLists.txt @@ -183,6 +183,7 @@ add_subdirectory(functions) add_subdirectory(makesdna) add_subdirectory(makesrna) add_subdirectory(compositor) +add_subdirectory(compositor/shaders) if(WITH_BLENDER_THUMBNAILER) add_subdirectory(blendthumb) diff --git a/source/blender/compositor/shaders/CMakeLists.txt b/source/blender/compositor/shaders/CMakeLists.txt new file mode 100644 index 00000000000..6552cb38b0e --- /dev/null +++ b/source/blender/compositor/shaders/CMakeLists.txt @@ -0,0 +1,136 @@ +# SPDX-FileCopyrightText: 2024 Blender Authors +# +# SPDX-License-Identifier: GPL-2.0-or-later +set(INC_GLSL + . + .. + ./library + ../../gpu + ../../gpu/intern + ../../gpu/shaders + ../../gpu/shaders/common + ../../gpu/shaders/infos +) +set(SRC_GLSL_COMP +# TODO: Port to C++ compilation +# compositor_alpha_crop.glsl +# compositor_bilateral_blur.glsl +# compositor_bokeh_blur_variable_size.glsl +# compositor_bokeh_blur.glsl +# compositor_bokeh_image.glsl +# compositor_box_mask.glsl +# compositor_compute_preview.glsl +# compositor_convert.glsl +# compositor_cryptomatte_image.glsl +# compositor_cryptomatte_matte.glsl +# compositor_cryptomatte_pick.glsl +# compositor_defocus_blur.glsl +# compositor_defocus_radius_from_depth.glsl +# compositor_defocus_radius_from_scale.glsl +# compositor_deriche_gaussian_blur_sum.glsl +# compositor_deriche_gaussian_blur.glsl +# compositor_despeckle.glsl +# compositor_directional_blur.glsl +# compositor_displace_anisotropic.glsl +# compositor_displace.glsl +# compositor_double_edge_mask_compute_boundary.glsl +# compositor_double_edge_mask_compute_gradient.glsl +# compositor_edge_filter.glsl +# compositor_ellipse_mask.glsl +# compositor_filter.glsl +# compositor_flip.glsl +# compositor_gamma_correct.glsl +# compositor_glare_bloom_downsample.glsl +# compositor_glare_bloom_upsample.glsl +# compositor_glare_ghost_accumulate.glsl +# compositor_glare_ghost_base.glsl +# compositor_glare_highlights.glsl +# compositor_glare_mix.glsl +# compositor_glare_simple_star_anti_diagonal_pass.glsl +# compositor_glare_simple_star_diagonal_pass.glsl +# compositor_glare_simple_star_horizontal_pass.glsl +# compositor_glare_simple_star_vertical_pass.glsl +# compositor_glare_streaks_accumulate.glsl +# compositor_glare_streaks_filter.glsl +# compositor_glare_sun_beams.glsl +# compositor_glare_write_glare_output.glsl +# compositor_glare_write_highlights_output.glsl +# compositor_horizontal_lens_distortion.glsl +# compositor_id_mask.glsl +# compositor_image_coordinates_normalized.glsl +# compositor_image_coordinates_pixel.glsl +# compositor_image_coordinates_uniform.glsl +# compositor_image_crop.glsl +# compositor_inpaint_compute_boundary.glsl +# compositor_inpaint_compute_region.glsl +# compositor_inpaint_fill_region.glsl +# compositor_jump_flooding.glsl +# compositor_keying_compute_image.glsl +# compositor_keying_compute_matte.glsl +# compositor_keying_extract_chroma.glsl +# compositor_keying_replace_chroma.glsl +# compositor_keying_screen.glsl +# compositor_keying_tweak_matte.glsl +# compositor_kuwahara_anisotropic_compute_structure_tensor.glsl +# compositor_kuwahara_anisotropic.glsl +# compositor_kuwahara_classic.glsl +# compositor_map_uv_anisotropic.glsl +# compositor_map_uv.glsl +# compositor_morphological_blur.glsl +# compositor_morphological_distance_feather.glsl +# compositor_morphological_distance_threshold.glsl +# compositor_morphological_distance.glsl +# compositor_morphological_step.glsl +# compositor_motion_blur_max_velocity_dilate.glsl +# compositor_motion_blur.glsl +# compositor_movie_distortion.glsl +# compositor_normalize.glsl +# compositor_pad.glsl +# compositor_parallel_reduction.glsl +# compositor_pixelate.glsl +# compositor_plane_deform_anisotropic.glsl +# compositor_plane_deform_mask.glsl +# compositor_plane_deform_motion_blur_mask.glsl +# compositor_plane_deform_motion_blur.glsl +# compositor_plane_deform.glsl +# compositor_premultiply_alpha.glsl +# compositor_radial_lens_distortion.glsl +# compositor_read_input.glsl +# compositor_realize_on_domain.glsl +# compositor_sample_pixel.glsl +# compositor_scale_variable.glsl +# compositor_smaa_blending_weight_calculation.glsl +# compositor_smaa_edge_detection.glsl +# compositor_smaa_neighborhood_blending.glsl +# compositor_split.glsl +# compositor_summed_area_table_compute_complete_blocks.glsl +# compositor_summed_area_table_compute_complete_x_prologues.glsl +# compositor_summed_area_table_compute_complete_y_prologues.glsl +# compositor_summed_area_table_compute_incomplete_prologues.glsl +# compositor_symmetric_blur_variable_size.glsl +# compositor_symmetric_blur.glsl +# compositor_symmetric_separable_blur_variable_size.glsl +# compositor_symmetric_separable_blur.glsl +# compositor_tone_map_photoreceptor.glsl +# compositor_tone_map_simple.glsl +# compositor_translate_wrapped.glsl +# compositor_van_vliet_gaussian_blur_sum.glsl +# compositor_van_vliet_gaussian_blur.glsl +# compositor_write_output.glsl +# compositor_z_combine_compute_mask.glsl +# compositor_z_combine_from_mask_depth.glsl +# compositor_z_combine_from_mask_image.glsl +# compositor_z_combine_simple_depth.glsl +# compositor_z_combine_simple_image.glsl +) +set(SRC_GLSL_LIB + library/gpu_shader_compositor_texture_utilities.glsl +) +# Compile shaders with shader code. +if(WITH_GPU_SHADER_CPP_COMPILATION) + with_shader_cpp_compilation_config() + #compile_sources_as_cpp(compositor_cpp_shaders_comp "${SRC_GLSL_COMP}" "GPU_COMPUTE_SHADER") + # Only enable to make sure they compile on their own. + # Otherwise it creates a warning about `pragma once`. + compile_sources_as_cpp(compositor_cpp_shaders_lib "${SRC_GLSL_LIB}" "GPU_LIBRARY_SHADER") +endif() \ No newline at end of file diff --git a/source/blender/compositor/shaders/library/gpu_shader_compositor_texture_utilities.glsl b/source/blender/compositor/shaders/library/gpu_shader_compositor_texture_utilities.glsl index b380c4819d5..99f0d5af19c 100644 --- a/source/blender/compositor/shaders/library/gpu_shader_compositor_texture_utilities.glsl +++ b/source/blender/compositor/shaders/library/gpu_shader_compositor_texture_utilities.glsl @@ -2,6 +2,9 @@ * * SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once +#include "gpu_shader_compat.hh" + /* A shorthand for 1D textureSize with a zero LOD. */ int texture_size(sampler1D sampler_1d) {