Blender V4.3
blender::compositor Namespace Reference

Namespaces

namespace  tests
 

Classes

struct  Accumulator
 
class  AlphaOverKeyOperation
 
class  AlphaOverMixedOperation
 
class  AlphaOverNode
 AlphaOverNode. More...
 
class  AlphaOverPremultiplyOperation
 
class  AntiAliasingNode
 AntiAliasingNode. More...
 
struct  AvgLogLum
 temporarily storage during execution of Tone-map More...
 
class  BaseImageOperation
 Base class for all image operations. More...
 
class  BaseScaleOperation
 
class  BilateralBlurNode
 BilateralBlurNode. More...
 
class  BilateralBlurOperation
 
class  BlurBaseOperation
 
class  BlurNode
 BlurNode. More...
 
class  BokehBlurNode
 BokehBlurNode. More...
 
class  BokehBlurOperation
 
class  BokehImageNode
 BokehImageNode. More...
 
class  BokehImageOperation
 
class  BoxMaskNode
 BoxMaskNode. More...
 
class  BoxMaskOperation
 
class  BrightnessNode
 BrightnessNode. More...
 
class  BrightnessOperation
 
class  BufferArea
 
class  BufferAreaIterator
 
class  BufferRange
 
class  BufferRangeIterator
 
class  BuffersIteratorBuilder
 
class  CalculateMeanOperation
 base class of CalculateMean, implementing the simple CalculateMean More...
 
class  CalculateStandardDeviationOperation
 base class of CalculateStandardDeviation, implementing the simple CalculateStandardDeviation. More...
 
class  ChangeHSVOperation
 
class  ChannelMatteNode
 ChannelMatteNode. More...
 
class  ChannelMatteOperation
 
class  ChromaMatteNode
 ChromaMatteNode. More...
 
class  ChromaMatteOperation
 
class  ColorBalanceASCCDLOperation
 
class  ColorBalanceLGGOperation
 
class  ColorBalanceNode
 ColorBalanceNode. More...
 
class  ColorBalanceWhitepointOperation
 
class  ColorCorrectionNode
 ColorCorrectionNode. More...
 
class  ColorCorrectionOperation
 
class  ColorCurveNode
 ColorCurveNode. More...
 
class  ColorCurveOperation
 
class  ColorMatteNode
 ColorMatteNode. More...
 
class  ColorMatteOperation
 
class  ColorNode
 ColorNode. More...
 
class  ColorRampNode
 ColorRampNode. More...
 
class  ColorRampOperation
 
class  ColorSpillNode
 ColorSpillNode. More...
 
class  ColorSpillOperation
 
class  ColorToBWNode
 ColorToBWNode. More...
 
class  CombineChannelsOperation
 
class  CombineColorNode
 
class  CombineColorNodeLegacy
 
class  CombineHSVANode
 
class  CombineRGBANode
 
class  CombineXYZNode
 SeparateXYZNode. More...
 
class  CombineYCCANode
 
class  CombineYUVANode
 
class  CompositorContext
 Overall context of the compositor. More...
 
class  CompositorNode
 CompositorNode. More...
 
class  CompositorOperation
 Compositor output operation. More...
 
class  ConstantFolder
 
class  ConstantLevelColorCurveOperation
 
class  ConstantOperation
 
class  ConvertAlphaNode
 ConvertAlphaNode. More...
 
class  ConvertBaseOperation
 
class  ConvertColorProfileOperation
 
class  ConvertColorSpaceNode
 ImageNode. More...
 
class  ConvertColorSpaceOperation
 
class  ConvertColorToBWOperation
 
class  ConvertColorToValueOperation
 
class  ConvertColorToVectorOperation
 
class  ConvertDepthToRadiusOperation
 
class  ConvertHSLToRGBOperation
 
class  ConvertHSVToRGBOperation
 
class  ConvertPremulToStraightOperation
 
class  ConvertRGBToHSLOperation
 
class  ConvertRGBToHSVOperation
 
class  ConvertRGBToYCCOperation
 
class  ConvertRGBToYUVOperation
 
class  ConvertStraightToPremulOperation
 
class  ConvertValueToColorOperation
 
class  ConvertValueToVectorOperation
 
class  ConvertVectorToColorOperation
 
class  ConvertVectorToValueOperation
 
class  ConvertYCCToRGBOperation
 
class  ConvertYUVToRGBOperation
 
class  ConvolutionEdgeFilterOperation
 
class  ConvolutionFilterOperation
 
class  CornerPinNode
 CornerPinNode. More...
 
class  CPUDevice
 class representing a CPU device. More...
 
class  CropBaseOperation
 
class  CropImageOperation
 
class  CropNode
 CropNode. More...
 
class  CropOperation
 
class  CryptomatteBaseNode
 CryptomatteNode. More...
 
class  CryptomatteLegacyNode
 
class  CryptomatteNode
 
class  CryptomatteOperation
 
class  CryptomattePickOperation
 
class  CurveBaseOperation
 
class  DebugInfo
 
class  DefocusNode
 DefocusNode. More...
 
class  DenoiseBaseOperation
 
class  DenoiseFilter
 
class  DenoiseNode
 DenoiseNode. More...
 
class  DenoiseOperation
 
class  DenoisePrefilterOperation
 
class  DespeckleNode
 DespeckleNode. More...
 
class  DespeckleOperation
 
class  Device
 Abstract class for device implementations to be used by the Compositor. devices are queried, initialized and used by the WorkScheduler. work are packaged as a WorkPackage instance. More...
 
class  DifferenceMatteNode
 DifferenceMatteNode. More...
 
class  DifferenceMatteOperation
 
class  DilateDistanceOperation
 
class  DilateErodeNode
 DilateErodeNode. More...
 
class  DilateErodeThresholdOperation
 
class  DilateStepOperation
 
class  DirectionalBlurNode
 DirectionalBlurNode. More...
 
class  DirectionalBlurOperation
 
class  DisplaceNode
 DisplaceNode. More...
 
class  DisplaceOperation
 
class  DistanceMatteNode
 DistanceMatteNode. More...
 
class  DistanceRGBMatteOperation
 
class  DistanceYCCMatteOperation
 
class  DotproductOperation
 
class  DoubleEdgeMaskNode
 DoubleEdgeMaskNode. More...
 
class  DoubleEdgeMaskOperation
 
class  EllipseMaskNode
 EllipseMaskNode. More...
 
class  EllipseMaskOperation
 
class  ErodeDistanceOperation
 
class  ErodeStepOperation
 
class  ExecutionModel
 
class  ExecutionSystem
 the ExecutionSystem contains the whole compositor tree. More...
 
class  ExposureNode
 ExposureNode. More...
 
class  ExposureOperation
 
class  FastGaussianBlurOperation
 
struct  FileOutputInput
 
class  FileOutputNode
 FileOutputNode. More...
 
class  FileOutputOperation
 
class  FilterNode
 FilterNode. More...
 
class  FlipNode
 FlipNode. More...
 
class  FlipOperation
 
class  FullFrameExecutionModel
 
class  GammaCorrectOperation
 
class  GammaNode
 GammaNode. More...
 
class  GammaOperation
 
class  GammaUncorrectOperation
 
class  GaussianAlphaBlurBaseOperation
 
class  GaussianAlphaXBlurOperation
 
class  GaussianAlphaYBlurOperation
 
class  GaussianBlurBaseOperation
 
class  GaussianBlurReferenceOperation
 
class  GaussianBokehBlurOperation
 
class  GaussianXBlurOperation
 
class  GaussianYBlurOperation
 
class  GlareBaseOperation
 
class  GlareBloomOperation
 
class  GlareFogGlowOperation
 
class  GlareGhostOperation
 
class  GlareNode
 GlareNode. More...
 
class  GlareSimpleStarOperation
 
class  GlareStreaksOperation
 
class  GlareThresholdOperation
 
class  HueSaturationValueCorrectNode
 HueSaturationValueCorrectNode. More...
 
class  HueSaturationValueCorrectOperation
 
class  HueSaturationValueNode
 HueSaturationValueNode. More...
 
class  IDMaskNode
 IDMaskNode. More...
 
class  IDMaskOperation
 
class  ImageAlphaOperation
 
class  ImageNode
 ImageNode. More...
 
class  ImageOperation
 
class  InpaintNode
 InpaintNode. More...
 
class  InpaintSimpleOperation
 
class  InvertNode
 InvertNode. More...
 
class  InvertOperation
 
class  KeyingBlurOperation
 
class  KeyingClipOperation
 
class  KeyingDespillOperation
 
class  KeyingNode
 KeyingNode. More...
 
class  KeyingOperation
 
class  KeyingScreenNode
 KeyingScreenNode. More...
 
class  KeyingScreenOperation
 
class  KuwaharaAnisotropicOperation
 
class  KuwaharaAnisotropicStructureTensorOperation
 
class  KuwaharaClassicOperation
 
class  KuwaharaNode
 KuwaharaNode. More...
 
class  LensDistortionNode
 LensDistortionNode. More...
 
struct  Luminance
 
class  LuminanceMatteNode
 LuminanceMatteNode. More...
 
class  LuminanceMatteOperation
 
class  MapRangeNode
 MapRangeNode. More...
 
class  MapRangeOperation
 
class  MapUVNode
 MapUVNode. More...
 
class  MapUVOperation
 
class  MapValueNode
 MapValueNode. More...
 
class  MapValueOperation
 
class  MaskNode
 MaskNode. More...
 
class  MaskOperation
 
class  MathAbsoluteOperation
 
class  MathAddOperation
 
class  MathArcCosineOperation
 
class  MathArcSineOperation
 
class  MathArcTan2Operation
 
class  MathArcTangentOperation
 
class  MathBaseOperation
 
class  MathCeilOperation
 
class  MathCompareOperation
 
class  MathCosineOperation
 
class  MathDegreesOperation
 
class  MathDivideOperation
 
class  MathExponentOperation
 
class  MathFlooredModuloOperation
 
class  MathFloorOperation
 
class  MathFractOperation
 
class  MathFunctor2Operation
 
class  MathGreaterThanOperation
 
class  MathHyperbolicCosineOperation
 
class  MathHyperbolicSineOperation
 
class  MathHyperbolicTangentOperation
 
class  MathInverseSqrtOperation
 
class  MathLessThanOperation
 
class  MathLogarithmOperation
 
class  MathMaximumOperation
 
class  MathMinimumOperation
 
class  MathModuloOperation
 
class  MathMultiplyAddOperation
 
class  MathMultiplyOperation
 
class  MathNode
 MathNode. More...
 
class  MathPingpongOperation
 
class  MathPowerOperation
 
class  MathRadiansOperation
 
class  MathRoundOperation
 
class  MathSignOperation
 
class  MathSineOperation
 
class  MathSmoothMaxOperation
 
class  MathSmoothMinOperation
 
class  MathSnapOperation
 
class  MathSqrtOperation
 
class  MathSubtractOperation
 
class  MathTangentOperation
 
class  MathTruncOperation
 
class  MathWrapOperation
 
struct  Max2Selector
 
class  MemoryBuffer
 a MemoryBuffer contains access to the data More...
 
class  MetaData
 
struct  MetaDataExtractCallbackData
 
struct  Min2Selector
 
class  MixAddOperation
 
class  MixBaseOperation
 
class  MixBlendOperation
 
class  MixColorBurnOperation
 
class  MixColorOperation
 
class  MixDarkenOperation
 
class  MixDifferenceOperation
 
class  MixDivideOperation
 
class  MixDodgeOperation
 
class  MixExclusionOperation
 
class  MixGlareOperation
 
class  MixHueOperation
 
class  MixLightenOperation
 
class  MixLinearLightOperation
 
class  MixMultiplyOperation
 
class  MixNode
 MixNode. More...
 
class  MixOverlayOperation
 
class  MixSaturationOperation
 
class  MixScreenOperation
 
class  MixSoftLightOperation
 
class  MixSubtractOperation
 
class  MixValueOperation
 
struct  MotionLine
 
struct  MotionRect
 
class  MovieClipAlphaOperation
 
class  MovieClipAttributeOperation
 
class  MovieClipBaseOperation
 
class  MovieClipNode
 MovieClipNode. More...
 
class  MovieClipOperation
 
class  MovieDistortionNode
 MovieDistortionNode. More...
 
class  MovieDistortionOperation
 
class  MultilayerBaseOperation
 
class  MultilayerColorOperation
 
class  MultilayerValueOperation
 
class  MultilayerVectorOperation
 
class  MultiThreadedOperation
 
class  MultiThreadedRowOperation
 
class  Node
 
class  NodeConverter
 
class  NodeGraph
 
class  NodeInput
 NodeInput are sockets that can receive data/input. More...
 
class  NodeOperation
 NodeOperation contains calculation logic. More...
 
class  NodeOperationBuilder
 
struct  NodeOperationFlags
 
struct  NodeOperationHash
 
class  NodeOperationInput
 
class  NodeOperationOutput
 
class  NodeOutput
 NodeOutput are sockets that can send data/input. More...
 
class  NormalizeNode
 NormalizeNode. More...
 
class  NormalizeOperation
 base class of normalize, implementing the simple normalize More...
 
class  NormalNode
 NormalNode. More...
 
class  PhotoreceptorTonemapOperation
 class of tone-map, implementing the photo-receptor tone-map most parts have already been done in TonemapOperation. More...
 
class  PixelateNode
 PixelateNode. More...
 
class  PixelateOperation
 
struct  PixelCursor
 
class  PlaneCornerPinMaskOperation
 
class  PlaneCornerPinWarpImageOperation
 
class  PlaneDistortBaseOperation
 
class  PlaneDistortMaskOperation
 
class  PlaneDistortWarpImageOperation
 
class  PlaneTrackCommon
 
class  PlaneTrackDeformNode
 PlaneTrackDeformNode. More...
 
class  PlaneTrackMaskOperation
 
class  PlaneTrackWarpImageOperation
 
class  PosterizeNode
 PosterizeNode. More...
 
class  PosterizeOperation
 
class  PreviewOperation
 
class  ProjectorLensDistortionOperation
 
class  RenderLayersAlphaProg
 
class  RenderLayersAOOperation
 
class  RenderLayersDepthProg
 
class  RenderLayersNode
 RenderLayersNode. More...
 
class  RenderLayersProg
 
class  RotateNode
 RotateNode. More...
 
class  RotateOperation
 
class  ScaleAbsoluteOperation
 
class  ScaleFixedSizeOperation
 
class  ScaleNode
 ScaleNode. More...
 
class  ScaleOperation
 
class  ScaleRelativeOperation
 
class  SceneTimeNode
 SceneTimeNode. More...
 
class  ScreenLensDistortionOperation
 
class  SeparateChannelOperation
 
class  SeparateColorNode
 
class  SeparateColorNodeLegacy
 
class  SeparateHSVANode
 
class  SeparateRGBANode
 
class  SeparateXYZNode
 SeparateXYZNode. More...
 
class  SeparateYCCANode
 
class  SeparateYUVANode
 
class  SetAlphaMultiplyOperation
 
class  SetAlphaNode
 SetAlphaNode. More...
 
class  SetAlphaReplaceOperation
 
class  SetColorOperation
 
class  SetSamplerOperation
 
class  SetValueOperation
 
class  SetVectorOperation
 
class  SharedOperationBuffers
 
class  SMAAOperation
 
class  SocketProxyNode
 SocketProxyNode. More...
 
class  SocketProxyOperation
 
class  SplitNode
 SplitNode. More...
 
class  SplitOperation
 
class  Stabilize2dNode
 Stabilize2dNode. More...
 
class  SummedAreaTableOperation
 SummedAreaTableOperation class computes the summed area table. More...
 
class  SunBeamsNode
 SunBeamsNode. More...
 
class  SunBeamsOperation
 
class  SwitchNode
 SwitchNode. More...
 
class  SwitchViewNode
 SwitchViewNode. More...
 
class  TextureAlphaOperation
 
class  TextureBaseOperation
 
class  TextureNode
 TextureNode. More...
 
class  TextureOperation
 
class  TimeNode
 TimeNode. More...
 
class  TonemapNode
 TonemapNode. More...
 
class  TonemapOperation
 base class of tone-map, implementing the simple tone-map More...
 
class  TrackPositionNode
 TrackPositionNode. More...
 
class  TrackPositionOperation
 
class  TransformNode
 TransformNode. More...
 
class  TransformOperation
 
class  TranslateCanvasOperation
 
class  TranslateNode
 TranslateNode. More...
 
class  TranslateOperation
 
class  ValueNode
 ValueNode. More...
 
class  VariableSizeBokehBlurOperation
 
struct  VariableSizeBokehBlurTileData
 
class  VectorBlurNode
 VectorBlurNode. More...
 
class  VectorBlurOperation
 
class  VectorCurveNode
 VectorCurveNode. More...
 
class  VectorCurveOperation
 
class  ViewerNode
 ViewerNode. More...
 
class  ViewerOperation
 
class  ViewLevelsNode
 ViewLevelsNode. More...
 
struct  WorkPackage
 contains data about work that can be scheduled More...
 
struct  WorkScheduler
 the workscheduler More...
 
class  ZCombineAlphaOperation
 
class  ZCombineMaskAlphaOperation
 
class  ZCombineMaskOperation
 
class  ZCombineNode
 ZCombineNode. More...
 
class  ZCombineOperation
 

Typedefs

using Size2f = float2
 
template<typename T >
using BuffersIterator = typename BuffersIteratorBuilder<T>::Iterator
 
typedef NodeOperation SocketReader
 
using Tags = std::set<NodeOperation *>
 
using PixelsSum = CalculateMeanOperation::PixelsSum
 
typedef float fRGB[4]
 
typedef enum blender::compositor::MovieClipAttribute MovieClipAttribute
 
typedef struct blender::compositor::AvgLogLum AvgLogLum
 temporarily storage during execution of Tone-map
 

Enumerations

enum class  eDimension { X , Y }
 
enum class  DataType { DataType::Value = 0 , DataType::Vector = 1 , DataType::Color = 2 , DataType::Float2 = 3 }
 possible data types for sockets More...
 
enum class  eCompositorQuality { eCompositorQuality::High = 0 , eCompositorQuality::Medium = 1 , eCompositorQuality::Low = 2 }
 Possible quality settings. More...
 
enum class  eCompositorPriority { eCompositorPriority::High = 2 , eCompositorPriority::Medium = 1 , eCompositorPriority::Low = 0 }
 Possible priority settings. More...
 
enum class  PixelSampler { Nearest = 0 , Bilinear = 1 , Bicubic = 2 }
 
enum class  MemoryBufferExtend { Clip , Extend , Repeat }
 
enum class  ResizeMode {
  ResizeMode::Center = NS_CR_CENTER , ResizeMode::None = NS_CR_NONE , ResizeMode::Align = 100 , ResizeMode::FitWidth = NS_CR_FIT_WIDTH ,
  ResizeMode::FitHeight = NS_CR_FIT_HEIGHT , ResizeMode::FitAny = NS_CR_FIT , ResizeMode::Stretch = NS_CR_STRETCH
}
 Resize modes of inputsockets How are the input and working resolutions matched. More...
 
enum class  ThreadingModel { SingleThreaded , Queue , Task }
 
enum  MovieClipAttribute { MCA_SCALE , MCA_X , MCA_Y , MCA_ANGLE }
 

Functions

int2 encode_jump_flooding_value (int2 closest_seed_texel, bool is_flooded)
 
int2 initialize_jump_flooding_value (int2 texel, bool is_seed)
 
static int2 load_jump_flooding (Span< int2 > input, int2 texel, int2 size, int2 fallback)
 
static void jump_flooding_pass (Span< int2 > input, MutableSpan< int2 > output, int2 size, int step_size)
 
Array< int2jump_flooding (Span< int2 > input, int2 size)
 
static MemoryBuffer compute_symmetric_separable_blur_weights (int type, float radius)
 
static float sample_weight (const MemoryBuffer &weights, float parameter)
 
static void blur_pass (const MemoryBuffer &input, const MemoryBuffer &radius_buffer, const MemoryBuffer &weights, MemoryBuffer &output, bool is_vertical)
 
void symmetric_separable_blur_variable_size (const MemoryBuffer &input, MemoryBuffer &output, const MemoryBuffer &radius, int filter_type, int weights_resolution)
 
constexpr int COM_data_type_num_channels (const DataType datatype)
 
constexpr int COM_data_type_bytes_len (DataType data_type)
 
constexpr DataType COM_num_channels_data_type (const int num_channels)
 
static bool is_constant_foldable (NodeOperation *operation)
 
static Set< NodeOperation * > find_constant_foldable_operations (Span< NodeOperation * > operations)
 
static ConstantOperationcreate_constant_operation (DataType data_type, const float *constant_elem)
 
NodeCOM_convert_bnode (bNode *b_node)
 Wraps a bNode in its Node instance.
 
NodeOperationCOM_convert_data_type (const NodeOperationOutput &from, const NodeOperationInput &to)
 This function will add a date-type conversion rule when the to-socket does not support the from-socket actual data type.
 
void COM_convert_canvas (NodeOperationBuilder &builder, NodeOperationOutput *from_socket, NodeOperationInput *to_socket)
 This function will add a resolution rule based on the settings of the NodeInput.
 
static std::string operation_class_name (const NodeOperation *op)
 
static std::string get_operations_export_dir ()
 
void expand_area_for_sampler (rcti &area, PixelSampler sampler)
 
std::ostream & operator<< (std::ostream &os, const eCompositorPriority &priority)
 
static Vector< NodeOperation * > get_operation_dependencies (NodeOperation *operation)
 
static rcti create_rect (const int width, const int height)
 
static void colorspace_to_scene_linear (MemoryBuffer *buf, const rcti &area, ColorSpace *colorspace)
 
static void premultiply_alpha (MemoryBuffer *buf, const rcti &area)
 
static void read_ewa_elem_checked (void *userdata, int x, int y, float result[4])
 
static void read_ewa_elem_clamped (void *userdata, int x, int y, float result[4])
 
constexpr blender::StringRef META_DATA_KEY_CRYPTOMATTE_HASH ("cryptomatte/{hash}/hash")
 
constexpr blender::StringRef META_DATA_KEY_CRYPTOMATTE_CONVERSION ("cryptomatte/{hash}/conversion")
 
constexpr blender::StringRef META_DATA_KEY_CRYPTOMATTE_MANIFEST ("cryptomatte/{hash}/manifest")
 
constexpr blender::StringRef META_DATA_KEY_CRYPTOMATTE_NAME ("cryptomatte/{hash}/name")
 
std::ostream & operator<< (std::ostream &os, const NodeOperationFlags &node_operation_flags)
 
std::ostream & operator<< (std::ostream &os, const NodeOperation &node_operation)
 
static Vector< NodeOperationHashgenerate_hashes (Span< NodeOperation * > operations)
 
static void find_reachable_operations_recursive (Tags &reachable, NodeOperation *op)
 
static void sort_operations_recursive (Vector< NodeOperation * > &sorted, Tags &visited, NodeOperation *op)
 
std::ostream & operator<< (std::ostream &os, const NodeOperationBuilder &builder)
 
std::ostream & operator<< (std::ostream &os, const NodeOperationBuilder::Link &link)
 
constexpr ThreadingModel COM_threading_model ()
 
static ThreadLocal (CPUDevice *) g_thread_device
 
static float get_threshold (const NodeAntiAliasingData *data)
 
static float get_local_contrast_adaptation_factor (const NodeAntiAliasingData *data)
 
static int get_corner_rounding (const NodeAntiAliasingData *data)
 
static DataType get_input_data_type (NodeInput *input)
 
static TrackPositionOperationcreate_motion_operation (NodeConverter &converter, MovieClip *clip, NodeTrackPosData *trackpos_data, int axis, int frame_number, int delta)
 
static void blur_pixel (PixelCursor &p)
 
static float compute_exterior_angle (int sides)
 
static float compute_rotation (float angle, int sides)
 
float colorbalance_cdl (float in, float offset, float power, float slope)
 
float colorbalance_lgg (float in, float lift_lgg, float gamma_inv, float gain)
 
BLI_INLINE float color_correct_powf_safe (const float x, const float y, const float fallback_value)
 
bool COM_is_denoise_supported ()
 
static bool are_guiding_passes_noise_free (const NodeDenoise *settings)
 
BLI_INLINE int color_diff (const float a[3], const float b[3], const float threshold)
 
template<template< typename > typename TCompare>
static float get_min_distance (DilateErodeThresholdOperation::PixelData &p)
 
template<template< typename > typename TCompare>
static float get_distance_value (DilateDistanceOperation::PixelData &p, const float start_value)
 
template<typename TCompareSelector >
static void step_update_memory_buffer (MemoryBuffer *output, const MemoryBuffer *input, const rcti &area, const int num_iterations, const float compare_min_value)
 
static float load_mask (const float *input, int2 texel, int2 size)
 
static float load_mask (const float *input, int2 texel, int2 size, float fallback)
 
static int get_channels_count (DataType datatype)
 
static floatinitialize_buffer (uint width, uint height, DataType datatype)
 
static void add_meta_data_for_input (realtime_compositor::FileOutput &file_output, const FileOutputInput &input)
 
static floatfloat4_to_float3_image (int2 size, float *float4_image)
 
static floatinflate_input (const FileOutputInput &input, const int2 size)
 
static void upsample (const MemoryBuffer &input, MemoryBuffer &output)
 
static float4 karis_brightness_weighted_sum (float4 color1, float4 color2, float4 color3, float4 color4)
 
static void downsample (const MemoryBuffer &input, MemoryBuffer &output, bool use_karis_average)
 
static Array< std::unique_ptr< MemoryBuffer > > compute_bloom_downsample_chain (MemoryBuffer &highlights, int chain_length)
 
static int get_bloom_size (const NodeGlare *settings)
 
static int compute_bloom_size_halving_count (const NodeGlare *settings)
 
static float compute_fog_glow_kernel_value (int x, int y, int kernel_size)
 
static float smooth_mask (float x, float y)
 
static float get_pixel_saturation (const float pixel_color[4], float screen_balance, int primary_channel)
 
static bool check_corners (float corners[4][2])
 
static void set_default_corner (const int corner_idx, float r_corner[2])
 
static void read_input_corners (NodeOperation *op, const int first_input_idx, float r_corners[4][2])
 
BLI_INLINE void warp_coord (float x, float y, float matrix[3][3], float uv[2], float deriv[2][2])
 
static void SMAAMovc (float2 cond, float2 &variable, float2 value)
 
static void SMAAMovc (float4 cond, float4 &variable, float4 value)
 
static void SMAAEdgeDetectionVS (float2 texcoord, int2 size, float4 offset[3])
 
static void SMAABlendingWeightCalculationVS (float2 texcoord, int2 size, float2 &pixcoord, float4 offset[3])
 
static void SMAANeighborhoodBlendingVS (float2 texcoord, int2 size, float4 &offset)
 
static float2 SMAALumaEdgeDetectionPS (float2 texcoord, float4 offset[3], SMAATexture2D(colorTex), float edge_threshold, float3 luminance_coefficients, float local_contrast_adaptation_factor)
 
static float2 SMAADecodeDiagBilinearAccess (float2 e)
 
static float4 SMAADecodeDiagBilinearAccess (float4 e)
 
static float2 SMAASearchDiag1 (SMAATexture2D(edgesTex), float2 texcoord, float2 dir, int2 size, float2 &e)
 
static float2 SMAASearchDiag2 (SMAATexture2D(edgesTex), float2 texcoord, float2 dir, int2 size, float2 &e)
 
static float2 SMAAAreaDiag (SMAATexture2D(areaTex), float2 dist, float2 e, float offset)
 
static float2 SMAACalculateDiagWeights (SMAATexture2D(edgesTex), SMAATexture2D(areaTex), float2 texcoord, float2 e, float4 subsampleIndices, int2 size)
 
static float SMAASearchLength (SMAATexture2D(searchTex), float2 e, float offset)
 
static float SMAASearchXLeft (SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end, int2 size)
 
static float SMAASearchXRight (SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end, int2 size)
 
static float SMAASearchYUp (SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end, int2 size)
 
static float SMAASearchYDown (SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2 texcoord, float end, int2 size)
 
static float2 SMAAArea (SMAATexture2D(areaTex), float2 dist, float e1, float e2, float offset)
 
static void SMAADetectHorizontalCornerPattern (SMAATexture2D(edgesTex), float2 &weights, float4 texcoord, float2 d, int2 size, int corner_rounding)
 
static void SMAADetectVerticalCornerPattern (SMAATexture2D(edgesTex), float2 &weights, float4 texcoord, float2 d, int2 size, int corner_rounding)
 
static float4 SMAABlendingWeightCalculationPS (float2 texcoord, float2 pixcoord, float4 offset[3], MemoryBuffer *edgesTex, MemoryBuffer *areaTex, MemoryBuffer *searchTex, float4 subsampleIndices, int2 size, int corner_rounding)
 
static float4 SMAANeighborhoodBlendingPS (float2 texcoord, float4 offset, SMAATexture2D(colorTex), SMAATexture2D(blendTex), int2 size)
 
float4 summed_area_table_sum (MemoryBuffer *buffer, const rcti &area)
 
static Luminance calc_area_luminance (const MemoryBuffer *input, const rcti &area)
 
static float2 max_velocity (const float2 &a, const float2 &b)
 
static uint32_t velocity_atomic_max_value (const float2 &value, const int2 &texel)
 
static float2 max_velocity_approximate (const float2 &a, const float2 &b, const int2 &a_texel, const int2 &b_texel)
 
static MemoryBuffer compute_max_tile_velocity (MemoryBuffer *velocity_buffer)
 
static MotionRect compute_motion_rect (int2 tile, float2 motion, int2 size)
 
static MotionLine compute_motion_line (int2 tile, float2 motion)
 
static bool is_inside_motion_line (int2 tile, MotionLine motion_line)
 
static MemoryBuffer dilate_max_velocity (MemoryBuffer &max_tile_velocity, float shutter_speed)
 
static float interleaved_gradient_noise (int2 p)
 
static float2 spread_compare (float center_motion_length, float sample_motion_length, float offset_length)
 
static float2 depth_compare (float center_depth, float sample_depth)
 
static float dir_compare (float2 offset, float2 sample_motion, float sample_motion_length)
 
static float2 sample_weights (float center_depth, float sample_depth, float center_motion_length, float sample_motion_length, float offset_length)
 
static void gather_sample (MemoryBuffer *image_buffer, MemoryBuffer *depth_buffer, MemoryBuffer *velocity_buffer, int2 size, float2 screen_uv, float center_depth, float center_motion_len, float2 offset, float offset_len, const bool next, float shutter_speed, Accumulator &accum)
 
static void gather_blur (MemoryBuffer *image_buffer, MemoryBuffer *depth_buffer, MemoryBuffer *velocity_buffer, int2 size, float2 screen_uv, float2 center_motion, float center_depth, float2 max_motion, float ofs, const bool next, int samples_count, float shutter_speed, Accumulator &accum)
 
static void motion_blur (MemoryBuffer *image_buffer, MemoryBuffer *depth_buffer, MemoryBuffer *velocity_buffer, MemoryBuffer *max_velocity_buffer, MemoryBuffer *output, int samples_count, float shutter_speed)
 
Single threaded Scheduling
static void threading_model_single_thread_execute (WorkPackage *package)
 
Queue Scheduling
static void * threading_model_queue_execute (void *data)
 
static void threading_model_queue_schedule (WorkPackage *package)
 
static void threading_model_queue_start ()
 
static void threading_model_queue_finish ()
 
static void threading_model_queue_stop ()
 
static void threading_model_queue_initialize (const int num_cpu_threads)
 
static void threading_model_queue_deinitialize ()
 
Task Scheduling
static void threading_model_task_execute (TaskPool *__restrict, void *task_data)
 
static void threading_model_task_schedule (WorkPackage *package)
 
static void threading_model_task_start ()
 
static void threading_model_task_finish ()
 
static void threading_model_task_stop ()
 
Cryptomatte V2
static std::string prefix_from_node (const bNode &node)
 
static std::string combined_layer_pass_name (RenderLayer *render_layer, RenderPass *render_pass)
 

Variables

constexpr int COM_DATA_TYPE_VALUE_CHANNELS = COM_data_type_num_channels(DataType::Value)
 
constexpr int COM_DATA_TYPE_FLOAT2_CHANNELS = COM_data_type_num_channels(DataType::Float2)
 
constexpr int COM_DATA_TYPE_VECTOR_CHANNELS = COM_data_type_num_channels(DataType::Vector)
 
constexpr int COM_DATA_TYPE_COLOR_CHANNELS = COM_data_type_num_channels(DataType::Color)
 
constexpr float COM_COLOR_TRANSPARENT [4] = {0.0f, 0.0f, 0.0f, 0.0f}
 
constexpr float COM_FLOAT2_ZERO [2] = {0.0f, 0.0f}
 
constexpr float COM_VECTOR_ZERO [3] = {0.0f, 0.0f, 0.0f}
 
constexpr float COM_COLOR_BLACK [4] = {0.0f, 0.0f, 0.0f, 1.0f}
 
constexpr float COM_VALUE_ZERO [1] = {0.0f}
 
constexpr float COM_VALUE_ONE [1] = {1.0f}
 
constexpr float COM_PREVIEW_SIZE = 140.f
 
constexpr float COM_RULE_OF_THIRDS_DIVIDER = 100.0f
 
constexpr float COM_BLUR_BOKEH_PIXELS = 512
 
constexpr rcti COM_AREA_NONE = {0, 0, 0, 0}
 
constexpr rcti COM_CONSTANT_INPUT_AREA_OF_INTEREST = COM_AREA_NONE
 
static constexpr bool COM_EXPORT_GRAPHVIZ = false
 
static constexpr bool COM_GRAPHVIZ_SHOW_NODE_NAME = false
 
static constexpr bool COM_EXPORT_OPERATION_BUFFERS = false
 
static constexpr unsigned int RESOLUTION_INPUT_ANY = 999999
 
struct { 
 
   struct { 
 
      Vector< CPUDevice >   blender::compositor::devices 
 list of all CPUDevices. for every hardware thread an instance of CPUDevice is created More...
 
      ListBase   blender::compositor::threads 
 list of all thread for every CPUDevice in cpudevices a thread exists. More...
 
      bool   blender::compositor::initialized = false 
 
      ThreadQueue *   blender::compositor::queue 
 all scheduled work for the cpu More...
 
   }   blender::compositor::queue 
 
   struct { 
 
      TaskPool *   blender::compositor::pool 
 
   }   blender::compositor::task 
 
   int   blender::compositor::num_cpu_threads 
 
g_work_scheduler 
 
constexpr int IMAGE_INPUT_INDEX = 0
 
constexpr int BOKEH_INPUT_INDEX = 1
 
constexpr int BOUNDING_BOX_INPUT_INDEX = 2
 
constexpr int SIZE_INPUT_INDEX = 3
 
constexpr int LOWER_LEFT_CORNER_INDEX = 0
 
constexpr int LOWER_RIGHT_CORNER_INDEX = 1
 
constexpr int UPPER_RIGHT_CORNER_INDEX = 2
 
constexpr int UPPER_LEFT_CORNER_INDEX = 3
 

Typedef Documentation

◆ AvgLogLum

typedef struct blender::compositor::AvgLogLum blender::compositor::AvgLogLum

temporarily storage during execution of Tone-map

◆ BuffersIterator

template<typename T >
using blender::compositor::BuffersIterator = typename BuffersIteratorBuilder<T>::Iterator

Definition at line 179 of file COM_BuffersIterator.h.

◆ fRGB

typedef float blender::compositor::fRGB[4]

Definition at line 14 of file COM_GlareBaseOperation.h.

◆ MovieClipAttribute

◆ PixelsSum

◆ Size2f

Definition at line 13 of file COM_defines.h.

◆ SocketReader

◆ Tags

Definition at line 508 of file COM_NodeOperationBuilder.cc.

Enumeration Type Documentation

◆ eDimension

Enumerator

Definition at line 15 of file COM_defines.h.

◆ MemoryBufferExtend

Enumerator
Clip 
Extend 
Repeat 

Definition at line 26 of file COM_MemoryBuffer.h.

◆ MovieClipAttribute

Enumerator
MCA_SCALE 
MCA_X 
MCA_Y 
MCA_ANGLE 

Definition at line 13 of file COM_MovieClipAttributeOperation.h.

◆ PixelSampler

Enumerator
Nearest 
Bilinear 
Bicubic 

Definition at line 39 of file COM_Enums.h.

◆ ThreadingModel

Enumerator
SingleThreaded 

Everything is executed in the caller thread. easy for debugging.

Queue 

Multi-threaded model, which uses the BLI_thread_queue pattern.

Task 

Uses BLI_task as threading backend.

Definition at line 19 of file COM_WorkScheduler.cc.

Function Documentation

◆ add_meta_data_for_input()

static void blender::compositor::add_meta_data_for_input ( realtime_compositor::FileOutput & file_output,
const FileOutputInput & input )
static

◆ are_guiding_passes_noise_free()

◆ blur_pass()

static void blender::compositor::blur_pass ( const MemoryBuffer & input,
const MemoryBuffer & radius_buffer,
const MemoryBuffer & weights,
MemoryBuffer & output,
bool is_vertical )
static

◆ blur_pixel()

◆ calc_area_luminance()

◆ check_corners()

static bool blender::compositor::check_corners ( float corners[4][2])
static

Definition at line 15 of file COM_PlaneCornerPinOperation.cc.

References cross(), cross_v2v2(), fabsf, next, sub_v2_v2v2(), and v2.

Referenced by read_input_corners().

◆ color_correct_powf_safe()

BLI_INLINE float blender::compositor::color_correct_powf_safe ( const float x,
const float y,
const float fallback_value )

◆ color_diff()

BLI_INLINE int blender::compositor::color_diff ( const float a[3],
const float b[3],
const float threshold )

◆ colorbalance_cdl()

float blender::compositor::colorbalance_cdl ( float in,
float offset,
float power,
float slope )
inline

◆ colorbalance_lgg()

float blender::compositor::colorbalance_lgg ( float in,
float lift_lgg,
float gamma_inv,
float gain )
inline

◆ colorspace_to_scene_linear()

◆ COM_convert_bnode()

Node * blender::compositor::COM_convert_bnode ( bNode * b_node)

Wraps a bNode in its Node instance.

For all node-types a wrapper class is created.

Note
When adding a new node to blender, this method needs to be changed to return the correct Node instance.
See also
Node

Definition at line 113 of file COM_Converter.cc.

References CMP_NODE_ALPHAOVER, CMP_NODE_ANTIALIASING, CMP_NODE_BILATERALBLUR, CMP_NODE_BLUR, CMP_NODE_BOKEHBLUR, CMP_NODE_BOKEHIMAGE, CMP_NODE_BRIGHTCONTRAST, CMP_NODE_CHANNEL_MATTE, CMP_NODE_CHROMA_MATTE, CMP_NODE_COLOR_MATTE, CMP_NODE_COLOR_SPILL, CMP_NODE_COLORBALANCE, CMP_NODE_COLORCORRECTION, CMP_NODE_COMBHSVA_LEGACY, CMP_NODE_COMBINE_COLOR, CMP_NODE_COMBINE_XYZ, CMP_NODE_COMBRGBA_LEGACY, CMP_NODE_COMBYCCA_LEGACY, CMP_NODE_COMBYUVA_LEGACY, CMP_NODE_COMPOSITE, CMP_NODE_CONVERT_COLOR_SPACE, CMP_NODE_CORNERPIN, CMP_NODE_CROP, CMP_NODE_CRYPTOMATTE, CMP_NODE_CRYPTOMATTE_LEGACY, CMP_NODE_CURVE_RGB, CMP_NODE_CURVE_VEC, CMP_NODE_DBLUR, CMP_NODE_DEFOCUS, CMP_NODE_DENOISE, CMP_NODE_DESPECKLE, CMP_NODE_DIFF_MATTE, CMP_NODE_DILATEERODE, CMP_NODE_DISPLACE, CMP_NODE_DIST_MATTE, CMP_NODE_DOUBLEEDGEMASK, CMP_NODE_EXPOSURE, CMP_NODE_FILTER, CMP_NODE_FLIP, CMP_NODE_GAMMA, CMP_NODE_GLARE, CMP_NODE_HUE_SAT, CMP_NODE_HUECORRECT, CMP_NODE_ID_MASK, CMP_NODE_IMAGE, CMP_NODE_INPAINT, CMP_NODE_INVERT, CMP_NODE_KEYING, CMP_NODE_KEYINGSCREEN, CMP_NODE_KUWAHARA, CMP_NODE_LENSDIST, CMP_NODE_LUMA_MATTE, CMP_NODE_MAP_RANGE, CMP_NODE_MAP_UV, CMP_NODE_MAP_VALUE, CMP_NODE_MASK, CMP_NODE_MASK_BOX, CMP_NODE_MASK_ELLIPSE, CMP_NODE_MATH, CMP_NODE_MIX_RGB, CMP_NODE_MOVIECLIP, CMP_NODE_MOVIEDISTORTION, CMP_NODE_NORMAL, CMP_NODE_NORMALIZE, CMP_NODE_OUTPUT_FILE, CMP_NODE_PIXELATE, CMP_NODE_PLANETRACKDEFORM, CMP_NODE_POSTERIZE, CMP_NODE_PREMULKEY, CMP_NODE_R_LAYERS, CMP_NODE_RGB, CMP_NODE_RGBTOBW, CMP_NODE_ROTATE, CMP_NODE_SCALE, CMP_NODE_SCENE_TIME, CMP_NODE_SEPARATE_COLOR, CMP_NODE_SEPARATE_XYZ, CMP_NODE_SEPHSVA_LEGACY, CMP_NODE_SEPRGBA_LEGACY, CMP_NODE_SEPYCCA_LEGACY, CMP_NODE_SEPYUVA_LEGACY, CMP_NODE_SETALPHA, CMP_NODE_SPLIT, CMP_NODE_STABILIZE2D, CMP_NODE_SUNBEAMS, CMP_NODE_SWITCH, CMP_NODE_SWITCH_VIEW, CMP_NODE_TEXTURE, CMP_NODE_TIME, CMP_NODE_TONEMAP, CMP_NODE_TRACKPOS, CMP_NODE_TRANSFORM, CMP_NODE_TRANSLATE, CMP_NODE_VALTORGB, CMP_NODE_VALUE, CMP_NODE_VECBLUR, CMP_NODE_VIEW_LEVELS, CMP_NODE_VIEWER, CMP_NODE_ZCOMBINE, node, NODE_GROUP, NODE_GROUP_INPUT, NODE_GROUP_OUTPUT, blender::bke::node_type_is_undefined(), and bNode::type.

Referenced by blender::compositor::NodeGraph::add_bNode().

◆ COM_convert_canvas()

void blender::compositor::COM_convert_canvas ( NodeOperationBuilder & builder,
NodeOperationOutput * from_socket,
NodeOperationInput * to_socket )

◆ COM_convert_data_type()

NodeOperation * blender::compositor::COM_convert_data_type ( const NodeOperationOutput & from,
const NodeOperationInput & to )

This function will add a date-type conversion rule when the to-socket does not support the from-socket actual data type.

Definition at line 430 of file COM_Converter.cc.

References Color, Value, and Vector.

Referenced by blender::compositor::NodeOperationBuilder::add_datatype_conversions().

◆ COM_data_type_bytes_len()

int blender::compositor::COM_data_type_bytes_len ( DataType data_type)
constexpr

◆ COM_data_type_num_channels()

int blender::compositor::COM_data_type_num_channels ( const DataType datatype)
constexpr

◆ COM_is_denoise_supported()

bool blender::compositor::COM_is_denoise_supported ( )

◆ COM_num_channels_data_type()

DataType blender::compositor::COM_num_channels_data_type ( const int num_channels)
constexpr

Utility to get data type for given number of channels.

Definition at line 70 of file COM_defines.h.

References Color, Float2, Value, and Vector.

Referenced by blender::compositor::MemoryBuffer::MemoryBuffer().

◆ COM_threading_model()

◆ combined_layer_pass_name()

static std::string blender::compositor::combined_layer_pass_name ( RenderLayer * render_layer,
RenderPass * render_pass )
static

Definition at line 75 of file COM_CryptomatteNode.cc.

References BLI_strnlen(), RenderLayer::name, and RenderPass::name.

◆ compute_bloom_downsample_chain()

static Array< std::unique_ptr< MemoryBuffer > > blender::compositor::compute_bloom_downsample_chain ( MemoryBuffer & highlights,
int chain_length )
static

◆ compute_bloom_size_halving_count()

static int blender::compositor::compute_bloom_size_halving_count ( const NodeGlare * settings)
static

◆ compute_exterior_angle()

static float blender::compositor::compute_exterior_angle ( int sides)
static

◆ compute_fog_glow_kernel_value()

static float blender::compositor::compute_fog_glow_kernel_value ( int x,
int y,
int kernel_size )
static

◆ compute_max_tile_velocity()

◆ compute_motion_line()

static MotionLine blender::compositor::compute_motion_line ( int2 tile,
float2 motion )
static

◆ compute_motion_rect()

◆ compute_rotation()

static float blender::compositor::compute_rotation ( float angle,
int sides )
static

◆ compute_symmetric_separable_blur_weights()

static MemoryBuffer blender::compositor::compute_symmetric_separable_blur_weights ( int type,
float radius )
static

◆ create_constant_operation()

static ConstantOperation * blender::compositor::create_constant_operation ( DataType data_type,
const float * constant_elem )
static

◆ create_motion_operation()

◆ create_rect()

static rcti blender::compositor::create_rect ( const int width,
const int height )
static

Definition at line 24 of file COM_MemoryBuffer.cc.

References BLI_rcti_init().

◆ depth_compare()

static float2 blender::compositor::depth_compare ( float center_depth,
float sample_depth )
static

Definition at line 227 of file COM_VectorBlurOperation.cc.

References blender::math::clamp(), depth_compare(), and DEPTH_SCALE.

Referenced by depth_compare(), and sample_weights().

◆ dilate_max_velocity()

◆ dir_compare()

static float blender::compositor::dir_compare ( float2 offset,
float2 sample_motion,
float sample_motion_length )
static

Definition at line 234 of file COM_VectorBlurOperation.cc.

References dir_compare(), and blender::math::dot().

Referenced by dir_compare(), and gather_sample().

◆ downsample()

static void blender::compositor::downsample ( const MemoryBuffer & input,
MemoryBuffer & output,
bool use_karis_average )
static

Definition at line 99 of file COM_GlareBloomOperation.cc.

References downsample(), and int2.

Referenced by compute_bloom_downsample_chain(), and downsample().

◆ encode_jump_flooding_value()

int2 blender::compositor::encode_jump_flooding_value ( int2 closest_seed_texel,
bool is_flooded )

◆ expand_area_for_sampler()

◆ find_constant_foldable_operations()

static Set< NodeOperation * > blender::compositor::find_constant_foldable_operations ( Span< NodeOperation * > operations)
static

◆ find_reachable_operations_recursive()

◆ float4_to_float3_image()

static float * blender::compositor::float4_to_float3_image ( int2 size,
float * float4_image )
static

◆ gather_blur()

static void blender::compositor::gather_blur ( MemoryBuffer * image_buffer,
MemoryBuffer * depth_buffer,
MemoryBuffer * velocity_buffer,
int2 size,
float2 screen_uv,
float2 center_motion,
float center_depth,
float2 max_motion,
float ofs,
const bool next,
int samples_count,
float shutter_speed,
Accumulator & accum )
static

Definition at line 299 of file COM_VectorBlurOperation.cc.

References float, gather_blur(), gather_sample(), blender::math::length(), and next.

Referenced by gather_blur().

◆ gather_sample()

static void blender::compositor::gather_sample ( MemoryBuffer * image_buffer,
MemoryBuffer * depth_buffer,
MemoryBuffer * velocity_buffer,
int2 size,
float2 screen_uv,
float center_depth,
float center_motion_len,
float2 offset,
float offset_len,
const bool next,
float shutter_speed,
Accumulator & accum )
static

◆ generate_hashes()

static Vector< NodeOperationHash > blender::compositor::generate_hashes ( Span< NodeOperation * > operations)
static

◆ get_bloom_size()

static int blender::compositor::get_bloom_size ( const NodeGlare * settings)
static

Definition at line 248 of file COM_GlareBloomOperation.cc.

References get_bloom_size().

Referenced by compute_bloom_size_halving_count(), and get_bloom_size().

◆ get_channels_count()

static int blender::compositor::get_channels_count ( DataType datatype)
static

◆ get_corner_rounding()

static int blender::compositor::get_corner_rounding ( const NodeAntiAliasingData * data)
static

Definition at line 26 of file COM_AntiAliasingNode.cc.

References int.

Referenced by blender::compositor::AntiAliasingNode::convert_to_operations().

◆ get_distance_value()

◆ get_input_data_type()

static DataType blender::compositor::get_input_data_type ( NodeInput * input)
static

Definition at line 16 of file COM_FileOutputNode.cc.

References Color, and Vector.

Referenced by blender::compositor::FileOutputNode::convert_to_operations().

◆ get_local_contrast_adaptation_factor()

static float blender::compositor::get_local_contrast_adaptation_factor ( const NodeAntiAliasingData * data)
static

◆ get_min_distance()

◆ get_operation_dependencies()

◆ get_operations_export_dir()

static std::string blender::compositor::get_operations_export_dir ( )
static

◆ get_pixel_saturation()

static float blender::compositor::get_pixel_saturation ( const float pixel_color[4],
float screen_balance,
int primary_channel )
static

◆ get_threshold()

static float blender::compositor::get_threshold ( const NodeAntiAliasingData * data)
static

◆ inflate_input()

static float * blender::compositor::inflate_input ( const FileOutputInput & input,
const int2 size )
static

◆ initialize_buffer()

static float * blender::compositor::initialize_buffer ( uint width,
uint height,
DataType datatype )
static

◆ initialize_jump_flooding_value()

int2 blender::compositor::initialize_jump_flooding_value ( int2 texel,
bool is_seed )

Definition at line 27 of file COM_JumpFloodingAlgorithm.cc.

References encode_jump_flooding_value().

◆ interleaved_gradient_noise()

static float blender::compositor::interleaved_gradient_noise ( int2 p)
static

◆ is_constant_foldable()

◆ is_inside_motion_line()

◆ jump_flooding()

◆ jump_flooding_pass()

static void blender::compositor::jump_flooding_pass ( Span< int2 > input,
MutableSpan< int2 > output,
int2 size,
int step_size )
static

Definition at line 40 of file COM_JumpFloodingAlgorithm.cc.

References blender::threading::parallel_for().

◆ karis_brightness_weighted_sum()

static float4 blender::compositor::karis_brightness_weighted_sum ( float4 color1,
float4 color2,
float4 color3,
float4 color4 )
static

◆ load_jump_flooding()

static int2 blender::compositor::load_jump_flooding ( Span< int2 > input,
int2 texel,
int2 size,
int2 fallback )
static

Definition at line 32 of file COM_JumpFloodingAlgorithm.cc.

◆ load_mask() [1/2]

static float blender::compositor::load_mask ( const float * input,
int2 texel,
int2 size )
static

Definition at line 20 of file COM_DoubleEdgeMaskOperation.cc.

References blender::math::clamp().

◆ load_mask() [2/2]

static float blender::compositor::load_mask ( const float * input,
int2 texel,
int2 size,
float fallback )
static

Definition at line 26 of file COM_DoubleEdgeMaskOperation.cc.

◆ max_velocity()

static float2 blender::compositor::max_velocity ( const float2 & a,
const float2 & b )
static

◆ max_velocity_approximate()

static float2 blender::compositor::max_velocity_approximate ( const float2 & a,
const float2 & b,
const int2 & a_texel,
const int2 & b_texel )
static

Definition at line 56 of file COM_VectorBlurOperation.cc.

References b, and velocity_atomic_max_value().

Referenced by dilate_max_velocity().

◆ META_DATA_KEY_CRYPTOMATTE_CONVERSION()

◆ META_DATA_KEY_CRYPTOMATTE_HASH()

◆ META_DATA_KEY_CRYPTOMATTE_MANIFEST()

◆ META_DATA_KEY_CRYPTOMATTE_NAME()

blender::StringRef blender::compositor::META_DATA_KEY_CRYPTOMATTE_NAME ( "cryptomatte/{hash}/name" )
constexpr

◆ motion_blur()

static void blender::compositor::motion_blur ( MemoryBuffer * image_buffer,
MemoryBuffer * depth_buffer,
MemoryBuffer * velocity_buffer,
MemoryBuffer * max_velocity_buffer,
MemoryBuffer * output,
int samples_count,
float shutter_speed )
static

◆ operation_class_name()

static std::string blender::compositor::operation_class_name ( const NodeOperation * op)
static

◆ operator<<() [1/5]

std::ostream & blender::compositor::operator<< ( std::ostream & os,
const eCompositorPriority & priority )

Definition at line 27 of file COM_Enums.cc.

References High, Low, and Medium.

◆ operator<<() [2/5]

std::ostream & blender::compositor::operator<< ( std::ostream & os,
const NodeOperation & node_operation )

◆ operator<<() [3/5]

std::ostream & blender::compositor::operator<< ( std::ostream & os,
const NodeOperationBuilder & builder )

◆ operator<<() [4/5]

◆ operator<<() [5/5]

◆ prefix_from_node()

static std::string blender::compositor::prefix_from_node ( const bNode & node)
static

◆ premultiply_alpha()

static void blender::compositor::premultiply_alpha ( MemoryBuffer * buf,
const rcti & area )
static

◆ read_ewa_elem_checked()

static void blender::compositor::read_ewa_elem_checked ( void * userdata,
int x,
int y,
float result[4] )
static

◆ read_ewa_elem_clamped()

static void blender::compositor::read_ewa_elem_clamped ( void * userdata,
int x,
int y,
float result[4] )
static

◆ read_input_corners()

◆ sample_weight()

static float blender::compositor::sample_weight ( const MemoryBuffer & weights,
float parameter )
static

◆ sample_weights()

static float2 blender::compositor::sample_weights ( float center_depth,
float sample_depth,
float center_motion_length,
float sample_motion_length,
float offset_length )
static

Definition at line 243 of file COM_VectorBlurOperation.cc.

References depth_compare(), sample_weights(), and spread_compare().

Referenced by gather_sample(), and sample_weights().

◆ set_default_corner()

static void blender::compositor::set_default_corner ( const int corner_idx,
float r_corner[2] )
static

◆ SMAAArea()

static float2 blender::compositor::SMAAArea ( SMAATexture2D(areaTex) ,
float2 dist,
float e1,
float e2,
float offset )
static

Ok, we have the distance and both crossing edges. So, what are the areas at each side of current edge?

Definition at line 1118 of file COM_SMAAOperation.cc.

References mad, blender::math::round(), SMAA_AREATEX_MAX_DISTANCE, SMAA_AREATEX_PIXEL_SIZE, SMAA_AREATEX_SELECT, SMAA_AREATEX_SUBTEX_SIZE, and SMAASampleLevelZero.

Referenced by SMAABlendingWeightCalculationPS().

◆ SMAAAreaDiag()

static float2 blender::compositor::SMAAAreaDiag ( SMAATexture2D(areaTex) ,
float2 dist,
float2 e,
float offset )
static

Similar to SMAAArea, this calculates the area corresponding to a certain diagonal distance and crossing edges 'e'.

Definition at line 870 of file COM_SMAAOperation.cc.

References e, mad, SMAA_AREATEX_MAX_DISTANCE_DIAG, SMAA_AREATEX_PIXEL_SIZE, SMAA_AREATEX_SELECT, SMAA_AREATEX_SUBTEX_SIZE, and SMAASampleLevelZero.

Referenced by SMAACalculateDiagWeights().

◆ SMAABlendingWeightCalculationPS()

◆ SMAABlendingWeightCalculationVS()

static void blender::compositor::SMAABlendingWeightCalculationVS ( float2 texcoord,
int2 size,
float2 & pixcoord,
float4 offset[3] )
static

Blend Weight Calculation Vertex Shader

Definition at line 687 of file COM_SMAAOperation.cc.

References float, SMAA_MAX_SEARCH_STEPS, w(), blender::VecBase< T, Size >::xy(), and z().

◆ SMAACalculateDiagWeights()

static float2 blender::compositor::SMAACalculateDiagWeights ( SMAATexture2D(edgesTex) ,
SMAATexture2D(areaTex) ,
float2 texcoord,
float2 e,
float4 subsampleIndices,
int2 size )
static

◆ SMAADecodeDiagBilinearAccess() [1/2]

static float2 blender::compositor::SMAADecodeDiagBilinearAccess ( float2 e)
static

Allows to decode two binary values from a bilinear-filtered access.

Definition at line 794 of file COM_SMAAOperation.cc.

References blender::math::abs(), e, and blender::math::round().

Referenced by SMAACalculateDiagWeights(), and SMAASearchDiag2().

◆ SMAADecodeDiagBilinearAccess() [2/2]

static float4 blender::compositor::SMAADecodeDiagBilinearAccess ( float4 e)
static

Definition at line 814 of file COM_SMAAOperation.cc.

References blender::math::abs(), e, and blender::math::round().

◆ SMAADetectHorizontalCornerPattern()

static void blender::compositor::SMAADetectHorizontalCornerPattern ( SMAATexture2D(edgesTex) ,
float2 & weights,
float4 texcoord,
float2 d,
int2 size,
int corner_rounding )
static

◆ SMAADetectVerticalCornerPattern()

static void blender::compositor::SMAADetectVerticalCornerPattern ( SMAATexture2D(edgesTex) ,
float2 & weights,
float4 texcoord,
float2 d,
int2 size,
int corner_rounding )
static

◆ SMAAEdgeDetectionVS()

static void blender::compositor::SMAAEdgeDetectionVS ( float2 texcoord,
int2 size,
float4 offset[3] )
static

Edge Detection Vertex Shader

Definition at line 674 of file COM_SMAAOperation.cc.

References blender::VecBase< T, Size >::xy().

◆ SMAALumaEdgeDetectionPS()

static float2 blender::compositor::SMAALumaEdgeDetectionPS ( float2 texcoord,
float4 offset[3],
SMAATexture2D(colorTex) ,
float edge_threshold,
float3 luminance_coefficients,
float local_contrast_adaptation_factor )
static

Luma Edge Detection

IMPORTANT NOTICE: luma edge detection requires gamma-corrected colors, and thus 'colorTex' should be a non-sRGB texture.

Definition at line 721 of file COM_SMAAOperation.cc.

References blender::math::abs(), blender::math::dot(), L, blender::math::max(), SMAASamplePoint, SMAATexturePass2D, blender::math::step(), blender::VecBase< T, Size >::xy(), xy, and blender::VecBase< T, Size >::zw().

◆ SMAAMovc() [1/2]

static void blender::compositor::SMAAMovc ( float2 cond,
float2 & variable,
float2 value )
static

Conditional move:

Definition at line 655 of file COM_SMAAOperation.cc.

References blender::math::interpolate().

Referenced by SMAACalculateDiagWeights(), and SMAANeighborhoodBlendingPS().

◆ SMAAMovc() [2/2]

static void blender::compositor::SMAAMovc ( float4 cond,
float4 & variable,
float4 value )
static

Definition at line 661 of file COM_SMAAOperation.cc.

References blender::math::interpolate().

◆ SMAANeighborhoodBlendingPS()

◆ SMAANeighborhoodBlendingVS()

static void blender::compositor::SMAANeighborhoodBlendingVS ( float2 texcoord,
int2 size,
float4 & offset )
static

Neighborhood Blending Vertex Shader

Definition at line 709 of file COM_SMAAOperation.cc.

◆ SMAASearchDiag1()

static float2 blender::compositor::SMAASearchDiag1 ( SMAATexture2D(edgesTex) ,
float2 texcoord,
float2 dir,
int2 size,
float2 & e )
static

◆ SMAASearchDiag2()

◆ SMAASearchLength()

static float blender::compositor::SMAASearchLength ( SMAATexture2D(searchTex) ,
float2 e,
float offset )
static

This allows to determine how much length should we add in the last step of the searches. It takes the bilinearly interpolated edge (see @PSEUDO_GATHER4), and adds 0, 1 or 2, depending on which edges and crossing edges are active.

Definition at line 1006 of file COM_SMAAOperation.cc.

References e, mad, SMAA_SEARCHTEX_PACKED_SIZE, SMAA_SEARCHTEX_SELECT, SMAA_SEARCHTEX_SIZE, and SMAASampleLevelZero.

Referenced by SMAASearchXLeft(), SMAASearchXRight(), SMAASearchYDown(), and SMAASearchYUp().

◆ SMAASearchXLeft()

static float blender::compositor::SMAASearchXLeft ( SMAATexture2D(edgesTex) ,
SMAATexture2D(searchTex) ,
float2 texcoord,
float end,
int2 size )
static

Horizontal/vertical search functions for the 2nd pass.

@PSEUDO_GATHER4 This texcoord has been offset by (-0.25, -0.125) in the vertex shader to sample between edge, thus fetching four edges in a row. Sampling with different offsets in each direction allows to disambiguate which edges are active from the four fetched ones.

Definition at line 1029 of file COM_SMAAOperation.cc.

References e, mad, SMAASampleLevelZero, SMAASearchLength(), and SMAATexturePass2D.

Referenced by SMAABlendingWeightCalculationPS().

◆ SMAASearchXRight()

static float blender::compositor::SMAASearchXRight ( SMAATexture2D(edgesTex) ,
SMAATexture2D(searchTex) ,
float2 texcoord,
float end,
int2 size )
static

◆ SMAASearchYDown()

static float blender::compositor::SMAASearchYDown ( SMAATexture2D(edgesTex) ,
SMAATexture2D(searchTex) ,
float2 texcoord,
float end,
int2 size )
static

◆ SMAASearchYUp()

static float blender::compositor::SMAASearchYUp ( SMAATexture2D(edgesTex) ,
SMAATexture2D(searchTex) ,
float2 texcoord,
float end,
int2 size )
static

◆ smooth_mask()

static float blender::compositor::smooth_mask ( float x,
float y )
static

◆ sort_operations_recursive()

◆ spread_compare()

static float2 blender::compositor::spread_compare ( float center_motion_length,
float sample_motion_length,
float offset_length )
static

Definition at line 219 of file COM_VectorBlurOperation.cc.

References blender::math::clamp(), and spread_compare().

Referenced by sample_weights(), and spread_compare().

◆ step_update_memory_buffer()

template<typename TCompareSelector >
static void blender::compositor::step_update_memory_buffer ( MemoryBuffer * output,
const MemoryBuffer * input,
const rcti & area,
const int num_iterations,
const float compare_min_value )
static

◆ summed_area_table_sum()

◆ symmetric_separable_blur_variable_size()

void blender::compositor::symmetric_separable_blur_variable_size ( const MemoryBuffer & input,
MemoryBuffer & output,
const MemoryBuffer & radius,
int filter_type,
int weights_resolution )

◆ threading_model_queue_deinitialize()

static void blender::compositor::threading_model_queue_deinitialize ( )
static

◆ threading_model_queue_execute()

static void * blender::compositor::threading_model_queue_execute ( void * data)
static

◆ threading_model_queue_finish()

static void blender::compositor::threading_model_queue_finish ( )
static

◆ threading_model_queue_initialize()

static void blender::compositor::threading_model_queue_initialize ( const int num_cpu_threads)
static

◆ threading_model_queue_schedule()

static void blender::compositor::threading_model_queue_schedule ( WorkPackage * package)
static

◆ threading_model_queue_start()

static void blender::compositor::threading_model_queue_start ( )
static

◆ threading_model_queue_stop()

static void blender::compositor::threading_model_queue_stop ( )
static

◆ threading_model_single_thread_execute()

static void blender::compositor::threading_model_single_thread_execute ( WorkPackage * package)
static

◆ threading_model_task_execute()

static void blender::compositor::threading_model_task_execute ( TaskPool * __restrict,
void * task_data )
static

◆ threading_model_task_finish()

static void blender::compositor::threading_model_task_finish ( )
static

◆ threading_model_task_schedule()

static void blender::compositor::threading_model_task_schedule ( WorkPackage * package)
static

◆ threading_model_task_start()

static void blender::compositor::threading_model_task_start ( )
static

◆ threading_model_task_stop()

static void blender::compositor::threading_model_task_stop ( )
static

◆ ThreadLocal()

static blender::compositor::ThreadLocal ( CPUDevice * )
static

◆ upsample()

static void blender::compositor::upsample ( const MemoryBuffer & input,
MemoryBuffer & output )
static

◆ velocity_atomic_max_value()

static uint32_t blender::compositor::velocity_atomic_max_value ( const float2 & value,
const int2 & texel )
static

◆ warp_coord()

Variable Documentation

◆ BOKEH_INPUT_INDEX

◆ BOUNDING_BOX_INPUT_INDEX

int blender::compositor::BOUNDING_BOX_INPUT_INDEX = 2
constexpr

◆ COM_AREA_NONE

◆ COM_BLUR_BOKEH_PIXELS

float blender::compositor::COM_BLUR_BOKEH_PIXELS = 512
constexpr

◆ COM_COLOR_BLACK

float blender::compositor::COM_COLOR_BLACK[4] = {0.0f, 0.0f, 0.0f, 1.0f}
constexpr

Definition at line 63 of file COM_defines.h.

Referenced by blur_pixel().

◆ COM_COLOR_TRANSPARENT

◆ COM_CONSTANT_INPUT_AREA_OF_INTEREST

◆ COM_DATA_TYPE_COLOR_CHANNELS

◆ COM_DATA_TYPE_FLOAT2_CHANNELS

int blender::compositor::COM_DATA_TYPE_FLOAT2_CHANNELS = COM_data_type_num_channels(DataType::Float2)
constexpr

Definition at line 56 of file COM_defines.h.

◆ COM_DATA_TYPE_VALUE_CHANNELS

◆ COM_DATA_TYPE_VECTOR_CHANNELS

int blender::compositor::COM_DATA_TYPE_VECTOR_CHANNELS = COM_data_type_num_channels(DataType::Vector)
constexpr

◆ COM_EXPORT_GRAPHVIZ

◆ COM_EXPORT_OPERATION_BUFFERS

bool blender::compositor::COM_EXPORT_OPERATION_BUFFERS = false
staticconstexpr

◆ COM_FLOAT2_ZERO

float blender::compositor::COM_FLOAT2_ZERO[2] = {0.0f, 0.0f}
constexpr

Definition at line 61 of file COM_defines.h.

◆ COM_GRAPHVIZ_SHOW_NODE_NAME

bool blender::compositor::COM_GRAPHVIZ_SHOW_NODE_NAME = false
staticconstexpr

Definition at line 19 of file COM_Debug.h.

Referenced by blender::compositor::DebugInfo::graphviz_operation().

◆ COM_PREVIEW_SIZE

float blender::compositor::COM_PREVIEW_SIZE = 140.f
constexpr

◆ COM_RULE_OF_THIRDS_DIVIDER

float blender::compositor::COM_RULE_OF_THIRDS_DIVIDER = 100.0f
constexpr

Definition at line 86 of file COM_defines.h.

◆ COM_VALUE_ONE

float blender::compositor::COM_VALUE_ONE[1] = {1.0f}
constexpr

◆ COM_VALUE_ZERO

◆ COM_VECTOR_ZERO

float blender::compositor::COM_VECTOR_ZERO[3] = {0.0f, 0.0f, 0.0f}
constexpr

◆ devices

Vector<CPUDevice> blender::compositor::devices

list of all CPUDevices. for every hardware thread an instance of CPUDevice is created

Definition at line 44 of file COM_WorkScheduler.cc.

◆ [struct]

◆ IMAGE_INPUT_INDEX

◆ initialized

bool blender::compositor::initialized = false

Definition at line 48 of file COM_WorkScheduler.cc.

◆ LOWER_LEFT_CORNER_INDEX

int blender::compositor::LOWER_LEFT_CORNER_INDEX = 0
constexpr

Definition at line 10 of file COM_PlaneCornerPinOperation.cc.

Referenced by set_default_corner().

◆ LOWER_RIGHT_CORNER_INDEX

int blender::compositor::LOWER_RIGHT_CORNER_INDEX = 1
constexpr

Definition at line 11 of file COM_PlaneCornerPinOperation.cc.

Referenced by set_default_corner().

◆ num_cpu_threads

int blender::compositor::num_cpu_threads

◆ pool

TaskPool* blender::compositor::pool

Definition at line 54 of file COM_WorkScheduler.cc.

◆ []

struct { ... } blender::compositor::queue

all scheduled work for the cpu

Definition at line 50 of file COM_WorkScheduler.cc.

◆ RESOLUTION_INPUT_ANY

unsigned int blender::compositor::RESOLUTION_INPUT_ANY = 999999
staticconstexpr

RESOLUTION_INPUT_ANY is a wildcard when any resolution of an input can be used. This solves the issue that the FileInputNode in a group node cannot find the correct resolution.

Definition at line 40 of file COM_NodeOperation.h.

Referenced by blender::compositor::NodeOperation::determine_canvas(), and blender::compositor::FileOutputOperation::FileOutputOperation().

◆ SIZE_INPUT_INDEX

int blender::compositor::SIZE_INPUT_INDEX = 3
constexpr

◆ [struct]

struct { ... } blender::compositor::task

◆ threads

ListBase blender::compositor::threads

list of all thread for every CPUDevice in cpudevices a thread exists.

Definition at line 47 of file COM_WorkScheduler.cc.

◆ UPPER_LEFT_CORNER_INDEX

int blender::compositor::UPPER_LEFT_CORNER_INDEX = 3
constexpr

Definition at line 13 of file COM_PlaneCornerPinOperation.cc.

Referenced by set_default_corner().

◆ UPPER_RIGHT_CORNER_INDEX

int blender::compositor::UPPER_RIGHT_CORNER_INDEX = 2
constexpr

Definition at line 12 of file COM_PlaneCornerPinOperation.cc.

Referenced by set_default_corner().