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...
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()

◆ are_guiding_passes_noise_free()

◆ blur_pass()

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()

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_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, blender::compositor::NodeOperationInput::get_data_type(), blender::compositor::NodeOperationOutput::get_data_type(), 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()

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()

◆ compute_bloom_size_halving_count()

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

◆ compute_exterior_angle()

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

◆ compute_fog_glow_kernel_value()

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

◆ compute_max_tile_velocity()

◆ compute_motion_line()

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

◆ compute_motion_rect()

◆ compute_rotation()

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

◆ compute_symmetric_separable_blur_weights()

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

◆ create_constant_operation()

◆ create_motion_operation()

◆ create_rect()

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().

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

◆ depth_compare()

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()

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()

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

◆ 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()

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

◆ find_reachable_operations_recursive()

◆ float4_to_float3_image()

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

◆ gather_blur()

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(), next, and size().

Referenced by gather_blur().

◆ gather_sample()

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()

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

◆ get_bloom_size()

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

◆ get_channels_count()

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

◆ get_corner_rounding()

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

Definition at line 26 of file COM_AntiAliasingNode.cc.

References data, and int.

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

◆ get_distance_value()

◆ get_input_data_type()

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

◆ get_local_contrast_adaptation_factor()

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

◆ get_min_distance()

◆ get_operation_dependencies()

◆ get_operations_export_dir()

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

◆ get_pixel_saturation()

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

◆ get_threshold()

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

◆ inflate_input()

◆ initialize_buffer()

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()

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

◆ is_constant_foldable()

◆ is_inside_motion_line()

◆ jump_flooding()

◆ jump_flooding_pass()

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 output, blender::threading::parallel_for(), and size().

◆ karis_brightness_weighted_sum()

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

◆ load_jump_flooding()

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.

References size().

◆ load_mask() [1/2]

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(), and size().

◆ load_mask() [2/2]

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

Definition at line 26 of file COM_DoubleEdgeMaskOperation.cc.

References size().

◆ max_velocity()

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

◆ max_velocity_approximate()

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()

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()

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()

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

◆ premultiply_alpha()

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

◆ read_ewa_elem_checked()

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

◆ read_ewa_elem_clamped()

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

◆ read_input_corners()

◆ sample_weight()

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

◆ sample_weights()

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()

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

◆ SMAAArea()

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()

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()

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, size(), SMAA_MAX_SEARCH_STEPS, w(), x, blender::VecBase< T, Size >::xy(), y, and z().

◆ SMAACalculateDiagWeights()

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

◆ SMAADecodeDiagBilinearAccess() [1/2]

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]

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()

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

◆ SMAADetectVerticalCornerPattern()

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

◆ SMAAEdgeDetectionVS()

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 size(), and blender::VecBase< T, Size >::xy().

◆ SMAALumaEdgeDetectionPS()

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(), SMAA_PREDICATION, SMAASamplePoint, SMAATexturePass2D, blender::math::step(), blender::VecBase< T, Size >::xy(), xy, and blender::VecBase< T, Size >::zw().

◆ SMAAMovc() [1/2]

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]

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()

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

Neighborhood Blending Vertex Shader

Definition at line 709 of file COM_SMAAOperation.cc.

References size().

◆ SMAASearchDiag1()

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

◆ SMAASearchDiag2()

◆ SMAASearchLength()

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()

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, size(), SMAASampleLevelZero, SMAASearchLength(), and SMAATexturePass2D.

Referenced by SMAABlendingWeightCalculationPS().

◆ SMAASearchXRight()

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

◆ SMAASearchYDown()

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

◆ SMAASearchYUp()

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

◆ smooth_mask()

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

Definition at line 10 of file COM_GlareGhostOperation.cc.

References sqrtf, x, and y.

Referenced by blender::compositor::GlareGhostOperation::generate_glare().

◆ sort_operations_recursive()

◆ spread_compare()

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>
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()

◆ threading_model_queue_deinitialize()

void blender::compositor::threading_model_queue_deinitialize ( )
static

◆ threading_model_queue_execute()

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

◆ threading_model_queue_finish()

void blender::compositor::threading_model_queue_finish ( )
static

◆ threading_model_queue_initialize()

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

◆ threading_model_queue_schedule()

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

◆ threading_model_queue_start()

void blender::compositor::threading_model_queue_start ( )
static

◆ threading_model_queue_stop()

void blender::compositor::threading_model_queue_stop ( )
static

◆ threading_model_single_thread_execute()

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

◆ threading_model_task_execute()

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

◆ threading_model_task_finish()

void blender::compositor::threading_model_task_finish ( )
static

◆ threading_model_task_schedule()

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

◆ threading_model_task_start()

void blender::compositor::threading_model_task_start ( )
static

◆ threading_model_task_stop()

void blender::compositor::threading_model_task_stop ( )
static

◆ ThreadLocal()

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

◆ upsample()

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

◆ velocity_atomic_max_value()

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().