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
183 lines
4.8 KiB
CMake
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)
|