Files
test2/source/blender/nodes/composite/CMakeLists.txt
Omar Emara fbdb803750 Compositor: Implement Multi-Function Procedure Operation
This patch implements the multi-function procedure operation for the new
CPU compositor, which is a concrete implementation of the PixelOperation
abstraction, much like ShaderOperation, but uses the FN system to more
efficiently evaluate a group of pixel-wise operations.

A few changes were done to FN to support development. The multi-function
builder now allows retrieving the built function. A new builder method
construct_and_set_matching_fn_cb was added to allow using the SI_SO
builders with non static functions. A few other SI_SO were added to. And
a CPP type for float4 was added.

Additionally, the Gamma, Math, Brightness, and Normal nodes were
implemented as an example. The Math node implementation reused the
existing GN math node implementation, so the code was moved to a common
file.

Reference #125968.

Pull Request: https://projects.blender.org/blender/blender/pulls/126988
2024-10-15 06:51:42 +02:00

183 lines
4.8 KiB
CMake

# SPDX-FileCopyrightText: 2021 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
set(INC
.
..
../intern
../../editors/include
../../blenkernel
../../blentranslation
../../functions
../../gpu
../../imbuf
../../makesrna
../../render
../../windowmanager
../../compositor/realtime_compositor
../../compositor/realtime_compositor/algorithms
../../compositor/realtime_compositor/cached_resources
# RNA_prototypes.hh
${CMAKE_BINARY_DIR}/source/blender/makesrna
)
set(INC_SYS
)
set(SRC
nodes/node_composite_alpha_over.cc
nodes/node_composite_antialiasing.cc
nodes/node_composite_bilateralblur.cc
nodes/node_composite_blur.cc
nodes/node_composite_bokehblur.cc
nodes/node_composite_bokehimage.cc
nodes/node_composite_boxmask.cc
nodes/node_composite_brightness.cc
nodes/node_composite_channel_matte.cc
nodes/node_composite_chroma_matte.cc
nodes/node_composite_color_matte.cc
nodes/node_composite_color_spill.cc
nodes/node_composite_colorbalance.cc
nodes/node_composite_colorcorrection.cc
nodes/node_composite_common.cc
nodes/node_composite_composite.cc
nodes/node_composite_convert_color_space.cc
nodes/node_composite_cornerpin.cc
nodes/node_composite_crop.cc
nodes/node_composite_cryptomatte.cc
nodes/node_composite_curves.cc
nodes/node_composite_defocus.cc
nodes/node_composite_denoise.cc
nodes/node_composite_despeckle.cc
nodes/node_composite_diff_matte.cc
nodes/node_composite_dilate.cc
nodes/node_composite_directionalblur.cc
nodes/node_composite_displace.cc
nodes/node_composite_distance_matte.cc
nodes/node_composite_double_edge_mask.cc
nodes/node_composite_ellipsemask.cc
nodes/node_composite_exposure.cc
nodes/node_composite_file_output.cc
nodes/node_composite_filter.cc
nodes/node_composite_flip.cc
nodes/node_composite_gamma.cc
nodes/node_composite_glare.cc
nodes/node_composite_hue_sat_val.cc
nodes/node_composite_huecorrect.cc
nodes/node_composite_id_mask.cc
nodes/node_composite_image.cc
nodes/node_composite_inpaint.cc
nodes/node_composite_invert.cc
nodes/node_composite_keying.cc
nodes/node_composite_keyingscreen.cc
nodes/node_composite_kuwahara.cc
nodes/node_composite_lensdist.cc
nodes/node_composite_levels.cc
nodes/node_composite_luma_matte.cc
nodes/node_composite_map_range.cc
nodes/node_composite_map_uv.cc
nodes/node_composite_map_value.cc
nodes/node_composite_mask.cc
nodes/node_composite_math.cc
nodes/node_composite_mixrgb.cc
nodes/node_composite_movieclip.cc
nodes/node_composite_moviedistortion.cc
nodes/node_composite_normal.cc
nodes/node_composite_normalize.cc
nodes/node_composite_pixelate.cc
nodes/node_composite_planetrackdeform.cc
nodes/node_composite_posterize.cc
nodes/node_composite_premulkey.cc
nodes/node_composite_rgb.cc
nodes/node_composite_rotate.cc
nodes/node_composite_scale.cc
nodes/node_composite_scene_time.cc
nodes/node_composite_sepcomb_color.cc
nodes/node_composite_sepcomb_hsva.cc
nodes/node_composite_sepcomb_rgba.cc
nodes/node_composite_sepcomb_xyz.cc
nodes/node_composite_sepcomb_ycca.cc
nodes/node_composite_sepcomb_yuva.cc
nodes/node_composite_setalpha.cc
nodes/node_composite_split.cc
nodes/node_composite_stabilize2d.cc
nodes/node_composite_sunbeams.cc
nodes/node_composite_switch.cc
nodes/node_composite_switchview.cc
nodes/node_composite_texture.cc
nodes/node_composite_tonemap.cc
nodes/node_composite_trackpos.cc
nodes/node_composite_transform.cc
nodes/node_composite_translate.cc
nodes/node_composite_val_to_rgb.cc
nodes/node_composite_value.cc
nodes/node_composite_vec_blur.cc
nodes/node_composite_viewer.cc
nodes/node_composite_zcombine.cc
node_composite_register.cc
node_composite_tree.cc
node_composite_util.cc
node_composite_register.hh
node_composite_util.hh
)
set(LIB
PRIVATE bf::blenlib
PRIVATE bf::depsgraph
PRIVATE bf::dna
bf_functions
PRIVATE bf::intern::guardedalloc
PRIVATE bf::extern::fmtlib
bf_realtime_compositor
)
if(WITH_OPENCOLORIO)
add_definitions(-DWITH_OCIO)
endif()
if(WITH_IMAGE_OPENEXR)
add_definitions(-DWITH_OPENEXR)
endif()
if(WITH_COMPOSITOR_CPU)
list(APPEND INC
../../compositor
)
add_definitions(-DWITH_COMPOSITOR_CPU)
endif()
if(WITH_OPENIMAGEDENOISE)
add_definitions(-DWITH_OPENIMAGEDENOISE)
add_definitions(-DOIDN_STATIC_LIB)
list(APPEND INC_SYS
${OPENIMAGEDENOISE_INCLUDE_DIRS}
${TBB_INCLUDE_DIRS}
)
list(APPEND LIB
${OPENIMAGEDENOISE_LIBRARIES}
${TBB_LIBRARIES}
)
endif()
if(WITH_FFTW3)
list(APPEND INC_SYS
${FFTW3_INCLUDE_DIRS}
)
list(APPEND LIB
${FFTW3_LIBRARIES}
)
add_definitions(-DWITH_FFTW3)
endif()
blender_add_lib(bf_nodes_composite "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
blender_set_target_unity_build(bf_nodes_composite 10)
# RNA_prototypes.hh
add_dependencies(bf_nodes_composite bf_rna)