Blender V4.5
blender::compositor Namespace Reference

Classes

class  BokehKernelKey
class  BokehKernel
class  BokehKernelContainer
class  CachedImageKey
class  CachedImage
class  CachedImageContainer
class  CachedMaskKey
class  CachedMask
class  CachedMaskContainer
class  CachedResource
class  CachedResourceContainer
class  CachedShaderKey
class  CachedShader
class  CachedShaderContainer
class  CachedTextureKey
class  CachedTexture
class  CachedTextureContainer
class  DericheGaussianCoefficientsKey
class  DericheGaussianCoefficients
class  DericheGaussianCoefficientsContainer
class  DistortionGridKey
class  DistortionGrid
class  DistortionGridContainer
class  FogGlowKernelKey
class  FogGlowKernel
class  FogGlowKernelContainer
class  ImageCoordinatesKey
class  ImageCoordinates
class  ImageCoordinatesContainer
class  KeyingScreenKey
class  KeyingScreen
class  KeyingScreenContainer
class  MorphologicalDistanceFeatherWeightsKey
class  MorphologicalDistanceFeatherWeights
class  MorphologicalDistanceFeatherWeightsContainer
class  OCIOColorSpaceConversionShaderKey
class  OCIOColorSpaceConversionShader
class  OCIOColorSpaceConversionShaderContainer
class  SMAAPrecomputedTextures
class  SMAAPrecomputedTexturesContainer
class  SymmetricBlurWeightsKey
class  SymmetricBlurWeights
class  SymmetricBlurWeightsContainer
class  SymmetricSeparableBlurWeightsKey
class  SymmetricSeparableBlurWeights
class  SymmetricSeparableBlurWeightsContainer
class  VanVlietGaussianCoefficientsKey
class  VanVlietGaussianCoefficients
class  VanVlietGaussianCoefficientsContainer
class  GPUShaderCreator
class  CompileState
class  Context
class  ConversionOperation
class  DerivedResources
struct  RealizationOptions
class  Domain
class  Evaluator
class  ImplicitInputOperation
class  InputDescriptor
class  InputSingleValueOperation
class  MultiFunctionProcedureOperation
class  NodeOperation
class  Operation
class  PixelOperation
class  Profiler
class  RealizeOnDomainOperation
class  FileOutput
class  RenderContext
class  Result
class  ShaderNode
class  ShaderOperation
class  SimpleOperation
class  StaticCacheManager
class  DenoisedAuxiliaryPassContainer

Typedefs

using ProcessorsVector = Vector<std::unique_ptr<SimpleOperation>>
using PixelCompileUnit = VectorSet<DNode>
using Schedule = VectorSet<DNode>
using NeededBuffers = Map<DNode, int>
using TargetSocketPathInfo = DOutputSocket::TargetSocketPathInfo

Enumerations

enum class  MorphologicalBlurOperation : uint8_t { Dilate , Erode }
enum class  SummedAreaTableOperation : uint8_t { Identity , Square }
enum class  DistortionType : uint8_t { Distort , Undistort }
enum class  CoordinatesType : uint8_t { Uniform , Normalized , Pixel }
enum class  OutputTypes : uint8_t {
  None = 0 , Composite = 1 << 0 , Viewer = 1 << 1 , FileOutput = 1 << 2 ,
  Previews = 1 << 3
}
enum class  Interpolation : uint8_t { Nearest , Bilinear , Bicubic }
enum class  InputRealizationMode : uint8_t { None , Transforms , OperationDomain }
enum class  ImplicitInput : uint8_t { None , TextureCoordinates }
enum class  ResultType : uint8_t {
  Float , Float2 , Float3 , Float4 ,
  Int , Int2 , Color , Bool
}
enum class  ResultPrecision : uint8_t { Full , Half }
enum class  ResultStorageType : uint8_t { GPU , CPU }

Functions

void compute_preview (Context &context, const nodes::DNode &node, const Result &input_result)
void deriche_gaussian_blur (Context &context, const Result &input, Result &output, const float2float2 &sigma)
void extract_alpha (Context &context, Result &input, Result &output)
void jump_flooding (Context &context, Result &input, Result &output)
int2int2 encode_jump_flooding_value (const int2int2 &closest_seed_texel, const bool is_flooded)
int2int2 initialize_jump_flooding_value (const int2int2 &texel, const bool is_seed)
void morphological_blur (Context &context, const Result &input, Result &output, const float2float2 &radius, const MorphologicalBlurOperation operation=MorphologicalBlurOperation::Erode, const int filter_type=R_FILTER_GAUSS)
void morphological_distance (Context &context, const Result &input, Result &output, const int distance)
void morphological_distance_feather (Context &context, const Result &input, Result &output, const int distance, const int falloff_type=PROP_SMOOTH)
float sum_red (Context &context, const Result &result)
float sum_green (Context &context, const Result &result)
float sum_blue (Context &context, const Result &result)
float sum_luminance (Context &context, const Result &result, const float3float3 &luminance_coefficients)
float sum_log_luminance (Context &context, const Result &result, const float3float3 &luminance_coefficients)
float4 sum_color (Context &context, const Result &result)
float sum_red_squared_difference (Context &context, const Result &result, const float subtrahend)
float sum_green_squared_difference (Context &context, const Result &result, const float subtrahend)
float sum_blue_squared_difference (Context &context, const Result &result, const float subtrahend)
float sum_luminance_squared_difference (Context &context, const Result &result, const float3float3 &luminance_coefficients, const float subtrahend)
float maximum_luminance (Context &context, const Result &result, const float3float3 &luminance_coefficients)
float maximum_float (Context &context, const Result &result)
float3float3 maximum_float3 (Context &context, const Result &result)
float maximum_float_in_range (Context &context, const Result &result, const float lower_bound, const float upper_bound)
float minimum_luminance (Context &context, const Result &result, const float3float3 &luminance_coefficients)
float minimum_float (Context &context, const Result &result)
float minimum_float_in_range (Context &context, const Result &result, const float lower_bound, const float upper_bound)
void recursive_gaussian_blur (Context &context, const Result &input, Result &output, const float2float2 &radius)
void smaa (Context &context, const Result &input, Result &output, const float threshold=0.1f, const float local_contrast_adaptation_factor=2.0f, const int corner_rounding=25)
void summed_area_table (Context &context, Result &input, Result &output, SummedAreaTableOperation operation=SummedAreaTableOperation::Identity)
float4 summed_area_table_sum (const Result &table, const int2int2 &lower_bound, const int2int2 &upper_bound)
void symmetric_separable_blur (Context &context, const Result &input, Result &output, const float2float2 &radius, const int filter_type=R_FILTER_GAUSS, const bool extend_bounds=false)
void symmetric_separable_blur_variable_size (Context &context, const Result &input, const Result &radius, Result &output, const int weights_resolution=128, const int filter_type=R_FILTER_GAUSS)
void van_vliet_gaussian_blur (Context &context, const Result &input, Result &output, const float2float2 &sigma)
static void compute_preview_cpu (Context &context, const Result &input_result, bke::bNodePreview *preview)
static void compute_preview_gpu (Context &context, const Result &input_result, bke::bNodePreview *preview)
static int2int2 compute_preview_size (int2int2 size)
void compute_preview (Context &context, const DNode &node, const Result &input_result)
static void sum_causal_and_non_causal_results_gpu (Context &context, const Result &causal_input, const Result &non_causal_input, Result &output)
static void sum_causal_and_non_causal_results_cpu (const Result &causal_input, const Result &non_causal_input, Result &output)
static void sum_causal_and_non_causal_results (Context &context, const Result &causal_input, const Result &non_causal_input, Result &output)
static void blur_pass_gpu (Context &context, const Result &input, Result &causal_result, Result &non_causal_result, const float sigma)
static void blur_pass_cpu (Context &context, const Result &input, Result &causal_output, Result &non_causal_output, const float sigma)
static void blur_pass (Context &context, const Result &input, Result &output, const float sigma)
static void extract_alpha_gpu (Context &context, Result &input, Result &output)
static void extract_alpha_cpu (Result &input, Result &output)
static void jump_flooding_pass_gpu (Context &context, Result &input, Result &output, int step_size)
static void jump_flooding_pass_cpu (Result &input, Result &output, int step_size)
static void jump_flooding_pass (Context &context, Result &input, Result &output, int step_size)
static const char * get_shader (MorphologicalBlurOperation operation)
static void apply_morphological_operator_gpu (Context &context, const Result &input, Result &blurred_input, const MorphologicalBlurOperation operation)
static void apply_morphological_operator_cpu (const Result &input, Result &blurred_input, const MorphologicalBlurOperation operation)
static void apply_morphological_operator (Context &context, const Result &input, Result &blurred_input, const MorphologicalBlurOperation operation)
static const char * get_shader_name (const int distance)
static void morphological_distance_gpu (Context &context, const Result &input, Result &output, const int distance)
template<bool IsDilate>
static void morphological_distance_cpu (const Result &input, Result &output, const int structuring_element_radius)
template<bool IsErode>
static void morphological_distance_feather_pass (const Result &input, const MorphologicalDistanceFeatherWeights &weights, Result &output)
static const char * get_shader_name (const int distance)
static Result horizontal_pass_gpu (Context &context, const Result &input, const int distance, const int falloff_type)
static Result horizontal_pass_cpu (Context &context, const Result &input, const int distance, const int falloff_type)
static Result horizontal_pass (Context &context, const Result &input, const int distance, const int falloff_type)
static void vertical_pass_gpu (Context &context, const Result &original_input, const Result &horizontal_pass_result, Result &output, const int distance, const int falloff_type)
static void vertical_pass_cpu (Context &context, const Result &original_input, const Result &horizontal_pass_result, Result &output, const int distance, const int falloff_type)
static void vertical_pass (Context &context, const Result &original_input, const Result &horizontal_pass_result, Result &output, const int distance, const int falloff_type)
static float * parallel_reduction_dispatch (GPUTexture *texture, GPUShader *shader, eGPUTextureFormat format)
template<typename Value, typename Function, typename Reduction>
static Value parallel_reduce (const int2int2 range, const Value &identity, const Function &function, const Reduction &reduction)
static float sum_red_gpu (Context &context, const Result &result)
static float sum_red_cpu (const Result &result)
static float sum_green_gpu (Context &context, const Result &result)
static float sum_green_cpu (const Result &result)
static float sum_blue_gpu (Context &context, const Result &result)
static float sum_blue_cpu (const Result &result)
static float sum_luminance_gpu (Context &context, const Result &result, const float3float3 &luminance_coefficients)
static float sum_luminance_cpu (const Result &result, const float3float3 &luminance_coefficients)
static float sum_log_luminance_gpu (Context &context, const Result &result, const float3float3 &luminance_coefficients)
static float sum_log_luminance_cpu (const Result &result, const float3float3 &luminance_coefficients)
static float4 sum_color_gpu (Context &context, const Result &result)
static float4 sum_color_cpu (const Result &result)
static float sum_red_squared_difference_gpu (Context &context, const Result &result, const float subtrahend)
static float sum_red_squared_difference_cpu (const Result &result, const float subtrahend)
static float sum_green_squared_difference_gpu (Context &context, const Result &result, const float subtrahend)
static float sum_green_squared_difference_cpu (const Result &result, const float subtrahend)
static float sum_blue_squared_difference_gpu (Context &context, const Result &result, const float subtrahend)
static float sum_blue_squared_difference_cpu (const Result &result, const float subtrahend)
static float sum_luminance_squared_difference_gpu (Context &context, const Result &result, const float3float3 &luminance_coefficients, const float subtrahend)
static float sum_luminance_squared_difference_cpu (const Result &result, const float3float3 &luminance_coefficients, const float subtrahend)
static float maximum_luminance_gpu (Context &context, const Result &result, const float3float3 &luminance_coefficients)
static float maximum_luminance_cpu (const Result &result, const float3float3 &luminance_coefficients)
static float maximum_float_gpu (Context &context, const Result &result)
static float maximum_float_cpu (const Result &result)
static float3float3 maximum_float3_gpu (Context &context, const Result &result)
static float3float3 maximum_float3_cpu (const Result &result)
static float maximum_float_in_range_gpu (Context &context, const Result &result, const float lower_bound, const float upper_bound)
static float maximum_float_in_range_cpu (const Result &result, const float lower_bound, const float upper_bound)
static float minimum_luminance_gpu (Context &context, const Result &result, const float3float3 &luminance_coefficients)
static float minimum_luminance_cpu (const Result &result, const float3float3 &luminance_coefficients)
static float minimum_float_gpu (Context &context, const Result &result)
static float minimum_float_cpu (const Result &result)
static float minimum_float_in_range_gpu (Context &context, const Result &result, const float lower_bound, const float upper_bound)
static float minimum_float_in_range_cpu (const Result &result, const float lower_bound, const float upper_bound)
static float2float2 compute_sigma_from_radius (float2float2 radius)
static void SMAAMovc (float2float2 cond, float2float2 &variable, float2float2 value)
static void SMAAMovc (float4 cond, float4 &variable, float4 value)
static void SMAAEdgeDetectionVS (float2float2 texcoord, int2int2 size, float4 offset[3])
static void SMAABlendingWeightCalculationVS (float2float2 texcoord, int2int2 size, float2float2 &pixcoord, float4 offset[3])
static void SMAANeighborhoodBlendingVS (float2float2 texcoord, int2int2 size, float4 &offset)
static float2float2 SMAALumaEdgeDetectionPS (float2float2 texcoord, float4 offset[3], SMAATexture2D(colorTex), float edge_threshold, float3float3 luminance_coefficients, float local_contrast_adaptation_factor)
static float2float2 SMAADecodeDiagBilinearAccess (float2float2 e)
static float4 SMAADecodeDiagBilinearAccess (float4 e)
static float2float2 SMAASearchDiag1 (SMAATexture2D(edgesTex), float2float2 texcoord, float2float2 dir, int2int2 size, float2float2 &e)
static float2float2 SMAASearchDiag2 (SMAATexture2D(edgesTex), float2float2 texcoord, float2float2 dir, int2int2 size, float2float2 &e)
static float2float2 SMAAAreaDiag (SMAATexture2D(areaTex), float2float2 dist, float2float2 e, float offset)
static float2float2 SMAACalculateDiagWeights (SMAATexture2D(edgesTex), SMAATexture2D(areaTex), float2float2 texcoord, float2float2 e, float4 subsampleIndices, int2int2 size)
static float SMAASearchLength (SMAATexture2D(searchTex), float2float2 e, float offset)
static float SMAASearchXLeft (SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2float2 texcoord, float end, int2int2 size)
static float SMAASearchXRight (SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2float2 texcoord, float end, int2int2 size)
static float SMAASearchYUp (SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2float2 texcoord, float end, int2int2 size)
static float SMAASearchYDown (SMAATexture2D(edgesTex), SMAATexture2D(searchTex), float2float2 texcoord, float end, int2int2 size)
static float2float2 SMAAArea (SMAATexture2D(areaTex), float2float2 dist, float e1, float e2, float offset)
static void SMAADetectHorizontalCornerPattern (SMAATexture2D(edgesTex), float2float2 &weights, float4 texcoord, float2float2 d, int2int2 size, int corner_rounding)
static void SMAADetectVerticalCornerPattern (SMAATexture2D(edgesTex), float2float2 &weights, float4 texcoord, float2float2 d, int2int2 size, int corner_rounding)
static float4 SMAABlendingWeightCalculationPS (float2float2 texcoord, float2float2 pixcoord, float4 offset[3], SMAATexture2D(edgesTex), SMAATexture2D(areaTex), SMAATexture2D(searchTex), float4 subsampleIndices, int2int2 size, int corner_rounding)
static float4 SMAANeighborhoodBlendingPS (float2float2 texcoord, float4 offset, SMAATexture2D(colorTex), SMAATexture2D(blendTex), int2int2 size)
static float3float3 get_luminance_coefficients (ResultType type)
static Result detect_edges_gpu (Context &context, const Result &input, const float threshold, const float local_contrast_adaptation_factor)
static Result detect_edges_cpu (Context &context, const Result &input, const float threshold, const float local_contrast_adaptation_factor)
static Result detect_edges (Context &context, const Result &input, const float threshold, const float local_contrast_adaptation_factor)
static Result calculate_blending_weights_gpu (Context &context, const Result &edges, const int corner_rounding)
static Result calculate_blending_weights_cpu (Context &context, const Result &edges, const int corner_rounding)
static Result calculate_blending_weights (Context &context, const Result &edges, const int corner_rounding)
static const char * get_blend_shader_name (ResultType type)
static void blend_neighborhood_gpu (Context &context, const Result &input, const Result &weights, Result &output)
static void blend_neighborhood_cpu (const Result &input, const Result &weights, Result &output)
static void blend_neighborhood (Context &context, const Result &input, const Result &weights, Result &output)
static const char * get_compute_incomplete_prologues_shader (SummedAreaTableOperation operation)
static void compute_incomplete_prologues (Context &context, Result &input, SummedAreaTableOperation operation, Result &incomplete_x_prologues, Result &incomplete_y_prologues)
static void compute_complete_x_prologues (Context &context, Result &input, Result &incomplete_x_prologues, Result &complete_x_prologues, Result &complete_x_prologues_sum)
static void compute_complete_y_prologues (Context &context, Result &input, Result &incomplete_y_prologues, Result &complete_x_prologues_sum, Result &complete_y_prologues)
static const char * get_compute_complete_blocks_shader (SummedAreaTableOperation operation)
static void compute_complete_blocks (Context &context, Result &input, Result &complete_x_prologues, Result &complete_y_prologues, SummedAreaTableOperation operation, Result &output)
static void summed_area_table_gpu (Context &context, Result &input, Result &output, SummedAreaTableOperation operation)
static void summed_area_table_cpu (Result &input, Result &output, SummedAreaTableOperation operation)
template<typename T, bool ExtendBounds>
static void blur_pass (const Result &input, const Result &weights, Result &output)
static const char * get_blur_shader (const ResultType type)
static Result horizontal_pass_gpu (Context &context, const Result &input, const float radius, const int filter_type, const bool extend_bounds)
static Result horizontal_pass_cpu (Context &context, const Result &input, const float radius, const int filter_type, const bool extend_bounds)
static Result horizontal_pass (Context &context, const Result &input, const float radius, const int filter_type, const bool extend_bounds)
static void vertical_pass_gpu (Context &context, const Result &original_input, const Result &horizontal_pass_result, Result &output, const float2float2 &radius, const int filter_type, const bool extend_bounds)
static void vertical_pass_cpu (Context &context, const Result &original_input, const Result &horizontal_pass_result, Result &output, const float2float2 &radius, const int filter_type, const bool extend_bounds)
static void vertical_pass (Context &context, const Result &original_input, const Result &horizontal_pass_result, Result &output, const float2float2 &radius, const int filter_type, const bool extend_bounds)
static void blur_pass (const Result &input, const Result &radius_input, const Result &weights, Result &output, const bool is_vertical_pass)
static Result horizontal_pass_gpu (Context &context, const Result &input, const Result &radius, const int weights_resolution, const int filter_type)
static Result horizontal_pass_cpu (Context &context, const Result &input, const Result &radius, const int weights_resolution, const int filter_type)
static Result horizontal_pass (Context &context, const Result &input, const Result &radius, const int weights_resolution, const int filter_type)
static void vertical_pass_gpu (Context &context, const Result &original_input, const Result &horizontal_pass_result, const Result &radius, Result &output, const int weights_resolution, const int filter_type)
static void vertical_pass_cpu (Context &context, const Result &original_input, const Result &horizontal_pass_result, const Result &radius, Result &output, const int weights_resolution, const int filter_type)
static void vertical_pass (Context &context, const Result &original_input, const Result &horizontal_pass_result, const Result &radius, Result &output, const int weights_resolution, const int filter_type)
static void sum_causal_and_non_causal_results_gpu (Context &context, const Result &first_causal_input, const Result &first_non_causal_input, const Result &second_causal_input, const Result &second_non_causal_input, Result &output)
static void sum_causal_and_non_causal_results_cpu (const Result &first_causal_input, const Result &first_non_causal_input, const Result &second_causal_input, const Result &second_non_causal_input, Result &output)
static void sum_causal_and_non_causal_results (Context &context, const Result &first_causal_input, const Result &first_non_causal_input, const Result &second_causal_input, const Result &second_non_causal_input, Result &output)
static void blur_pass_gpu (Context &context, const Result &input, Result &first_causal_result, Result &first_non_causal_result, Result &second_causal_result, Result &second_non_causal_result, const float sigma)
static void blur_pass_cpu (Context &context, const Result &input, Result &first_causal_output, Result &first_non_causal_output, Result &second_causal_output, Result &second_non_causal_output, const float sigma)
static void blur_pass (Context &context, const Result &input, Result &output, const float sigma)
bool operator== (const BokehKernelKey &a, const BokehKernelKey &b)
bool operator== (const CachedImageKey &a, const CachedImageKey &b)
bool operator== (const CachedMaskKey &a, const CachedMaskKey &b)
bool operator== (const CachedShaderKey &a, const CachedShaderKey &b)
bool operator== (const CachedTextureKey &a, const CachedTextureKey &b)
bool operator== (const DericheGaussianCoefficientsKey &a, const DericheGaussianCoefficientsKey &b)
bool operator== (const DistortionGridKey &a, const DistortionGridKey &b)
bool operator== (const FogGlowKernelKey &a, const FogGlowKernelKey &b)
bool operator== (const ImageCoordinatesKey &a, const ImageCoordinatesKey &b)
bool operator== (const KeyingScreenKey &a, const KeyingScreenKey &b)
bool operator== (const MorphologicalDistanceFeatherWeightsKey &a, const MorphologicalDistanceFeatherWeightsKey &b)
bool operator== (const OCIOColorSpaceConversionShaderKey &a, const OCIOColorSpaceConversionShaderKey &b)
bool operator== (const SymmetricBlurWeightsKey &a, const SymmetricBlurWeightsKey &b)
bool operator== (const VanVlietGaussianCoefficientsKey &a, const VanVlietGaussianCoefficientsKey &b)
static float compute_exterior_angle (int sides)
static float compute_rotation (float angle, int sides)
static float2float2 get_regular_polygon_vertex_position (const int vertex_index, const float exterior_angle, const float rotation)
static float2float2 closest_point_on_line (const float2float2 point, const float2float2 line_start, const float2float2 line_end)
static float bokeh (const float2float2 point, const float circumradius, const float exterior_angle, const float rotation, const float roundness, const float catadioptric)
static float4 spectral_bokeh (const int2int2 texel, const int2int2 size, const float exterior_angle, const float rotation, const float roundness, const float catadioptric, const float lens_shift)
static RenderLayerget_render_layer (const RenderResult *render_result, const ImageUser &image_user)
static int get_pass_index (const RenderResult *render_result, const ImageUser &image_user, const char *name)
static RenderPassget_render_pass (const RenderLayer *render_layer, const ImageUser &image_user)
static int get_view_index (const Context &context, const RenderResult *render_result, const ImageUser &image_user)
static ImageUser compute_image_user_for_pass (const Context &context, const Image *image, const RenderResult *render_result, const ImageUser *image_user, const char *pass_name)
static ImBufcompute_linear_buffer (ImBuf *image_buffer)
static ResultType get_result_type (const RenderResult *render_result, const ImageUser &image_user, const ImBuf *image_buffer)
static Vector< MaskRasterHandle * > get_mask_raster_handles (Mask *mask, int2int2 size, int current_frame, bool use_feather, int motion_blur_samples, float motion_blur_shutter)
static double compute_numerator_0 ()
static double compute_numerator_1 (float sigma)
static double compute_numerator_2 (float sigma)
static double compute_numerator_3 (float sigma)
static double4 compute_numerator (float sigma)
static double compute_denominator_1 (float sigma)
static double compute_denominator_2 (float sigma)
static double compute_denominator_3 (float sigma)
static double compute_denominator_4 (float sigma)
static double4 compute_denominator (float sigma)
static float compute_normalization_scale (const double4 &causal_feedforward_coefficients, const double4 &feedback_coefficients)
static double4 compute_non_causal_feedforward_coefficients (const double4 &causal_feedforward_coefficients, const double4 &feedback_coefficients)
static double compute_boundary_coefficient (const double4 &feedforward_coefficients, const double4 &feedback_coefficients)
static int2int2 get_movie_clip_size (MovieClip *movie_clip, int frame_number)
static float compute_fog_glow_kernel_value (int x, int y, int kernel_size)
static const char * get_shader_name (const CoordinatesType type)
static void compute_marker_points (MovieClip *movie_clip, MovieClipUser &movie_clip_user, MovieTrackingObject *movie_tracking_object, Vector< float2float2 > &marker_positions, Vector< float4 > &marker_colors)
static MovieClipUser get_movie_clip_user (Context &context, MovieClip *movie_clip)
static float compute_distance_falloff (int type, float x)
static double compute_scaled_poles_variance (const std::array< std::complex< double >, 4 > &poles, double scale_factor)
static double compute_scaled_poles_variance_derivative (const std::array< std::complex< double >, 4 > &poles, double scale_factor)
static double find_scale_factor (const std::array< std::complex< double >, 4 > &poles, double reference_sigma)
static std::array< std::complex< double >, 4 > computed_scaled_poles (const std::array< std::complex< double >, 4 > &poles, float sigma)
static std::array< std::complex< double >, 4 > compute_causal_poles (const std::array< std::complex< double >, 4 > &non_causal_poles)
static double4 compute_feedback_coefficients (const std::array< std::complex< double >, 4 > &poles)
static double compute_feedforward_coefficient (const double4 &feedback_coefficients)
static std::complex< double > compute_partial_fraction_residue (const std::array< std::complex< double >, 4 > &poles, const std::complex< double > &target_pole, double gain)
static std::complex< double > compute_causal_transfer_function_at_non_causal_pole (const std::array< std::complex< double >, 4 > &poles, const std::complex< double > &target_pole, double gain)
static void compute_second_order_section (const std::complex< double > &pole, const std::complex< double > &residue, const std::complex< double > &transfer_value, double2 &r_feedback_coefficients, double2 &r_causal_feedforward_coefficients, double2 &r_non_causal_feedforward_coefficients)
static double compute_boundary_coefficient (const double2 &feedback_coefficients, const double2 &feedforward_coefficients)
bool operator== (const Domain &a, const Domain &b)
bool operator!= (const Domain &a, const Domain &b)
static void sample_ewa_extended_read_callback (void *userdata, int x, int y, float result[4])
static void sample_ewa_zero_read_callback (void *userdata, int x, int y, float result[4])
Schedule compute_schedule (const Context &context, const DerivedNodeTree &tree)
bool is_socket_available (const bNodeSocket *socket)
DSocket get_input_origin_socket (DInputSocket input)
DOutputSocket get_output_linked_to_input (DInputSocket input)
ResultType get_node_socket_result_type (const bNodeSocket *socket)
bool is_output_linked_to_node_conditioned (DOutputSocket output, FunctionRef< bool(DNode)> condition)
int number_of_inputs_linked_to_output_conditioned (DOutputSocket output, FunctionRef< bool(DInputSocket)> condition)
bool is_pixel_node (DNode node)
InputDescriptor input_descriptor_from_input_socket (const bNodeSocket *socket)
void compute_dispatch_threads_at_least (GPUShader *shader, int2int2 threads_range, int2int2 local_size=int2int2(16))
bool is_node_preview_needed (const DNode &node)
DOutputSocket find_preview_output_socket (const DNode &node)
template<typename Function>
void parallel_for (const int2int2 range, const Function &function)
static GSpan get_result_single_value (const Result &result)
static GMutableSpan get_result_single_value (Result &result)
static GSpan get_result_data (const Result &result)
static GMutableSpan get_result_data (Result &result)
static PixelOperationcreate_pixel_operation (Context &context, CompileState &compile_state)
static ResultType get_implicit_input_result_type (const ImplicitInput implicit_input)
static bool is_compatible_texture (const GPUTexture *texture, const Result &result)
static bool is_tree_context_muted (const DTreeContext &tree_context)
static bool add_viewer_nodes_in_context (const Context &context, const DTreeContext *tree_context, Stack< DNode > &node_stack)
static void add_file_output_nodes (const DTreeContext &tree_context, Stack< DNode > &node_stack)
static void add_output_nodes (const Context &context, const DerivedNodeTree &tree, Stack< DNode > &node_stack)
static NeededBuffers compute_number_of_needed_buffers (Stack< DNode > &output_nodes)
static eGPUType gpu_type_from_socket_type (eNodeSocketDatatype type)
static void populate_gpu_node_stack (DSocket socket, GPUNodeStack &stack)
static void initialize_input_stack_value (const DInputSocket input, GPUNodeStack &stack)
static const char * get_set_function_name (const ResultType type)
static const char * get_store_function_name (ResultType type)
static const char * glsl_store_expression_from_result_type (ResultType type)
static ImageType gpu_image_type_from_result_type (const ResultType type)
static const char * glsl_type_from_result_type (ResultType type)
static const char * glsl_swizzle_from_result_type (ResultType type)
static ImplicitInput get_implicit_input (const nodes::SocketDeclaration *socket_declaration)
static int get_domain_priority (const bNodeSocket *input, const nodes::SocketDeclaration *socket_declaration)
int compute_number_of_diagonals (const int2int2 &size)
int compute_diagonal_length (const int2int2 &size, const int diagonal_index)
int2int2 compute_diagonal_start (const int2int2 &size, const int index)
int2int2 get_diagonal_direction ()
int compute_anti_diagonal_length (const int2int2 &size, const int diagonal_index)
int2int2 compute_anti_diagonal_start (const int2int2 &size, const int index)
int2int2 get_anti_diagonal_direction ()
GPUNodeStackget_shader_node_input (const bNode &node, GPUNodeStack inputs[], StringRef identifier)
GPUNodeStackget_shader_node_output (const bNode &node, GPUNodeStack outputs[], StringRef identifier)
GPUNodeLinkget_shader_node_input_link (const bNode &node, GPUNodeStack inputs[], StringRef identifier)
Symmetric Separable Blur Weights Key
bool operator== (const SymmetricSeparableBlurWeightsKey &a, const SymmetricSeparableBlurWeightsKey &b)

Variables

static constexpr double a0 = 1.6797292232361107
static constexpr double a1 = 3.7348298269103580
static constexpr double b0 = 1.7831906544515104
static constexpr double b1 = 1.7228297663338028
static constexpr double c0 = -0.6802783501806897
static constexpr double c1 = -0.2598300478959625
static constexpr double w0 = 0.6318113174569493
static constexpr double w1 = 1.9969276832487770
static constexpr float transformation_tolerance = 10e-6f

Typedef Documentation

◆ NeededBuffers

Definition at line 160 of file scheduler.cc.

◆ PixelCompileUnit

◆ ProcessorsVector

Definition at line 25 of file COM_operation.hh.

◆ Schedule

Definition at line 18 of file COM_scheduler.hh.

◆ TargetSocketPathInfo

Enumeration Type Documentation

◆ CoordinatesType

Enumerator
Uniform 
Normalized 
Pixel 

Definition at line 20 of file COM_image_coordinates.hh.

◆ DistortionType

Enumerator
Distort 
Undistort 

Definition at line 23 of file COM_distortion_grid.hh.

◆ ImplicitInput

Enumerator
None 
TextureCoordinates 

Definition at line 33 of file COM_input_descriptor.hh.

◆ InputRealizationMode

Enumerator
None 
Transforms 
OperationDomain 

Definition at line 18 of file COM_input_descriptor.hh.

◆ Interpolation

Enumerator
Nearest 
Bilinear 
Bicubic 

Definition at line 16 of file COM_domain.hh.

◆ MorphologicalBlurOperation

Enumerator
Dilate 
Erode 

Definition at line 19 of file COM_algorithm_morphological_blur.hh.

◆ OutputTypes

enum class blender::compositor::OutputTypes : uint8_t
strong
Enumerator
None 
Composite 
Viewer 
FileOutput 
Previews 

Definition at line 27 of file COM_context.hh.

◆ ResultPrecision

Enumerator
Full 
Half 

Definition at line 48 of file COM_result.hh.

◆ ResultStorageType

Enumerator
GPU 
CPU 

Definition at line 54 of file COM_result.hh.

◆ ResultType

enum class blender::compositor::ResultType : uint8_t
strong
Enumerator
Float 
Float2 
Float3 
Float4 
Int 
Int2 
Color 
Bool 

Definition at line 36 of file COM_result.hh.

◆ SummedAreaTableOperation

Enumerator
Identity 
Square 

Definition at line 17 of file COM_algorithm_summed_area_table.hh.

Function Documentation

◆ add_file_output_nodes()

void blender::compositor::add_file_output_nodes ( const DTreeContext & tree_context,
Stack< DNode > & node_stack )
static

◆ add_output_nodes()

◆ add_viewer_nodes_in_context()

bool blender::compositor::add_viewer_nodes_in_context ( const Context & context,
const DTreeContext * tree_context,
Stack< DNode > & node_stack )
static

◆ apply_morphological_operator()

void blender::compositor::apply_morphological_operator ( Context & context,
const Result & input,
Result & blurred_input,
const MorphologicalBlurOperation operation )
static

◆ apply_morphological_operator_cpu()

void blender::compositor::apply_morphological_operator_cpu ( const Result & input,
Result & blurred_input,
const MorphologicalBlurOperation operation )
static

◆ apply_morphological_operator_gpu()

void blender::compositor::apply_morphological_operator_gpu ( Context & context,
const Result & input,
Result & blurred_input,
const MorphologicalBlurOperation operation )
static

◆ blend_neighborhood()

void blender::compositor::blend_neighborhood ( Context & context,
const Result & input,
const Result & weights,
Result & output )
static

Definition at line 1633 of file smaa.cc.

References blend_neighborhood_cpu(), blend_neighborhood_gpu(), input, and output.

Referenced by smaa().

◆ blend_neighborhood_cpu()

void blender::compositor::blend_neighborhood_cpu ( const Result & input,
const Result & weights,
Result & output )
static

◆ blend_neighborhood_gpu()

void blender::compositor::blend_neighborhood_gpu ( Context & context,
const Result & input,
const Result & weights,
Result & output )
static

◆ blur_pass() [1/4]

void blender::compositor::blur_pass ( const Result & input,
const Result & radius_input,
const Result & weights,
Result & output,
const bool is_vertical_pass )
static

◆ blur_pass() [2/4]

template<typename T, bool ExtendBounds>
void blender::compositor::blur_pass ( const Result & input,
const Result & weights,
Result & output )
static

◆ blur_pass() [3/4]

◆ blur_pass() [4/4]

void blender::compositor::blur_pass ( Context & context,
const Result & input,
Result & output,
const float sigma )
static

◆ blur_pass_cpu() [1/2]

◆ blur_pass_cpu() [2/2]

◆ blur_pass_gpu() [1/2]

◆ blur_pass_gpu() [2/2]

void blender::compositor::blur_pass_gpu ( Context & context,
const Result & input,
Result & first_causal_result,
Result & first_non_causal_result,
Result & second_causal_result,
Result & second_non_causal_result,
const float sigma )
static

◆ bokeh()

float blender::compositor::bokeh ( const float2float2 point,
const float circumradius,
const float exterior_angle,
const float rotation,
const float roundness,
const float catadioptric )
static

◆ calculate_blending_weights()

Result blender::compositor::calculate_blending_weights ( Context & context,
const Result & edges,
const int corner_rounding )
static

Definition at line 1566 of file smaa.cc.

References calculate_blending_weights_cpu(), and calculate_blending_weights_gpu().

Referenced by smaa().

◆ calculate_blending_weights_cpu()

◆ calculate_blending_weights_gpu()

◆ closest_point_on_line()

float2float2 blender::compositor::closest_point_on_line ( const float2float2 point,
const float2float2 line_start,
const float2float2 line_end )
static

Definition at line 133 of file bokeh_kernel.cc.

References blender::math::dot().

Referenced by bokeh().

◆ compute_anti_diagonal_length()

int blender::compositor::compute_anti_diagonal_length ( const int2int2 & size,
const int diagonal_index )
inline

◆ compute_anti_diagonal_start()

int2int2 blender::compositor::compute_anti_diagonal_start ( const int2int2 & size,
const int index )
inline

◆ compute_boundary_coefficient() [1/2]

double blender::compositor::compute_boundary_coefficient ( const double2 & feedback_coefficients,
const double2 & feedforward_coefficients )
static

The IIR filter difference equation relies on previous outputs to compute new outputs, those previous outputs are not really defined at the start of the filter. To do Neumann boundary condition, we initialize the previous output with a special value that is a function of the boundary value. This special value is computed by multiply the boundary value with a coefficient to simulate an infinite stream of the boundary value.

The function for the coefficient can be derived by substituting the boundary value for previous inputs, equating all current and previous outputs to the same value, and finally rearranging to compute that same output value.

Start by the difference equation where b_i are the feedforward coefficients and a_i are the feedback coefficients:

y[n] = \sum_{i = 0}^3 b_i x[n - i] - \sum_{i = 0}^3 a_i y[n - i]

Assume all outputs are y and all inputs are x, which is the boundary value:

y = \sum_{i = 0}^3 b_i x - \sum_{i = 0}^3 a_i y

Now rearrange to compute y:

y = x \sum_{i = 0}^3 b_i - y \sum_{i = 0}^3 a_i
y + y \sum_{i = 0}^3 a_i = x \sum_{i = 0}^3 b_i
y (1 + \sum_{i = 0}^3 a_i) = x \sum_{i = 0}^3 b_i
y = x \cdot \frac{\sum_{i = 0}^3 b_i}{1 + \sum_{i = 0}^3 a_i}

So our coefficient is the value that is multiplied by the boundary value x. Had x been zero, that is, we are doing Dirichlet boundary condition, the equations still hold.

Definition at line 394 of file van_vliet_gaussian_coefficients.cc.

References blender::math::reduce_add().

◆ compute_boundary_coefficient() [2/2]

double blender::compositor::compute_boundary_coefficient ( const double4 & feedforward_coefficients,
const double4 & feedback_coefficients )
static

The IIR filter difference equation relies on previous outputs to compute new outputs, those previous outputs are not really defined at the start of the filter. To do Neumann boundary condition, we initialize the previous output with a special value that is a function of the boundary value. This special value is computed by multiply the boundary value with a coefficient to simulate an infinite stream of the boundary value.

The function for the coefficient can be derived by substituting the boundary value for previous inputs, equating all current and previous outputs to the same value, and finally rearranging to compute that same output value.

Start by the difference equation where b_i are the feedforward coefficients and a_i are the feedback coefficients:

y[n] = \sum_{i = 0}^3 b_i x[n - i] - \sum_{i = 0}^3 a_i y[n - i]

Assume all outputs are y and all inputs are x, which is the boundary value:

y = \sum_{i = 0}^3 b_i x - \sum_{i = 0}^3 a_i y

Now rearrange to compute y:

y = x \sum_{i = 0}^3 b_i - y \sum_{i = 0}^3 a_i
y + y \sum_{i = 0}^3 a_i = x \sum_{i = 0}^3 b_i
y (1 + \sum_{i = 0}^3 a_i) = x \sum_{i = 0}^3 b_i
y = x \cdot \frac{\sum_{i = 0}^3 b_i}{1 + \sum_{i = 0}^3 a_i}

So our coefficient is the value that is multiplied by the boundary value x. Had x been zero, that is, we are doing Dirichlet boundary condition, the equations still hold.

Definition at line 240 of file deriche_gaussian_coefficients.cc.

References blender::math::reduce_add().

Referenced by blender::compositor::DericheGaussianCoefficients::DericheGaussianCoefficients(), and blender::compositor::VanVlietGaussianCoefficients::VanVlietGaussianCoefficients().

◆ compute_causal_poles()

std::array< std::complex< double >, 4 > blender::compositor::compute_causal_poles ( const std::array< std::complex< double >, 4 > & non_causal_poles)
static

◆ compute_causal_transfer_function_at_non_causal_pole()

std::complex< double > blender::compositor::compute_causal_transfer_function_at_non_causal_pole ( const std::array< std::complex< double >, 4 > & poles,
const std::complex< double > & target_pole,
double gain )
static

◆ compute_complete_blocks()

void blender::compositor::compute_complete_blocks ( Context & context,
Result & input,
Result & complete_x_prologues,
Result & complete_y_prologues,
SummedAreaTableOperation operation,
Result & output )
static

◆ compute_complete_x_prologues()

◆ compute_complete_y_prologues()

◆ compute_denominator()

◆ compute_denominator_1()

double blender::compositor::compute_denominator_1 ( float sigma)
static

Definition at line 125 of file deriche_gaussian_coefficients.cc.

References b0, b1, blender::math::cos(), blender::math::exp(), w0, and w1.

Referenced by compute_denominator().

◆ compute_denominator_2()

double blender::compositor::compute_denominator_2 ( float sigma)
static

Definition at line 134 of file deriche_gaussian_coefficients.cc.

References b0, b1, blender::math::cos(), blender::math::exp(), w0, and w1.

Referenced by compute_denominator().

◆ compute_denominator_3()

double blender::compositor::compute_denominator_3 ( float sigma)
static

Definition at line 146 of file deriche_gaussian_coefficients.cc.

References b0, b1, blender::math::cos(), blender::math::exp(), w0, and w1.

Referenced by compute_denominator().

◆ compute_denominator_4()

double blender::compositor::compute_denominator_4 ( float sigma)
static

Definition at line 158 of file deriche_gaussian_coefficients.cc.

References b0, b1, and blender::math::exp().

Referenced by compute_denominator().

◆ compute_diagonal_length()

int blender::compositor::compute_diagonal_length ( const int2int2 & size,
const int diagonal_index )
inline

◆ compute_diagonal_start()

int2int2 blender::compositor::compute_diagonal_start ( const int2int2 & size,
const int index )
inline

◆ compute_dispatch_threads_at_least()

void blender::compositor::compute_dispatch_threads_at_least ( GPUShader * shader,
int2int2 threads_range,
int2int2 local_size = int2int2(16) )

Dispatch the given compute shader in a 2D compute space such that the number of threads in both dimensions is as small as possible but at least covers the entirety of threads_range assuming the shader has a local group size given by local_size. That means that the number of threads might be a bit larger than threads_range, so shaders has to put that into consideration. A default local size of 16x16 is assumed, which is the optimal local size for many image processing shaders.

Definition at line 170 of file utilities.cc.

References blender::math::divide_ceil(), and GPU_compute_dispatch().

Referenced by blender::nodes::node_composite_glare_cc::GlareOperation::accumulate_ghosts_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::accumulate_streak_gpu(), apply_morphological_operator_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::apply_streak_filter_gpu(), blend_neighborhood_gpu(), blur_pass_gpu(), blur_pass_gpu(), calculate_blending_weights_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_base_ghost_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_bloom_downsample_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_bloom_upsample_gpu(), blender::nodes::node_composite_double_edge_mask_cc::DoubleEdgeMaskOperation::compute_boundary_gpu(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_depth_gpu(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_scale_gpu(), blender::nodes::node_composite_double_edge_mask_cc::DoubleEdgeMaskOperation::compute_gradient_gpu(), blender::nodes::node_composite_base_cryptomatte_cc::BaseCryptoMatteOperation::compute_image_gpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_image_gpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::compute_inpainting_boundary_gpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::compute_inpainting_region_gpu(), blender::nodes::node_composite_zcombine_cc::ZCombineOperation::compute_mask_gpu(), blender::nodes::node_composite_base_cryptomatte_cc::BaseCryptoMatteOperation::compute_matte_gpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_matte_gpu(), blender::nodes::node_composite_vec_blur_cc::VectorBlurOperation::compute_motion_blur(), blender::nodes::node_composite_base_cryptomatte_cc::BaseCryptoMatteOperation::compute_pick_gpu(), blender::nodes::node_composite_cornerpin_cc::CornerPinOperation::compute_plane_gpu(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::compute_plane_gpu(), blender::nodes::node_composite_cornerpin_cc::CornerPinOperation::compute_plane_mask_gpu(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::compute_plane_mask_gpu(), compute_preview_gpu(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::compute_structure_tensor_gpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_tweaked_matte_gpu(), detect_edges_gpu(), blender::nodes::node_composite_vec_blur_cc::VectorBlurOperation::dilate_max_velocity(), blender::compositor::ConversionOperation::execute(), blender::compositor::ShaderOperation::execute(), blender::nodes::node_composite_crop_cc::CropOperation::execute_alpha_crop_gpu(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::execute_anisotropic_gpu(), blender::nodes::node_composite_zcombine_cc::ZCombineOperation::execute_anti_aliased_depth_gpu(), blender::nodes::node_composite_zcombine_cc::ZCombineOperation::execute_anti_aliased_image_gpu(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::execute_classic_convolution_gpu(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::execute_classic_summed_area_table_gpu(), blender::nodes::node_composite_blur_cc::BlurOperation::execute_constant_size_gpu(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::execute_constant_size_gpu(), blender::nodes::node_composite_composite_cc::CompositeOperation::execute_copy_gpu(), blender::nodes::node_composite_viewer_cc::ViewerOperation::execute_copy_gpu(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::execute_distance_threshold_gpu(), blender::nodes::node_composite_bilateralblur_cc::BilateralBlurOperation::execute_gpu(), blender::nodes::node_composite_boxmask_cc::BoxMaskOperation::execute_gpu(), blender::nodes::node_composite_convert_color_space_cc::ConvertColorSpaceOperation::execute_gpu(), blender::nodes::node_composite_defocus_cc::DefocusOperation::execute_gpu(), blender::nodes::node_composite_despeckle_cc::DespeckleOperation::execute_gpu(), blender::nodes::node_composite_directionalblur_cc::DirectionalBlurOperation::execute_gpu(), blender::nodes::node_composite_displace_cc::DisplaceOperation::execute_gpu(), blender::nodes::node_composite_ellipsemask_cc::EllipseMaskOperation::execute_gpu(), blender::nodes::node_composite_filter_cc::FilterOperation::execute_gpu(), blender::nodes::node_composite_flip_cc::FlipOperation::execute_gpu(), blender::nodes::node_composite_id_mask_cc::IDMaskOperation::execute_gpu(), blender::nodes::node_composite_map_uv_cc::MapUVOperation::execute_gpu(), blender::nodes::node_composite_moviedistortion_cc::MovieDistortionOperation::execute_gpu(), blender::nodes::node_composite_normalize_cc::NormalizeOperation::execute_gpu(), blender::nodes::node_composite_pixelate_cc::PixelateOperation::execute_gpu(), blender::nodes::node_composite_split_cc::SplitOperation::execute_gpu(), blender::nodes::node_composite_sunbeams_cc::SunBeamsOperation::execute_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_highlights_gpu(), blender::nodes::node_composite_lensdist_cc::LensDistortionOperation::execute_horizontal_distortion_gpu(), blender::nodes::node_composite_crop_cc::CropOperation::execute_image_crop_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_mix_gpu(), blender::nodes::node_composite_group_input_cc::GroupInputOperation::execute_pass_gpu(), blender::nodes::node_composite_render_layer_cc::RenderLayerOperation::execute_pass_gpu(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::execute_photoreceptor_gpu(), blender::nodes::node_composite_lensdist_cc::LensDistortionOperation::execute_radial_distortion_gpu(), blender::nodes::node_composite_zcombine_cc::ZCombineOperation::execute_simple_depth_gpu(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::execute_simple_gpu(), blender::nodes::node_composite_zcombine_cc::ZCombineOperation::execute_simple_image_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_anti_diagonal_pass_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_diagonal_pass_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_horizontal_pass_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_vertical_pass_gpu(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::execute_step_horizontal_pass_gpu(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::execute_step_vertical_pass_gpu(), blender::nodes::node_composite_blur_cc::BlurOperation::execute_variable_size_gpu(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::execute_variable_size_gpu(), blender::nodes::node_composite_scale_cc::ScaleOperation::execute_variable_size_gpu(), extract_alpha_gpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::extract_input_chroma_gpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::fill_inpainting_region_gpu(), horizontal_pass_gpu(), horizontal_pass_gpu(), horizontal_pass_gpu(), jump_flooding_pass_gpu(), morphological_distance_gpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::replace_input_chroma_gpu(), sum_causal_and_non_causal_results_gpu(), sum_causal_and_non_causal_results_gpu(), vertical_pass_gpu(), vertical_pass_gpu(), vertical_pass_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::write_glare_output_gpu(), and blender::nodes::node_composite_glare_cc::GlareOperation::write_highlights_output_gpu().

◆ compute_distance_falloff()

float blender::compositor::compute_distance_falloff ( int type,
float x )
static

◆ compute_exterior_angle()

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

Definition at line 81 of file bokeh_kernel.cc.

References blender::math::numbers::pi.

Referenced by compute_rotation().

◆ compute_feedback_coefficients()

double4 blender::compositor::compute_feedback_coefficients ( const std::array< std::complex< double >, 4 > & poles)
static

◆ compute_feedforward_coefficient()

double blender::compositor::compute_feedforward_coefficient ( const double4 & feedback_coefficients)
static

◆ compute_fog_glow_kernel_value()

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

◆ compute_image_user_for_pass()

ImageUser blender::compositor::compute_image_user_for_pass ( const Context & context,
const Image * image,
const RenderResult * render_result,
const ImageUser * image_user,
const char * pass_name )
static

◆ compute_incomplete_prologues()

◆ compute_linear_buffer()

◆ compute_marker_points()

◆ compute_non_causal_feedforward_coefficients()

double4 blender::compositor::compute_non_causal_feedforward_coefficients ( const double4 & causal_feedforward_coefficients,
const double4 & feedback_coefficients )
static

◆ compute_normalization_scale()

float blender::compositor::compute_normalization_scale ( const double4 & causal_feedforward_coefficients,
const double4 & feedback_coefficients )
static

◆ compute_number_of_diagonals()

◆ compute_number_of_needed_buffers()

◆ compute_numerator()

◆ compute_numerator_0()

double blender::compositor::compute_numerator_0 ( )
static

Definition at line 69 of file deriche_gaussian_coefficients.cc.

References a0, and c0.

Referenced by compute_numerator().

◆ compute_numerator_1()

double blender::compositor::compute_numerator_1 ( float sigma)
static

◆ compute_numerator_2()

double blender::compositor::compute_numerator_2 ( float sigma)
static

◆ compute_numerator_3()

double blender::compositor::compute_numerator_3 ( float sigma)
static

◆ compute_partial_fraction_residue()

std::complex< double > blender::compositor::compute_partial_fraction_residue ( const std::array< std::complex< double >, 4 > & poles,
const std::complex< double > & target_pole,
double gain )
static

Computes the residue of the partial fraction of the transfer function of the given causal poles and gain for the given target pole. This essentially evaluates Equation (3.41) in Oppenheim's book, where d_k is the target pole and assuming the transfer function is in the form given in Equation (3.39), where d_k are the poles. See the following derivation for the gain value.

For the particular case of the Van Vliet's system, there are no zeros, so the numerator in Equation (3.39) is one. Further note that Van Vliet's formulation is different from the expected form, so we need to rearrange Equation (3) in to match the form in Equation (3.39), which is shown below.

Start from the causal term of Equation (3):

H_+(z) = \prod_{i=1}^N \frac{d_i - 1}{d_i - z^{-1}}

Divide by d_i:

H_+(z) = \prod_{i=1}^N \frac{1 - d_i^{-1}}{1 - d_i^{-1}z^{-1}}

Move the numerator to its own product:

H_+(z) = \prod_{i=1}^N 1 - d_i^{-1} \prod_{i=1}^N \frac{1}{1 - d_i^{-1}z^{-1}}

And we reach the same form as Equation (3.39). Where the first product term is b0 / a0 and is also the given gain value, which is also the same as the feedforward coefficient denoted by the alpha in Equation (12). Further d_i^{-1} in our derivation is the same as d_k in Equation (3.39), the discrepancy in the inverse operator is the fact that Van Vliet's derivation assume non causal poles, while Oppenheim's assume causal poles, which are inverse of each other as can be seen in the compute_causal_poles function.

Definition at line 290 of file van_vliet_gaussian_coefficients.cc.

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

◆ compute_preview() [1/2]

◆ compute_preview() [2/2]

void blender::compositor::compute_preview ( Context & context,
const nodes::DNode & node,
const Result & input_result )

◆ compute_preview_cpu()

void blender::compositor::compute_preview_cpu ( Context & context,
const Result & input_result,
bke::bNodePreview * preview )
static

◆ compute_preview_gpu()

◆ compute_preview_size()

int2int2 blender::compositor::compute_preview_size ( int2int2 size)
static

Definition at line 113 of file compute_preview.cc.

References compute_preview_size(), and size().

Referenced by compute_preview(), and compute_preview_size().

◆ compute_rotation()

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

Definition at line 86 of file bokeh_kernel.cc.

References angle(), compute_exterior_angle(), and blender::math::numbers::pi.

◆ compute_scaled_poles_variance()

double blender::compositor::compute_scaled_poles_variance ( const std::array< std::complex< double >, 4 > & poles,
double scale_factor )
static

Definition at line 65 of file van_vliet_gaussian_coefficients.cc.

Referenced by find_scale_factor().

◆ compute_scaled_poles_variance_derivative()

double blender::compositor::compute_scaled_poles_variance_derivative ( const std::array< std::complex< double >, 4 > & poles,
double scale_factor )
static

Computes the partial derivative with respect to the scale factor at the given scale factor of the variance of the Gaussian filter represented by the given poles scaled by the given scale factor. This is based on the partial derivative with respect to the scale factor of Equation (20) in Van Vliet's paper.

The derivative is not listed in the paper, but was computed manually as the sum of the following for each of the poles:

\frac{
2a^\frac{1}{x}e^\frac{ib}{x} (e^\frac{ib}{x}+a^\frac{1}{x}) (\ln(a)-ib)
}{
x^2 (a^\frac{1}{x}-e^\frac{ib}{x})^3
}

Where "x" is the scale factor, "a" is the magnitude of the pole, and "b" is its phase.

Definition at line 101 of file van_vliet_gaussian_coefficients.cc.

References blender::math::square().

Referenced by find_scale_factor().

◆ compute_schedule()

◆ compute_second_order_section()

void blender::compositor::compute_second_order_section ( const std::complex< double > & pole,
const std::complex< double > & residue,
const std::complex< double > & transfer_value,
double2 & r_feedback_coefficients,
double2 & r_causal_feedforward_coefficients,
double2 & r_non_causal_feedforward_coefficients )
static

◆ compute_sigma_from_radius()

float2float2 blender::compositor::compute_sigma_from_radius ( float2float2 radius)
static

Definition at line 21 of file recursive_gaussian_blur.cc.

References blender::math::max().

Referenced by recursive_gaussian_blur().

◆ computed_scaled_poles()

std::array< std::complex< double >, 4 > blender::compositor::computed_scaled_poles ( const std::array< std::complex< double >, 4 > & poles,
float sigma )
static

◆ create_pixel_operation()

◆ deriche_gaussian_blur()

void blender::compositor::deriche_gaussian_blur ( Context & context,
const Result & input,
Result & output,
const float2float2 & sigma )

◆ detect_edges()

Result blender::compositor::detect_edges ( Context & context,
const Result & input,
const float threshold,
const float local_contrast_adaptation_factor )
static

Definition at line 1488 of file smaa.cc.

References detect_edges_cpu(), detect_edges_gpu(), and input.

Referenced by smaa().

◆ detect_edges_cpu()

Result blender::compositor::detect_edges_cpu ( Context & context,
const Result & input,
const float threshold,
const float local_contrast_adaptation_factor )
static

◆ detect_edges_gpu()

◆ encode_jump_flooding_value()

int2int2 blender::compositor::encode_jump_flooding_value ( const int2int2 & closest_seed_texel,
const bool is_flooded )
inline

◆ extract_alpha()

void blender::compositor::extract_alpha ( Context & context,
Result & input,
Result & output )

◆ extract_alpha_cpu()

void blender::compositor::extract_alpha_cpu ( Result & input,
Result & output )
static

Definition at line 32 of file extract_alpha.cc.

References input, output, and parallel_for().

Referenced by extract_alpha().

◆ extract_alpha_gpu()

void blender::compositor::extract_alpha_gpu ( Context & context,
Result & input,
Result & output )
static

◆ find_preview_output_socket()

DOutputSocket blender::compositor::find_preview_output_socket ( const DNode & node)

◆ find_scale_factor()

double blender::compositor::find_scale_factor ( const std::array< std::complex< double >, 4 > & poles,
double reference_sigma )
static

◆ get_anti_diagonal_direction()

int2int2 blender::compositor::get_anti_diagonal_direction ( )
inline

◆ get_blend_shader_name()

const char * blender::compositor::get_blend_shader_name ( ResultType type)
static

Definition at line 1577 of file smaa.cc.

References BLI_assert_unreachable, Color, and Float.

Referenced by blend_neighborhood_gpu().

◆ get_blur_shader()

const char * blender::compositor::get_blur_shader ( const ResultType type)
static

Definition at line 72 of file symmetric_separable_blur.cc.

References BLI_assert_unreachable, Color, and Float.

Referenced by horizontal_pass_gpu(), and vertical_pass_gpu().

◆ get_compute_complete_blocks_shader()

const char * blender::compositor::get_compute_complete_blocks_shader ( SummedAreaTableOperation operation)
static

Definition at line 153 of file summed_area_table.cc.

References BLI_assert_unreachable, Identity, and Square.

Referenced by compute_complete_blocks().

◆ get_compute_incomplete_prologues_shader()

const char * blender::compositor::get_compute_incomplete_prologues_shader ( SummedAreaTableOperation operation)
static

Definition at line 33 of file summed_area_table.cc.

References BLI_assert_unreachable, Identity, and Square.

Referenced by compute_incomplete_prologues().

◆ get_diagonal_direction()

int2int2 blender::compositor::get_diagonal_direction ( )
inline

◆ get_domain_priority()

int blender::compositor::get_domain_priority ( const bNodeSocket * input,
const nodes::SocketDeclaration * socket_declaration )
static

◆ get_implicit_input()

ImplicitInput blender::compositor::get_implicit_input ( const nodes::SocketDeclaration * socket_declaration)
static

◆ get_implicit_input_result_type()

ResultType blender::compositor::get_implicit_input_result_type ( const ImplicitInput implicit_input)
static

◆ get_input_origin_socket()

DSocket blender::compositor::get_input_origin_socket ( DInputSocket input)

Get the origin socket of the given node input. If the input is not linked, the socket itself is returned. If the input is linked, the socket that is linked to it is returned, which could either be an input or an output. An input socket is returned when the given input is connected to an unlinked input of a group input node.

Definition at line 30 of file utilities.cc.

References input.

Referenced by get_output_linked_to_input().

◆ get_luminance_coefficients()

float3float3 blender::compositor::get_luminance_coefficients ( ResultType type)
static

◆ get_mask_raster_handles()

Vector< MaskRasterHandle * > blender::compositor::get_mask_raster_handles ( Mask * mask,
int2int2 size,
int current_frame,
bool use_feather,
int motion_blur_samples,
float motion_blur_shutter )
static

◆ get_movie_clip_size()

int2int2 blender::compositor::get_movie_clip_size ( MovieClip * movie_clip,
int frame_number )
static

◆ get_movie_clip_user()

MovieClipUser blender::compositor::get_movie_clip_user ( Context & context,
MovieClip * movie_clip )
static

◆ get_node_socket_result_type()

ResultType blender::compositor::get_node_socket_result_type ( const bNodeSocket * socket)

◆ get_output_linked_to_input()

DOutputSocket blender::compositor::get_output_linked_to_input ( DInputSocket input)

Get the output socket linked to the given node input. If the input is not linked to an output, a null output is returned.

Definition at line 50 of file utilities.cc.

References get_input_origin_socket(), and input.

Referenced by compute_number_of_needed_buffers(), and compute_schedule().

◆ get_pass_index()

int blender::compositor::get_pass_index ( const RenderResult * render_result,
const ImageUser & image_user,
const char * name )
static

◆ get_regular_polygon_vertex_position()

float2float2 blender::compositor::get_regular_polygon_vertex_position ( const int vertex_index,
const float exterior_angle,
const float rotation )
static

Definition at line 123 of file bokeh_kernel.cc.

References angle(), blender::math::cos(), and blender::math::sin().

Referenced by bokeh().

◆ get_render_layer()

RenderLayer * blender::compositor::get_render_layer ( const RenderResult * render_result,
const ImageUser & image_user )
static

Definition at line 62 of file cached_image.cc.

References BLI_findlink(), ImageUser::layer, and RenderResult::layers.

Referenced by get_pass_index(), and get_result_type().

◆ get_render_pass()

RenderPass * blender::compositor::get_render_pass ( const RenderLayer * render_layer,
const ImageUser & image_user )
static

Definition at line 80 of file cached_image.cc.

References BLI_findlink(), ImageUser::pass, and RenderLayer::passes.

Referenced by get_result_type().

◆ get_result_data() [1/2]

GSpan blender::compositor::get_result_data ( const Result & result)
static

Definition at line 128 of file conversion_operation.cc.

References Color, blender::CPPType::get(), and result.

◆ get_result_data() [2/2]

GMutableSpan blender::compositor::get_result_data ( Result & result)
static

Definition at line 140 of file conversion_operation.cc.

References Color, blender::CPPType::get(), and result.

◆ get_result_single_value() [1/2]

GSpan blender::compositor::get_result_single_value ( const Result & result)
static

Definition at line 97 of file conversion_operation.cc.

References Color, blender::CPPType::get(), and result.

◆ get_result_single_value() [2/2]

GMutableSpan blender::compositor::get_result_single_value ( Result & result)
static

Definition at line 107 of file conversion_operation.cc.

References Color, blender::CPPType::get(), and result.

◆ get_result_type()

ResultType blender::compositor::get_result_type ( const RenderResult * render_result,
const ImageUser & image_user,
const ImBuf * image_buffer )
static

◆ get_set_function_name()

const char * blender::compositor::get_set_function_name ( const ResultType type)
static

Definition at line 226 of file shader_operation.cc.

References BLI_assert_unreachable, Bool, Color, Float, Float2, Float3, Float4, Int, and Int2.

◆ get_shader()

const char * blender::compositor::get_shader ( MorphologicalBlurOperation operation)
static

Definition at line 20 of file morphological_blur.cc.

References BLI_assert_unreachable, Dilate, and Erode.

Referenced by apply_morphological_operator_gpu().

◆ get_shader_name() [1/3]

const char * blender::compositor::get_shader_name ( const CoordinatesType type)
static

Definition at line 62 of file image_coordinates.cc.

References BLI_assert_unreachable, Normalized, Pixel, and Uniform.

◆ get_shader_name() [2/3]

const char * blender::compositor::get_shader_name ( const int distance)
static

◆ get_shader_name() [3/3]

const char * blender::compositor::get_shader_name ( const int distance)
static

Definition at line 132 of file morphological_distance_feather.cc.

References distance().

◆ get_shader_node_input()

◆ get_shader_node_input_link()

GPUNodeLink * blender::compositor::get_shader_node_input_link ( const bNode & node,
GPUNodeStack inputs[],
StringRef identifier )

◆ get_shader_node_output()

◆ get_store_function_name()

const char * blender::compositor::get_store_function_name ( ResultType type)
static

Definition at line 436 of file shader_operation.cc.

References BLI_assert_unreachable, Bool, Color, Float, Float2, Float3, Float4, Int, and Int2.

◆ get_view_index()

int blender::compositor::get_view_index ( const Context & context,
const RenderResult * render_result,
const ImageUser & image_user )
static

◆ glsl_store_expression_from_result_type()

const char * blender::compositor::glsl_store_expression_from_result_type ( ResultType type)
static

Definition at line 534 of file shader_operation.cc.

References BLI_assert_unreachable, Bool, Color, Float, Float2, Float3, Float4, Int, and Int2.

◆ glsl_swizzle_from_result_type()

const char * blender::compositor::glsl_swizzle_from_result_type ( ResultType type)
static

Definition at line 733 of file shader_operation.cc.

References BLI_assert_unreachable, Bool, Color, Float, Float2, Float3, Float4, Int, and Int2.

◆ glsl_type_from_result_type()

const char * blender::compositor::glsl_type_from_result_type ( ResultType type)
static

Definition at line 703 of file shader_operation.cc.

References BLI_assert_unreachable, Bool, Color, Float, Float2, Float3, Float4, Int, and Int2.

◆ gpu_image_type_from_result_type()

ImageType blender::compositor::gpu_image_type_from_result_type ( const ResultType type)
static

Definition at line 567 of file shader_operation.cc.

References BLI_assert_unreachable, Bool, Color, Float, Float2, Float3, Float4, Int, and Int2.

◆ gpu_type_from_socket_type()

eGPUType blender::compositor::gpu_type_from_socket_type ( eNodeSocketDatatype type)
static

◆ horizontal_pass() [1/3]

Result blender::compositor::horizontal_pass ( Context & context,
const Result & input,
const float radius,
const int filter_type,
const bool extend_bounds )
static

Definition at line 185 of file symmetric_separable_blur.cc.

References horizontal_pass_cpu(), horizontal_pass_gpu(), and input.

◆ horizontal_pass() [2/3]

Result blender::compositor::horizontal_pass ( Context & context,
const Result & input,
const int distance,
const int falloff_type )
static

◆ horizontal_pass() [3/3]

Result blender::compositor::horizontal_pass ( Context & context,
const Result & input,
const Result & radius,
const int weights_resolution,
const int filter_type )
static

◆ horizontal_pass_cpu() [1/3]

Result blender::compositor::horizontal_pass_cpu ( Context & context,
const Result & input,
const float radius,
const int filter_type,
const bool extend_bounds )
static

◆ horizontal_pass_cpu() [2/3]

Result blender::compositor::horizontal_pass_cpu ( Context & context,
const Result & input,
const int distance,
const int falloff_type )
static

◆ horizontal_pass_cpu() [3/3]

Result blender::compositor::horizontal_pass_cpu ( Context & context,
const Result & input,
const Result & radius,
const int weights_resolution,
const int filter_type )
static

◆ horizontal_pass_gpu() [1/3]

Result blender::compositor::horizontal_pass_gpu ( Context & context,
const Result & input,
const float radius,
const int filter_type,
const bool extend_bounds )
static

◆ horizontal_pass_gpu() [2/3]

◆ horizontal_pass_gpu() [3/3]

◆ initialize_input_stack_value()

void blender::compositor::initialize_input_stack_value ( const DInputSocket input,
GPUNodeStack & stack )
static

◆ initialize_jump_flooding_value()

◆ input_descriptor_from_input_socket()

◆ is_compatible_texture()

bool blender::compositor::is_compatible_texture ( const GPUTexture * texture,
const Result & result )
static

◆ is_node_preview_needed()

bool blender::compositor::is_node_preview_needed ( const DNode & node)

◆ is_output_linked_to_node_conditioned()

bool blender::compositor::is_output_linked_to_node_conditioned ( DOutputSocket output,
FunctionRef< bool(DNode)> condition )

Returns true if any of the nodes linked to the given output satisfies the given condition, and false otherwise.

Definition at line 88 of file utilities.cc.

References output.

Referenced by compute_number_of_needed_buffers(), and blender::compositor::CompileState::compute_pixel_node_operation_outputs_count().

◆ is_pixel_node()

bool blender::compositor::is_pixel_node ( DNode node)

A node is a pixel node if it defines a method to get a pixel node operation.

Definition at line 118 of file utilities.cc.

References BLI_assert.

Referenced by compute_number_of_needed_buffers(), blender::compositor::Evaluator::evaluate(), and blender::compositor::CompileState::should_compile_pixel_compile_unit().

◆ is_socket_available()

◆ is_tree_context_muted()

bool blender::compositor::is_tree_context_muted ( const DTreeContext & tree_context)
static

◆ jump_flooding()

◆ jump_flooding_pass()

void blender::compositor::jump_flooding_pass ( Context & context,
Result & input,
Result & output,
int step_size )
static

◆ jump_flooding_pass_cpu()

void blender::compositor::jump_flooding_pass_cpu ( Result & input,
Result & output,
int step_size )
static

Definition at line 53 of file jump_flooding.cc.

References encode_jump_flooding_value(), input, output, and parallel_for().

Referenced by jump_flooding_pass().

◆ jump_flooding_pass_gpu()

void blender::compositor::jump_flooding_pass_gpu ( Context & context,
Result & input,
Result & output,
int step_size )
static

◆ maximum_float()

float blender::compositor::maximum_float ( Context & context,
const Result & result )

◆ maximum_float3()

float3float3 blender::compositor::maximum_float3 ( Context & context,
const Result & result )

◆ maximum_float3_cpu()

float3float3 blender::compositor::maximum_float3_cpu ( const Result & result)
static

◆ maximum_float3_gpu()

float3float3 blender::compositor::maximum_float3_gpu ( Context & context,
const Result & result )
static

◆ maximum_float_cpu()

float blender::compositor::maximum_float_cpu ( const Result & result)
static

Definition at line 566 of file parallel_reduction.cc.

References b, maximum_float_cpu(), parallel_reduce(), and result.

Referenced by maximum_float(), and maximum_float_cpu().

◆ maximum_float_gpu()

float blender::compositor::maximum_float_gpu ( Context & context,
const Result & result )
static

◆ maximum_float_in_range()

float blender::compositor::maximum_float_in_range ( Context & context,
const Result & result,
const float lower_bound,
const float upper_bound )

◆ maximum_float_in_range_cpu()

float blender::compositor::maximum_float_in_range_cpu ( const Result & result,
const float lower_bound,
const float upper_bound )
static

◆ maximum_float_in_range_gpu()

float blender::compositor::maximum_float_in_range_gpu ( Context & context,
const Result & result,
const float lower_bound,
const float upper_bound )
static

◆ maximum_luminance()

float blender::compositor::maximum_luminance ( Context & context,
const Result & result,
const float3float3 & luminance_coefficients )

◆ maximum_luminance_cpu()

float blender::compositor::maximum_luminance_cpu ( const Result & result,
const float3float3 & luminance_coefficients )
static

Definition at line 528 of file parallel_reduction.cc.

References b, maximum_luminance_cpu(), parallel_reduce(), and result.

Referenced by maximum_luminance(), and maximum_luminance_cpu().

◆ maximum_luminance_gpu()

float blender::compositor::maximum_luminance_gpu ( Context & context,
const Result & result,
const float3float3 & luminance_coefficients )
static

◆ minimum_float()

float blender::compositor::minimum_float ( Context & context,
const Result & result )

Definition at line 740 of file parallel_reduction.cc.

References minimum_float(), minimum_float_cpu(), minimum_float_gpu(), and result.

Referenced by minimum_float().

◆ minimum_float_cpu()

float blender::compositor::minimum_float_cpu ( const Result & result)
static

Definition at line 729 of file parallel_reduction.cc.

References b, minimum_float_cpu(), parallel_reduce(), and result.

Referenced by minimum_float(), and minimum_float_cpu().

◆ minimum_float_gpu()

float blender::compositor::minimum_float_gpu ( Context & context,
const Result & result )
static

◆ minimum_float_in_range()

float blender::compositor::minimum_float_in_range ( Context & context,
const Result & result,
const float lower_bound,
const float upper_bound )

◆ minimum_float_in_range_cpu()

float blender::compositor::minimum_float_in_range_cpu ( const Result & result,
const float lower_bound,
const float upper_bound )
static

◆ minimum_float_in_range_gpu()

float blender::compositor::minimum_float_in_range_gpu ( Context & context,
const Result & result,
const float lower_bound,
const float upper_bound )
static

◆ minimum_luminance()

float blender::compositor::minimum_luminance ( Context & context,
const Result & result,
const float3float3 & luminance_coefficients )

◆ minimum_luminance_cpu()

float blender::compositor::minimum_luminance_cpu ( const Result & result,
const float3float3 & luminance_coefficients )
static

Definition at line 691 of file parallel_reduction.cc.

References b, minimum_luminance_cpu(), parallel_reduce(), and result.

Referenced by minimum_luminance(), and minimum_luminance_cpu().

◆ minimum_luminance_gpu()

float blender::compositor::minimum_luminance_gpu ( Context & context,
const Result & result,
const float3float3 & luminance_coefficients )
static

◆ morphological_blur()

void blender::compositor::morphological_blur ( Context & context,
const Result & input,
Result & output,
const float2float2 & radius,
const MorphologicalBlurOperation operation = MorphologicalBlurOperation::Erode,
const int filter_type = R_FILTER_GAUSS )

◆ morphological_distance()

◆ morphological_distance_cpu()

template<bool IsDilate>
void blender::compositor::morphological_distance_cpu ( const Result & input,
Result & output,
const int structuring_element_radius )
static

◆ morphological_distance_feather()

void blender::compositor::morphological_distance_feather ( Context & context,
const Result & input,
Result & output,
const int distance,
const int falloff_type = PROP_SMOOTH )

◆ morphological_distance_feather_pass()

◆ morphological_distance_gpu()

void blender::compositor::morphological_distance_gpu ( Context & context,
const Result & input,
Result & output,
const int distance )
static

◆ number_of_inputs_linked_to_output_conditioned()

int blender::compositor::number_of_inputs_linked_to_output_conditioned ( DOutputSocket output,
FunctionRef< bool(DInputSocket)> condition )

Returns the number of inputs linked to the given output that satisfy the given condition.

Definition at line 101 of file utilities.cc.

References count, and output.

Referenced by blender::compositor::NodeOperation::compute_results_reference_counts(), and blender::compositor::PixelOperation::compute_results_reference_counts().

◆ operator!=()

bool blender::compositor::operator!= ( const Domain & a,
const Domain & b )

Definition at line 40 of file domain.cc.

References b.

◆ operator==() [1/16]

◆ operator==() [2/16]

◆ operator==() [3/16]

◆ operator==() [4/16]

bool blender::compositor::operator== ( const CachedShaderKey & a,
const CachedShaderKey & b )

◆ operator==() [5/16]

◆ operator==() [6/16]

bool blender::compositor::operator== ( const DericheGaussianCoefficientsKey & a,
const DericheGaussianCoefficientsKey & b )

◆ operator==() [7/16]

◆ operator==() [8/16]

bool blender::compositor::operator== ( const Domain & a,
const Domain & b )

◆ operator==() [9/16]

bool blender::compositor::operator== ( const FogGlowKernelKey & a,
const FogGlowKernelKey & b )

◆ operator==() [10/16]

bool blender::compositor::operator== ( const ImageCoordinatesKey & a,
const ImageCoordinatesKey & b )

◆ operator==() [11/16]

bool blender::compositor::operator== ( const KeyingScreenKey & a,
const KeyingScreenKey & b )

◆ operator==() [12/16]

◆ operator==() [13/16]

◆ operator==() [14/16]

◆ operator==() [15/16]

◆ operator==() [16/16]

bool blender::compositor::operator== ( const VanVlietGaussianCoefficientsKey & a,
const VanVlietGaussianCoefficientsKey & b )

◆ parallel_for()

template<typename Function>
void blender::compositor::parallel_for ( const int2int2 range,
const Function & function )
inline

Definition at line 83 of file COM_utilities.hh.

References blender::threading::parallel_for().

Referenced by blender::nodes::node_composite_glare_cc::GlareOperation::accumulate_ghosts_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::accumulate_streak_cpu(), apply_morphological_operator_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::apply_streak_filter_cpu(), blend_neighborhood_cpu(), blur_pass(), blur_pass(), blur_pass_cpu(), blur_pass_cpu(), blender::compositor::CachedImage::CachedImage(), blender::compositor::CachedMask::CachedMask(), calculate_blending_weights_cpu(), blender::nodes::node_composite_movieclip_cc::MovieClipOperation::compute_alpha(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_base_ghost_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_bloom_downsample_chain(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_bloom_downsample_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_bloom_upsample_cpu(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::compute_blur_kernel(), blender::nodes::node_composite_double_edge_mask_cc::DoubleEdgeMaskOperation::compute_boundary_cpu(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::compute_classic(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_depth_cpu(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_scale_cpu(), blender::nodes::node_composite_double_edge_mask_cc::DoubleEdgeMaskOperation::compute_gradient_cpu(), blender::nodes::node_composite_movieclip_cc::MovieClipOperation::compute_image(), blender::nodes::node_composite_base_cryptomatte_cc::BaseCryptoMatteOperation::compute_image_cpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_image_cpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::compute_inpainting_boundary_cpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::compute_inpainting_region_cpu(), blender::nodes::node_composite_zcombine_cc::ZCombineOperation::compute_mask_cpu(), blender::nodes::node_composite_base_cryptomatte_cc::BaseCryptoMatteOperation::compute_matte_cpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_matte_cpu(), blender::nodes::node_composite_vec_blur_cc::compute_max_tile_velocity_cpu(), blender::nodes::node_composite_base_cryptomatte_cc::BaseCryptoMatteOperation::compute_pick_cpu(), blender::nodes::node_composite_cornerpin_cc::CornerPinOperation::compute_plane_cpu(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::compute_plane_cpu(), blender::nodes::node_composite_cornerpin_cc::CornerPinOperation::compute_plane_mask_cpu(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::compute_plane_mask_cpu(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::compute_structure_tensor_cpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_tweaked_matte_cpu(), detect_edges_cpu(), blender::nodes::node_composite_vec_blur_cc::dilate_max_velocity_cpu(), blender::compositor::DistortionGrid::DistortionGrid(), blender::nodes::node_composite_denoise_cc::DenoiseOperation::execute(), blender::nodes::node_composite_crop_cc::CropOperation::execute_alpha_crop_cpu(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::execute_anisotropic_cpu(), blender::nodes::node_composite_zcombine_cc::ZCombineOperation::execute_anti_aliased_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_bloom(), blender::nodes::node_composite_composite_cc::CompositeOperation::execute_clear(), blender::nodes::node_composite_viewer_cc::ViewerOperation::execute_clear(), blender::nodes::node_composite_blur_cc::BlurOperation::execute_constant_size_cpu(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::execute_constant_size_cpu(), blender::nodes::node_composite_composite_cc::CompositeOperation::execute_copy_cpu(), blender::nodes::node_composite_viewer_cc::ViewerOperation::execute_copy_cpu(), blender::nodes::node_composite_bilateralblur_cc::BilateralBlurOperation::execute_cpu(), blender::nodes::node_composite_boxmask_cc::BoxMaskOperation::execute_cpu(), blender::nodes::node_composite_convert_color_space_cc::ConvertColorSpaceOperation::execute_cpu(), blender::nodes::node_composite_defocus_cc::DefocusOperation::execute_cpu(), blender::nodes::node_composite_despeckle_cc::DespeckleOperation::execute_cpu(), blender::nodes::node_composite_directionalblur_cc::DirectionalBlurOperation::execute_cpu(), blender::nodes::node_composite_displace_cc::DisplaceOperation::execute_cpu(), blender::nodes::node_composite_ellipsemask_cc::EllipseMaskOperation::execute_cpu(), blender::nodes::node_composite_filter_cc::FilterOperation::execute_cpu(), blender::nodes::node_composite_flip_cc::FlipOperation::execute_cpu(), blender::nodes::node_composite_id_mask_cc::IDMaskOperation::execute_cpu(), blender::nodes::node_composite_moviedistortion_cc::MovieDistortionOperation::execute_cpu(), blender::nodes::node_composite_normalize_cc::NormalizeOperation::execute_cpu(), blender::nodes::node_composite_pixelate_cc::PixelateOperation::execute_cpu(), blender::nodes::node_composite_split_cc::SplitOperation::execute_cpu(), blender::nodes::node_composite_sunbeams_cc::SunBeamsOperation::execute_cpu(), blender::nodes::node_composite_map_uv_cc::MapUVOperation::execute_cpu_anisotropic(), blender::nodes::node_composite_map_uv_cc::MapUVOperation::execute_cpu_nearest(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::execute_distance_threshold_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_highlights_cpu(), blender::nodes::node_composite_lensdist_cc::LensDistortionOperation::execute_horizontal_distortion_cpu(), blender::nodes::node_composite_crop_cc::CropOperation::execute_image_crop_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_mix_cpu(), blender::nodes::node_composite_group_input_cc::GroupInputOperation::execute_pass_cpu(), blender::nodes::node_composite_render_layer_cc::RenderLayerOperation::execute_pass_cpu(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::execute_photoreceptor_cpu(), blender::nodes::node_composite_lensdist_cc::LensDistortionOperation::execute_radial_distortion_cpu(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::execute_simple_cpu(), blender::nodes::node_composite_zcombine_cc::ZCombineOperation::execute_simple_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_anti_diagonal_pass_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_diagonal_pass_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_horizontal_pass_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_vertical_pass_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_streaks(), blender::nodes::node_composite_blur_cc::BlurOperation::execute_variable_size_cpu(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::execute_variable_size_cpu(), blender::nodes::node_composite_scale_cc::ScaleOperation::execute_variable_size_cpu(), extract_alpha_cpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::extract_input_chroma_cpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::fill_inpainting_region_cpu(), blender::nodes::node_composite_file_output_cc::FileOutputOperation::float4_to_float3_image(), jump_flooding_pass_cpu(), morphological_distance_cpu(), morphological_distance_feather_pass(), blender::nodes::node_composite_keying_cc::KeyingOperation::replace_input_chroma_cpu(), sum_causal_and_non_causal_results_cpu(), sum_causal_and_non_causal_results_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::write_glare_output_cpu(), and blender::nodes::node_composite_glare_cc::GlareOperation::write_highlights_output_cpu().

◆ parallel_reduce()

template<typename Value, typename Function, typename Reduction>
Value blender::compositor::parallel_reduce ( const int2int2 range,
const Value & identity,
const Function & function,
const Reduction & reduction )
static

Definition at line 94 of file parallel_reduction.cc.

References blender::threading::parallel_reduce(), and result.

◆ parallel_reduction_dispatch()

◆ populate_gpu_node_stack()

◆ recursive_gaussian_blur()

void blender::compositor::recursive_gaussian_blur ( Context & context,
const Result & input,
Result & output,
const float2float2 & radius )

◆ sample_ewa_extended_read_callback()

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

Given a Result as the userdata argument, sample it at the given coordinates using extended boundary condition and write the result to the result argument.

Definition at line 788 of file COM_result.hh.

References copy_v4_v4(), input, result, x, and y.

Referenced by blender::compositor::Result::sample_ewa_extended().

◆ sample_ewa_zero_read_callback()

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

Given a Result as the userdata argument, sample it at the given coordinates using zero boundary condition and write the result to the result argument.

Definition at line 825 of file COM_result.hh.

References copy_v4_v4(), input, result, x, and y.

Referenced by blender::compositor::Result::sample_ewa_zero().

◆ smaa()

◆ SMAAArea()

float2float2 blender::compositor::SMAAArea ( SMAATexture2D(areaTex) ,
float2float2 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 1123 of file smaa.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()

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

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

Definition at line 875 of file smaa.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 ( float2float2 texcoord,
int2int2 size,
float2float2 & pixcoord,
float4 offset[3] )
static

Blend Weight Calculation Vertex Shader

Definition at line 692 of file smaa.cc.

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

Referenced by calculate_blending_weights_cpu().

◆ SMAACalculateDiagWeights()

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

◆ SMAADecodeDiagBilinearAccess() [1/2]

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

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

Definition at line 799 of file smaa.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 819 of file smaa.cc.

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

◆ SMAADetectHorizontalCornerPattern()

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

◆ SMAADetectVerticalCornerPattern()

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

◆ SMAAEdgeDetectionVS()

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

Edge Detection Vertex Shader

Definition at line 679 of file smaa.cc.

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

Referenced by detect_edges_cpu().

◆ SMAALumaEdgeDetectionPS()

float2float2 blender::compositor::SMAALumaEdgeDetectionPS ( float2float2 texcoord,
float4 offset[3],
SMAATexture2D(colorTex) ,
float edge_threshold,
float3float3 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 726 of file smaa.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().

Referenced by detect_edges_cpu().

◆ SMAAMovc() [1/2]

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

Conditional move:

Definition at line 660 of file smaa.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 666 of file smaa.cc.

References blender::math::interpolate().

◆ SMAANeighborhoodBlendingPS()

◆ SMAANeighborhoodBlendingVS()

void blender::compositor::SMAANeighborhoodBlendingVS ( float2float2 texcoord,
int2int2 size,
float4 & offset )
static

Neighborhood Blending Vertex Shader

Definition at line 714 of file smaa.cc.

References size().

Referenced by blend_neighborhood_cpu().

◆ SMAASearchDiag1()

float2float2 blender::compositor::SMAASearchDiag1 ( SMAATexture2D(edgesTex) ,
float2float2 texcoord,
float2float2 dir,
int2int2 size,
float2float2 & e )
static

These functions allows to perform diagonal pattern searches.

Definition at line 829 of file smaa.cc.

References blender::math::dot(), e, mad, size(), SMAA_MAX_SEARCH_STEPS_DIAG, SMAASamplePoint, blender::VecBase< T, Size >::xy(), blender::VecBase< T, Size >::xyz(), and blender::VecBase< T, Size >::zw().

Referenced by SMAACalculateDiagWeights().

◆ SMAASearchDiag2()

◆ SMAASearchLength()

float blender::compositor::SMAASearchLength ( SMAATexture2D(searchTex) ,
float2float2 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 1011 of file smaa.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) ,
float2float2 texcoord,
float end,
int2int2 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 1034 of file smaa.cc.

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

Referenced by SMAABlendingWeightCalculationPS().

◆ SMAASearchXRight()

float blender::compositor::SMAASearchXRight ( SMAATexture2D(edgesTex) ,
SMAATexture2D(searchTex) ,
float2float2 texcoord,
float end,
int2int2 size )
static

Definition at line 1070 of file smaa.cc.

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

Referenced by SMAABlendingWeightCalculationPS().

◆ SMAASearchYDown()

float blender::compositor::SMAASearchYDown ( SMAATexture2D(edgesTex) ,
SMAATexture2D(searchTex) ,
float2float2 texcoord,
float end,
int2int2 size )
static

Definition at line 1102 of file smaa.cc.

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

Referenced by SMAABlendingWeightCalculationPS().

◆ SMAASearchYUp()

float blender::compositor::SMAASearchYUp ( SMAATexture2D(edgesTex) ,
SMAATexture2D(searchTex) ,
float2float2 texcoord,
float end,
int2int2 size )
static

Definition at line 1085 of file smaa.cc.

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

Referenced by SMAABlendingWeightCalculationPS().

◆ spectral_bokeh()

float4 blender::compositor::spectral_bokeh ( const int2int2 texel,
const int2int2 size,
const float exterior_angle,
const float rotation,
const float roundness,
const float catadioptric,
const float lens_shift )
static

Definition at line 219 of file bokeh_kernel.cc.

References blender::math::abs(), bokeh(), max, min, and size().

◆ sum_blue()

float blender::compositor::sum_blue ( Context & context,
const Result & result )

◆ sum_blue_cpu()

float blender::compositor::sum_blue_cpu ( const Result & result)
static

Definition at line 201 of file parallel_reduction.cc.

References b, parallel_reduce(), result, and sum_blue_cpu().

Referenced by sum_blue(), and sum_blue_cpu().

◆ sum_blue_gpu()

float blender::compositor::sum_blue_gpu ( Context & context,
const Result & result )
static

◆ sum_blue_squared_difference()

float blender::compositor::sum_blue_squared_difference ( Context & context,
const Result & result,
const float subtrahend )

◆ sum_blue_squared_difference_cpu()

float blender::compositor::sum_blue_squared_difference_cpu ( const Result & result,
const float subtrahend )
static

◆ sum_blue_squared_difference_gpu()

float blender::compositor::sum_blue_squared_difference_gpu ( Context & context,
const Result & result,
const float subtrahend )
static

◆ sum_causal_and_non_causal_results() [1/2]

void blender::compositor::sum_causal_and_non_causal_results ( Context & context,
const Result & causal_input,
const Result & non_causal_input,
Result & output )
static

◆ sum_causal_and_non_causal_results() [2/2]

void blender::compositor::sum_causal_and_non_causal_results ( Context & context,
const Result & first_causal_input,
const Result & first_non_causal_input,
const Result & second_causal_input,
const Result & second_non_causal_input,
Result & output )
static

◆ sum_causal_and_non_causal_results_cpu() [1/2]

void blender::compositor::sum_causal_and_non_causal_results_cpu ( const Result & causal_input,
const Result & non_causal_input,
Result & output )
static

◆ sum_causal_and_non_causal_results_cpu() [2/2]

void blender::compositor::sum_causal_and_non_causal_results_cpu ( const Result & first_causal_input,
const Result & first_non_causal_input,
const Result & second_causal_input,
const Result & second_non_causal_input,
Result & output )
static

◆ sum_causal_and_non_causal_results_gpu() [1/2]

◆ sum_causal_and_non_causal_results_gpu() [2/2]

void blender::compositor::sum_causal_and_non_causal_results_gpu ( Context & context,
const Result & first_causal_input,
const Result & first_non_causal_input,
const Result & second_causal_input,
const Result & second_non_causal_input,
Result & output )
static

◆ sum_color()

float4 blender::compositor::sum_color ( Context & context,
const Result & result )

◆ sum_color_cpu()

float4 blender::compositor::sum_color_cpu ( const Result & result)
static

Definition at line 316 of file parallel_reduction.cc.

References b, parallel_reduce(), result, and sum_color_cpu().

Referenced by sum_color(), and sum_color_cpu().

◆ sum_color_gpu()

float4 blender::compositor::sum_color_gpu ( Context & context,
const Result & result )
static

◆ sum_green()

float blender::compositor::sum_green ( Context & context,
const Result & result )

◆ sum_green_cpu()

float blender::compositor::sum_green_cpu ( const Result & result)
static

Definition at line 167 of file parallel_reduction.cc.

References b, parallel_reduce(), result, and sum_green_cpu().

Referenced by sum_green(), and sum_green_cpu().

◆ sum_green_gpu()

float blender::compositor::sum_green_gpu ( Context & context,
const Result & result )
static

◆ sum_green_squared_difference()

float blender::compositor::sum_green_squared_difference ( Context & context,
const Result & result,
const float subtrahend )

◆ sum_green_squared_difference_cpu()

float blender::compositor::sum_green_squared_difference_cpu ( const Result & result,
const float subtrahend )
static

◆ sum_green_squared_difference_gpu()

float blender::compositor::sum_green_squared_difference_gpu ( Context & context,
const Result & result,
const float subtrahend )
static

◆ sum_log_luminance()

float blender::compositor::sum_log_luminance ( Context & context,
const Result & result,
const float3float3 & luminance_coefficients )

◆ sum_log_luminance_cpu()

float blender::compositor::sum_log_luminance_cpu ( const Result & result,
const float3float3 & luminance_coefficients )
static

Definition at line 278 of file parallel_reduction.cc.

References b, parallel_reduce(), result, and sum_log_luminance_cpu().

Referenced by sum_log_luminance(), and sum_log_luminance_cpu().

◆ sum_log_luminance_gpu()

float blender::compositor::sum_log_luminance_gpu ( Context & context,
const Result & result,
const float3float3 & luminance_coefficients )
static

◆ sum_luminance()

◆ sum_luminance_cpu()

float blender::compositor::sum_luminance_cpu ( const Result & result,
const float3float3 & luminance_coefficients )
static

Definition at line 239 of file parallel_reduction.cc.

References b, parallel_reduce(), result, and sum_luminance_cpu().

Referenced by sum_luminance(), and sum_luminance_cpu().

◆ sum_luminance_gpu()

float blender::compositor::sum_luminance_gpu ( Context & context,
const Result & result,
const float3float3 & luminance_coefficients )
static

◆ sum_luminance_squared_difference()

float blender::compositor::sum_luminance_squared_difference ( Context & context,
const Result & result,
const float3float3 & luminance_coefficients,
const float subtrahend )

◆ sum_luminance_squared_difference_cpu()

float blender::compositor::sum_luminance_squared_difference_cpu ( const Result & result,
const float3float3 & luminance_coefficients,
const float subtrahend )
static

◆ sum_luminance_squared_difference_gpu()

float blender::compositor::sum_luminance_squared_difference_gpu ( Context & context,
const Result & result,
const float3float3 & luminance_coefficients,
const float subtrahend )
static

◆ sum_red()

float blender::compositor::sum_red ( Context & context,
const Result & result )

◆ sum_red_cpu()

float blender::compositor::sum_red_cpu ( const Result & result)
static

Definition at line 133 of file parallel_reduction.cc.

References b, parallel_reduce(), result, and sum_red_cpu().

Referenced by sum_red(), and sum_red_cpu().

◆ sum_red_gpu()

float blender::compositor::sum_red_gpu ( Context & context,
const Result & result )
static

◆ sum_red_squared_difference()

float blender::compositor::sum_red_squared_difference ( Context & context,
const Result & result,
const float subtrahend )

◆ sum_red_squared_difference_cpu()

float blender::compositor::sum_red_squared_difference_cpu ( const Result & result,
const float subtrahend )
static

◆ sum_red_squared_difference_gpu()

float blender::compositor::sum_red_squared_difference_gpu ( Context & context,
const Result & result,
const float subtrahend )
static

◆ summed_area_table()

◆ summed_area_table_cpu()

void blender::compositor::summed_area_table_cpu ( Result & input,
Result & output,
SummedAreaTableOperation operation )
static

Definition at line 232 of file summed_area_table.cc.

References input, output, blender::threading::parallel_for(), and size().

Referenced by summed_area_table().

◆ summed_area_table_gpu()

void blender::compositor::summed_area_table_gpu ( Context & context,
Result & input,
Result & output,
SummedAreaTableOperation operation )
static

◆ summed_area_table_sum()

◆ symmetric_separable_blur()

◆ symmetric_separable_blur_variable_size()

void blender::compositor::symmetric_separable_blur_variable_size ( Context & context,
const Result & input,
const Result & radius,
Result & output,
const int weights_resolution = 128,
const int filter_type = R_FILTER_GAUSS )

◆ van_vliet_gaussian_blur()

void blender::compositor::van_vliet_gaussian_blur ( Context & context,
const Result & input,
Result & output,
const float2float2 & sigma )

◆ vertical_pass() [1/3]

void blender::compositor::vertical_pass ( Context & context,
const Result & original_input,
const Result & horizontal_pass_result,
const Result & radius,
Result & output,
const int weights_resolution,
const int filter_type )
static

◆ vertical_pass() [2/3]

void blender::compositor::vertical_pass ( Context & context,
const Result & original_input,
const Result & horizontal_pass_result,
Result & output,
const float2float2 & radius,
const int filter_type,
const bool extend_bounds )
static

Definition at line 276 of file symmetric_separable_blur.cc.

References output, vertical_pass_cpu(), and vertical_pass_gpu().

◆ vertical_pass() [3/3]

void blender::compositor::vertical_pass ( Context & context,
const Result & original_input,
const Result & horizontal_pass_result,
Result & output,
const int distance,
const int falloff_type )
static

◆ vertical_pass_cpu() [1/3]

void blender::compositor::vertical_pass_cpu ( Context & context,
const Result & original_input,
const Result & horizontal_pass_result,
const Result & radius,
Result & output,
const int weights_resolution,
const int filter_type )
static

◆ vertical_pass_cpu() [2/3]

void blender::compositor::vertical_pass_cpu ( Context & context,
const Result & original_input,
const Result & horizontal_pass_result,
Result & output,
const float2float2 & radius,
const int filter_type,
const bool extend_bounds )
static

◆ vertical_pass_cpu() [3/3]

void blender::compositor::vertical_pass_cpu ( Context & context,
const Result & original_input,
const Result & horizontal_pass_result,
Result & output,
const int distance,
const int falloff_type )
static

◆ vertical_pass_gpu() [1/3]

◆ vertical_pass_gpu() [2/3]

void blender::compositor::vertical_pass_gpu ( Context & context,
const Result & original_input,
const Result & horizontal_pass_result,
Result & output,
const float2float2 & radius,
const int filter_type,
const bool extend_bounds )
static

◆ vertical_pass_gpu() [3/3]

Variable Documentation

◆ a0

double blender::compositor::a0 = 1.6797292232361107
inlinestaticconstexpr

◆ a1

double blender::compositor::a1 = 3.7348298269103580
inlinestaticconstexpr

◆ b0

double blender::compositor::b0 = 1.7831906544515104
inlinestaticconstexpr

◆ b1

◆ c0

double blender::compositor::c0 = -0.6802783501806897
inlinestaticconstexpr

◆ c1

double blender::compositor::c1 = -0.2598300478959625
inlinestaticconstexpr

◆ transformation_tolerance

float blender::compositor::transformation_tolerance = 10e-6f
staticconstexpr

◆ w0

double blender::compositor::w0 = 0.6318113174569493
inlinestaticconstexpr

◆ w1

double blender::compositor::w1 = 1.9969276832487770
inlinestaticconstexpr