Files
test/source/blender/compositor/CMakeLists.txt
Omar Emara fa3e47523e Compositor: Port GLSL SMAA to CPU compositor
This patch ports the GLSL SMAA library to the CPU compositor in order to
unify the anti-aliasing behavior between the CPU and GPU compositor.
Additionally, the SMAA texture generator was removed since it is now
unused.

Previously, we used an external C++ library for SMAA anti-aliasing,
which is itself a port of the GLSL SMAA library. However, the code
structure and results of the library were different, which made it quite
difficult to match results between CPU and GPU, hence the decision to
port the library ourselves.

The port was performed through a complete copy of the library to C++,
retaining the same function and variable names, even if they are
different from Blender's naming conversions. The necessary code changes
were done to make it work in C++, including manually doing swizzling
which changes the code structure a bit.

Even after porting the library, there were still major differences
between CPU and GPU, due to different arithmetic precision. To fix this
some of the bilinear samplers used in branches and selections were
carefully changed to use point samplers to avoid discontinuities around
branches, also resulting in a nice performance improvement. Some slight
differences still exist due to different bilinear interpolation, but
they shall be looked into later once we have a baseline implementation.

The new implementation is slower than the existing implementation, most
likely due to the liberal use of bilinear interpolation, since it is
quite cheap on GPUs and the code even does more work to use bilinear
interpolation to avoid multiple texture fetches, except this causes a
slow down on CPUs. Some of those were alleviated as mentioned in the
previous section, but we can probably look into optimizing it further.

Pull Request: https://projects.blender.org/blender/blender/pulls/119414
2024-03-25 14:21:00 +01:00

633 lines
20 KiB
CMake

# SPDX-FileCopyrightText: 2011 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
add_subdirectory(realtime_compositor)
if(WITH_COMPOSITOR_CPU)
set(INC
.
intern
nodes
operations
algorithms
realtime_compositor
../blenkernel
../blentranslation
../imbuf
../makesrna
../nodes
../windowmanager
../nodes/composite
../nodes/intern
../render
../render/intern
# RNA_prototypes.h
${CMAKE_BINARY_DIR}/source/blender/makesrna
)
set(INC_SYS
)
set(SRC
COM_compositor.hh
COM_defines.h
COM_profile.hh
intern/COM_BufferArea.h
intern/COM_BufferRange.h
intern/COM_BuffersIterator.h
intern/COM_CPUDevice.cc
intern/COM_CPUDevice.h
intern/COM_CompositorContext.cc
intern/COM_CompositorContext.h
intern/COM_ConstantFolder.cc
intern/COM_ConstantFolder.h
intern/COM_Converter.cc
intern/COM_Converter.h
intern/COM_Debug.cc
intern/COM_Debug.h
intern/COM_Device.cc
intern/COM_Device.h
intern/COM_Enums.cc
intern/COM_Enums.h
intern/COM_ExecutionModel.cc
intern/COM_ExecutionModel.h
intern/COM_ExecutionSystem.cc
intern/COM_ExecutionSystem.h
intern/COM_FullFrameExecutionModel.cc
intern/COM_FullFrameExecutionModel.h
intern/COM_MemoryBuffer.cc
intern/COM_MemoryBuffer.h
intern/COM_MetaData.cc
intern/COM_MetaData.h
intern/COM_MultiThreadedOperation.cc
intern/COM_MultiThreadedOperation.h
intern/COM_MultiThreadedRowOperation.cc
intern/COM_MultiThreadedRowOperation.h
intern/COM_Node.cc
intern/COM_Node.h
intern/COM_NodeConverter.cc
intern/COM_NodeConverter.h
intern/COM_NodeGraph.cc
intern/COM_NodeGraph.h
intern/COM_NodeOperation.cc
intern/COM_NodeOperation.h
intern/COM_NodeOperationBuilder.cc
intern/COM_NodeOperationBuilder.h
intern/COM_SharedOperationBuffers.cc
intern/COM_SharedOperationBuffers.h
intern/COM_WorkPackage.h
intern/COM_WorkScheduler.cc
intern/COM_WorkScheduler.h
intern/COM_compositor.cc
intern/COM_profile.cc
operations/COM_QualityStepHelper.cc
operations/COM_QualityStepHelper.h
# Internal nodes
nodes/COM_SocketProxyNode.cc
nodes/COM_SocketProxyNode.h
# input nodes
nodes/COM_BokehImageNode.cc
nodes/COM_BokehImageNode.h
nodes/COM_ColorNode.cc
nodes/COM_ColorNode.h
nodes/COM_ImageNode.cc
nodes/COM_ImageNode.h
nodes/COM_MaskNode.cc
nodes/COM_MaskNode.h
nodes/COM_MovieClipNode.cc
nodes/COM_MovieClipNode.h
nodes/COM_RenderLayersNode.cc
nodes/COM_RenderLayersNode.h
nodes/COM_SceneTimeNode.cc
nodes/COM_SceneTimeNode.h
nodes/COM_SplitNode.cc
nodes/COM_SplitNode.h
nodes/COM_SwitchNode.cc
nodes/COM_SwitchNode.h
nodes/COM_SwitchViewNode.cc
nodes/COM_SwitchViewNode.h
nodes/COM_TextureNode.cc
nodes/COM_TextureNode.h
nodes/COM_TimeNode.cc
nodes/COM_TimeNode.h
nodes/COM_ValueNode.cc
nodes/COM_ValueNode.h
# output nodes
nodes/COM_CompositorNode.cc
nodes/COM_CompositorNode.h
nodes/COM_FileOutputNode.cc
nodes/COM_FileOutputNode.h
nodes/COM_ViewLevelsNode.cc
nodes/COM_ViewLevelsNode.h
nodes/COM_ViewerNode.cc
nodes/COM_ViewerNode.h
operations/COM_CalculateMeanOperation.cc
operations/COM_CalculateMeanOperation.h
operations/COM_CalculateStandardDeviationOperation.cc
operations/COM_CalculateStandardDeviationOperation.h
# distort nodes
nodes/COM_FlipNode.cc
nodes/COM_FlipNode.h
nodes/COM_RotateNode.cc
nodes/COM_RotateNode.h
nodes/COM_ScaleNode.cc
nodes/COM_ScaleNode.h
nodes/COM_TranslateNode.cc
nodes/COM_TranslateNode.h
nodes/COM_DisplaceNode.cc
nodes/COM_DisplaceNode.h
nodes/COM_MapUVNode.cc
nodes/COM_MapUVNode.h
nodes/COM_ChannelMatteNode.cc
nodes/COM_ChannelMatteNode.h
nodes/COM_ChromaMatteNode.cc
nodes/COM_ChromaMatteNode.h
nodes/COM_ColorMatteNode.cc
nodes/COM_ColorMatteNode.h
nodes/COM_DifferenceMatteNode.cc
nodes/COM_DifferenceMatteNode.h
nodes/COM_DistanceMatteNode.cc
nodes/COM_DistanceMatteNode.h
nodes/COM_LensDistortionNode.cc
nodes/COM_LensDistortionNode.h
nodes/COM_LuminanceMatteNode.cc
nodes/COM_LuminanceMatteNode.h
nodes/COM_GlareNode.cc
nodes/COM_GlareNode.h
nodes/COM_SunBeamsNode.cc
nodes/COM_SunBeamsNode.h
operations/COM_SunBeamsOperation.cc
operations/COM_SunBeamsOperation.h
nodes/COM_CryptomatteNode.cc
nodes/COM_CryptomatteNode.h
operations/COM_CryptomatteOperation.cc
operations/COM_CryptomatteOperation.h
nodes/COM_CornerPinNode.cc
nodes/COM_CornerPinNode.h
nodes/COM_PlaneTrackDeformNode.cc
nodes/COM_PlaneTrackDeformNode.h
nodes/COM_CropNode.cc
nodes/COM_CropNode.h
operations/COM_CropOperation.cc
operations/COM_CropOperation.h
nodes/COM_DefocusNode.cc
nodes/COM_DefocusNode.h
nodes/COM_MovieDistortionNode.cc
nodes/COM_MovieDistortionNode.h
nodes/COM_Stabilize2dNode.cc
nodes/COM_Stabilize2dNode.h
nodes/COM_TransformNode.cc
nodes/COM_TransformNode.h
# color nodes
nodes/COM_AlphaOverNode.cc
nodes/COM_AlphaOverNode.h
nodes/COM_BrightnessNode.cc
nodes/COM_BrightnessNode.h
nodes/COM_ColorBalanceNode.cc
nodes/COM_ColorBalanceNode.h
nodes/COM_ColorCorrectionNode.cc
nodes/COM_ColorCorrectionNode.h
nodes/COM_ColorCurveNode.cc
nodes/COM_ColorCurveNode.h
nodes/COM_ColorExposureNode.cc
nodes/COM_ColorExposureNode.h
nodes/COM_ColorRampNode.cc
nodes/COM_ColorRampNode.h
nodes/COM_ColorToBWNode.cc
nodes/COM_ColorToBWNode.h
nodes/COM_ConvertAlphaNode.cc
nodes/COM_ConvertAlphaNode.h
nodes/COM_ConvertColorSpaceNode.cc
nodes/COM_ConvertColorSpaceNode.h
nodes/COM_GammaNode.cc
nodes/COM_GammaNode.h
nodes/COM_HueSaturationValueCorrectNode.cc
nodes/COM_HueSaturationValueCorrectNode.h
nodes/COM_HueSaturationValueNode.cc
nodes/COM_HueSaturationValueNode.h
nodes/COM_InvertNode.cc
nodes/COM_InvertNode.h
nodes/COM_MixNode.cc
nodes/COM_MixNode.h
nodes/COM_SetAlphaNode.cc
nodes/COM_SetAlphaNode.h
nodes/COM_TonemapNode.cc
nodes/COM_TonemapNode.h
nodes/COM_VectorCurveNode.cc
nodes/COM_VectorCurveNode.h
nodes/COM_ZCombineNode.cc
nodes/COM_ZCombineNode.h
operations/COM_TonemapOperation.cc
operations/COM_TonemapOperation.h
# converter nodes
nodes/COM_CombineColorNode.cc
nodes/COM_CombineColorNode.h
nodes/COM_CombineColorNodeLegacy.cc
nodes/COM_CombineColorNodeLegacy.h
nodes/COM_CombineXYZNode.cc
nodes/COM_CombineXYZNode.h
nodes/COM_IDMaskNode.cc
nodes/COM_IDMaskNode.h
nodes/COM_SeparateColorNode.cc
nodes/COM_SeparateColorNode.h
nodes/COM_SeparateColorNodeLegacy.cc
nodes/COM_SeparateColorNodeLegacy.h
nodes/COM_SeparateXYZNode.cc
nodes/COM_SeparateXYZNode.h
nodes/COM_MapRangeNode.cc
nodes/COM_MapRangeNode.h
nodes/COM_MapValueNode.cc
nodes/COM_MapValueNode.h
nodes/COM_MathNode.cc
nodes/COM_MathNode.h
nodes/COM_NormalNode.cc
nodes/COM_NormalNode.h
nodes/COM_NormalizeNode.cc
nodes/COM_NormalizeNode.h
operations/COM_NormalizeOperation.cc
operations/COM_NormalizeOperation.h
nodes/COM_PixelateNode.cc
nodes/COM_PixelateNode.h
operations/COM_PixelateOperation.cc
operations/COM_PixelateOperation.h
# Filter nodes
nodes/COM_BilateralBlurNode.cc
nodes/COM_BilateralBlurNode.h
operations/COM_BilateralBlurOperation.cc
operations/COM_BilateralBlurOperation.h
nodes/COM_VectorBlurNode.cc
nodes/COM_VectorBlurNode.h
operations/COM_VectorBlurOperation.cc
operations/COM_VectorBlurOperation.h
nodes/COM_AntiAliasingNode.cc
nodes/COM_AntiAliasingNode.h
nodes/COM_BlurNode.cc
nodes/COM_BlurNode.h
nodes/COM_BokehBlurNode.cc
nodes/COM_BokehBlurNode.h
nodes/COM_DenoiseNode.cc
nodes/COM_DenoiseNode.h
nodes/COM_DespeckleNode.cc
nodes/COM_DespeckleNode.h
nodes/COM_DilateErodeNode.cc
nodes/COM_DilateErodeNode.h
nodes/COM_DirectionalBlurNode.cc
nodes/COM_DirectionalBlurNode.h
nodes/COM_FilterNode.cc
nodes/COM_FilterNode.h
nodes/COM_InpaintNode.cc
nodes/COM_InpaintNode.h
nodes/COM_KuwaharaNode.cc
nodes/COM_KuwaharaNode.h
nodes/COM_PosterizeNode.cc
nodes/COM_PosterizeNode.h
operations/COM_BlurBaseOperation.cc
operations/COM_BlurBaseOperation.h
operations/COM_BokehBlurOperation.cc
operations/COM_BokehBlurOperation.h
operations/COM_DirectionalBlurOperation.cc
operations/COM_DirectionalBlurOperation.h
operations/COM_FastGaussianBlurOperation.cc
operations/COM_FastGaussianBlurOperation.h
operations/COM_GammaCorrectOperation.cc
operations/COM_GammaCorrectOperation.h
operations/COM_GaussianAlphaBlurBaseOperation.cc
operations/COM_GaussianAlphaBlurBaseOperation.h
operations/COM_GaussianBlurBaseOperation.cc
operations/COM_GaussianBlurBaseOperation.h
operations/COM_GaussianBokehBlurOperation.cc
operations/COM_GaussianBokehBlurOperation.h
operations/COM_KuwaharaAnisotropicOperation.cc
operations/COM_KuwaharaAnisotropicOperation.h
operations/COM_KuwaharaAnisotropicStructureTensorOperation.cc
operations/COM_KuwaharaAnisotropicStructureTensorOperation.h
operations/COM_KuwaharaClassicOperation.cc
operations/COM_KuwaharaClassicOperation.h
operations/COM_MovieClipAttributeOperation.cc
operations/COM_MovieClipAttributeOperation.h
operations/COM_MovieDistortionOperation.cc
operations/COM_MovieDistortionOperation.h
operations/COM_PosterizeOperation.cc
operations/COM_PosterizeOperation.h
operations/COM_SMAAOperation.cc
operations/COM_SMAAOperation.h
operations/COM_SummedAreaTableOperation.cc
operations/COM_SummedAreaTableOperation.h
operations/COM_VariableSizeBokehBlurOperation.cc
operations/COM_VariableSizeBokehBlurOperation.h
# Matte nodes
nodes/COM_BoxMaskNode.cc
nodes/COM_BoxMaskNode.h
nodes/COM_ColorSpillNode.cc
nodes/COM_ColorSpillNode.h
nodes/COM_DoubleEdgeMaskNode.cc
nodes/COM_DoubleEdgeMaskNode.h
nodes/COM_EllipseMaskNode.cc
nodes/COM_EllipseMaskNode.h
operations/COM_DoubleEdgeMaskOperation.cc
operations/COM_DoubleEdgeMaskOperation.h
nodes/COM_KeyingScreenNode.cc
nodes/COM_KeyingScreenNode.h
operations/COM_KeyingScreenOperation.cc
operations/COM_KeyingScreenOperation.h
nodes/COM_TrackPositionNode.cc
nodes/COM_TrackPositionNode.h
operations/COM_TrackPositionOperation.cc
operations/COM_TrackPositionOperation.h
nodes/COM_KeyingNode.cc
nodes/COM_KeyingNode.h
operations/COM_KeyingBlurOperation.cc
operations/COM_KeyingBlurOperation.h
operations/COM_KeyingClipOperation.cc
operations/COM_KeyingClipOperation.h
operations/COM_KeyingDespillOperation.cc
operations/COM_KeyingDespillOperation.h
operations/COM_KeyingOperation.cc
operations/COM_KeyingOperation.h
operations/COM_ColorSpillOperation.cc
operations/COM_ColorSpillOperation.h
operations/COM_RenderLayersProg.cc
operations/COM_RenderLayersProg.h
operations/COM_BokehImageOperation.cc
operations/COM_BokehImageOperation.h
operations/COM_ImageOperation.cc
operations/COM_ImageOperation.h
operations/COM_MultilayerImageOperation.cc
operations/COM_MultilayerImageOperation.h
operations/COM_TextureOperation.cc
operations/COM_TextureOperation.h
operations/COM_SocketProxyOperation.cc
operations/COM_SocketProxyOperation.h
operations/COM_CompositorOperation.cc
operations/COM_CompositorOperation.h
operations/COM_ConvertDepthToRadiusOperation.cc
operations/COM_ConvertDepthToRadiusOperation.h
operations/COM_FileOutputOperation.cc
operations/COM_FileOutputOperation.h
operations/COM_PreviewOperation.cc
operations/COM_PreviewOperation.h
operations/COM_SplitOperation.cc
operations/COM_SplitOperation.h
operations/COM_ViewerOperation.cc
operations/COM_ViewerOperation.h
operations/COM_ZCombineOperation.cc
operations/COM_ZCombineOperation.h
operations/COM_ChangeHSVOperation.cc
operations/COM_ChangeHSVOperation.h
operations/COM_ChannelMatteOperation.cc
operations/COM_ChannelMatteOperation.h
operations/COM_ChromaMatteOperation.cc
operations/COM_ChromaMatteOperation.h
operations/COM_ColorCurveOperation.cc
operations/COM_ColorCurveOperation.h
operations/COM_ColorExposureOperation.cc
operations/COM_ColorExposureOperation.h
operations/COM_ColorMatteOperation.cc
operations/COM_ColorMatteOperation.h
operations/COM_ColorRampOperation.cc
operations/COM_ColorRampOperation.h
operations/COM_CurveBaseOperation.cc
operations/COM_CurveBaseOperation.h
operations/COM_DifferenceMatteOperation.cc
operations/COM_DifferenceMatteOperation.h
operations/COM_DistanceRGBMatteOperation.cc
operations/COM_DistanceRGBMatteOperation.h
operations/COM_DistanceYCCMatteOperation.cc
operations/COM_DistanceYCCMatteOperation.h
operations/COM_HueSaturationValueCorrectOperation.cc
operations/COM_HueSaturationValueCorrectOperation.h
operations/COM_LuminanceMatteOperation.cc
operations/COM_LuminanceMatteOperation.h
operations/COM_VectorCurveOperation.cc
operations/COM_VectorCurveOperation.h
operations/COM_BrightnessOperation.cc
operations/COM_BrightnessOperation.h
operations/COM_ColorCorrectionOperation.cc
operations/COM_ColorCorrectionOperation.h
operations/COM_ConstantOperation.cc
operations/COM_ConstantOperation.h
operations/COM_GammaOperation.cc
operations/COM_GammaOperation.h
operations/COM_MixOperation.cc
operations/COM_MixOperation.h
operations/COM_SetColorOperation.cc
operations/COM_SetColorOperation.h
operations/COM_SetValueOperation.cc
operations/COM_SetValueOperation.h
operations/COM_SetVectorOperation.cc
operations/COM_SetVectorOperation.h
operations/COM_MathBaseOperation.cc
operations/COM_MathBaseOperation.h
operations/COM_AlphaOverKeyOperation.cc
operations/COM_AlphaOverKeyOperation.h
operations/COM_AlphaOverMixedOperation.cc
operations/COM_AlphaOverMixedOperation.h
operations/COM_AlphaOverPremultiplyOperation.cc
operations/COM_AlphaOverPremultiplyOperation.h
operations/COM_ColorBalanceASCCDLOperation.cc
operations/COM_ColorBalanceASCCDLOperation.h
operations/COM_ColorBalanceLGGOperation.cc
operations/COM_ColorBalanceLGGOperation.h
operations/COM_InvertOperation.cc
operations/COM_InvertOperation.h
operations/COM_MapRangeOperation.cc
operations/COM_MapRangeOperation.h
operations/COM_MapValueOperation.cc
operations/COM_MapValueOperation.h
operations/COM_SetAlphaMultiplyOperation.cc
operations/COM_SetAlphaMultiplyOperation.h
operations/COM_SetAlphaReplaceOperation.cc
operations/COM_SetAlphaReplaceOperation.h
# Distort operation
operations/COM_DisplaceOperation.cc
operations/COM_DisplaceOperation.h
operations/COM_DisplaceSimpleOperation.cc
operations/COM_DisplaceSimpleOperation.h
operations/COM_FlipOperation.cc
operations/COM_FlipOperation.h
operations/COM_MapUVOperation.cc
operations/COM_MapUVOperation.h
operations/COM_PlaneCornerPinOperation.cc
operations/COM_PlaneCornerPinOperation.h
operations/COM_PlaneDistortCommonOperation.cc
operations/COM_PlaneDistortCommonOperation.h
operations/COM_PlaneTrackOperation.cc
operations/COM_PlaneTrackOperation.h
operations/COM_ProjectorLensDistortionOperation.cc
operations/COM_ProjectorLensDistortionOperation.h
operations/COM_RotateOperation.cc
operations/COM_RotateOperation.h
operations/COM_ScaleOperation.cc
operations/COM_ScaleOperation.h
operations/COM_ScreenLensDistortionOperation.cc
operations/COM_ScreenLensDistortionOperation.h
operations/COM_TransformOperation.cc
operations/COM_TransformOperation.h
operations/COM_TranslateOperation.cc
operations/COM_TranslateOperation.h
# Filter operations
operations/COM_ConvolutionEdgeFilterOperation.cc
operations/COM_ConvolutionEdgeFilterOperation.h
operations/COM_ConvolutionFilterOperation.cc
operations/COM_ConvolutionFilterOperation.h
operations/COM_DenoiseOperation.cc
operations/COM_DenoiseOperation.h
operations/COM_DespeckleOperation.cc
operations/COM_DespeckleOperation.h
operations/COM_DilateErodeOperation.cc
operations/COM_DilateErodeOperation.h
operations/COM_GlareBaseOperation.cc
operations/COM_GlareBaseOperation.h
operations/COM_GlareBloomOperation.cc
operations/COM_GlareBloomOperation.h
operations/COM_GlareFogGlowOperation.cc
operations/COM_GlareFogGlowOperation.h
operations/COM_GlareGhostOperation.cc
operations/COM_GlareGhostOperation.h
operations/COM_GlareSimpleStarOperation.cc
operations/COM_GlareSimpleStarOperation.h
operations/COM_GlareStreaksOperation.cc
operations/COM_GlareStreaksOperation.h
operations/COM_GlareThresholdOperation.cc
operations/COM_GlareThresholdOperation.h
operations/COM_InpaintOperation.cc
operations/COM_InpaintOperation.h
operations/COM_SetSamplerOperation.cc
operations/COM_SetSamplerOperation.h
# Convert operations
operations/COM_ConvertOperation.cc
operations/COM_ConvertOperation.h
operations/COM_IDMaskOperation.cc
operations/COM_IDMaskOperation.h
operations/COM_ConvertColorSpaceOperation.cc
operations/COM_ConvertColorSpaceOperation.h
operations/COM_DotproductOperation.cc
operations/COM_DotproductOperation.h
# Matte operation
operations/COM_BoxMaskOperation.cc
operations/COM_BoxMaskOperation.h
operations/COM_EllipseMaskOperation.cc
operations/COM_EllipseMaskOperation.h
operations/COM_ConvertColorProfileOperation.cc
operations/COM_ConvertColorProfileOperation.h
operations/COM_MovieClipOperation.cc
operations/COM_MovieClipOperation.h
operations/COM_MaskOperation.cc
operations/COM_MaskOperation.h
algorithms/COM_JumpFloodingAlgorithm.cc
algorithms/COM_JumpFloodingAlgorithm.h
algorithms/COM_SymmetricSeparableBlurVariableSizeAlgorithm.cc
algorithms/COM_SymmetricSeparableBlurVariableSizeAlgorithm.h
)
set(LIB
bf_blenkernel
PRIVATE bf::blenlib
PRIVATE bf::depsgraph
PRIVATE bf::dna
PRIVATE bf::intern::clog
PRIVATE bf::intern::guardedalloc
bf_realtime_compositor
PRIVATE bf::intern::atomic
)
list(APPEND INC
${CMAKE_CURRENT_BINARY_DIR}/operations
)
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()
blender_add_lib(bf_compositor "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
blender_set_target_unity_build(bf_compositor 10)
if(COMMAND target_precompile_headers)
target_precompile_headers(bf_compositor PRIVATE COM_precomp.h)
endif()
if(CXX_WARN_NO_SUGGEST_OVERRIDE)
target_compile_options(bf_compositor PRIVATE "-Wsuggest-override")
endif()
if(WITH_GTESTS)
set(TEST_SRC
tests/COM_BufferArea_test.cc
tests/COM_BufferRange_test.cc
tests/COM_BuffersIterator_test.cc
tests/COM_ComputeSummedAreaTableOperation_test.cc
tests/COM_NodeOperation_test.cc
)
set(TEST_INC
)
set(TEST_LIB
bf_compositor
)
blender_add_test_suite_lib(compositor "${TEST_SRC}" "${INC};${TEST_INC}" "${INC_SYS}" "${LIB};${TEST_LIB}")
endif()
# RNA_prototypes.h
add_dependencies(bf_compositor bf_rna)
# End WITH_COMPOSITOR_CPU.
endif()