Blender V5.0
merge.cpp File Reference
#include "session/merge.h"
#include "util/array.h"
#include "util/map.h"
#include "util/time.h"
#include "util/unique_ptr.h"
#include <OpenImageIO/filesystem.h>
#include <OpenImageIO/imageio.h>

Go to the source code of this file.

Classes

struct  MergeImagePass
struct  SampleCount
struct  MergeImageLayer
struct  MergeImage

Enumerations

enum  MergeChannelOp {
  MERGE_CHANNEL_NOP , MERGE_CHANNEL_COPY , MERGE_CHANNEL_SUM , MERGE_CHANNEL_AVERAGE ,
  MERGE_CHANNEL_SAMPLES
}

Functions

static MergeChannelOp parse_channel_operation (const string &pass_name)
static bool split_last_dot (string &in, string &suffix)
static bool parse_channel_name (string name, string &renderlayer, string &pass, string &channel, bool multiview_channels)
static bool parse_channels (const ImageSpec &in_spec, vector< MergeImageLayer > &layers, string &error)
static bool open_images (const vector< string > &filepaths, vector< MergeImage > &images, string &error)
static void merge_render_time (ImageSpec &spec, const vector< MergeImage > &images, const string &name, const bool average)
static void merge_layer_render_time (ImageSpec &spec, const vector< MergeImage > &images, const string &layer_name, const string &time_name, const bool average)
static void merge_channels_metadata (vector< MergeImage > &images, ImageSpec &out_spec)
static void alloc_pixels (const ImageSpec &spec, array< float > &pixels)
static bool merge_pixels (const vector< MergeImage > &images, const ImageSpec &out_spec, const unordered_map< string, SampleCount > &layer_samples, array< float > &out_pixels, string &error)
static bool save_output (const string &filepath, const ImageSpec &spec, const array< float > &pixels, string &error)
static void read_layer_samples (vector< MergeImage > &images, unordered_map< string, SampleCount > &layer_samples)

Enumeration Type Documentation

◆ MergeChannelOp

Enumerator
MERGE_CHANNEL_NOP 
MERGE_CHANNEL_COPY 
MERGE_CHANNEL_SUM 
MERGE_CHANNEL_AVERAGE 
MERGE_CHANNEL_SAMPLES 

Definition at line 21 of file merge.cpp.

Function Documentation

◆ alloc_pixels()

void alloc_pixels ( const ImageSpec & spec,
array< float > & pixels )
static

Definition at line 382 of file merge.cpp.

References array< T, alignment >::resize().

Referenced by merge_pixels().

◆ merge_channels_metadata()

◆ merge_layer_render_time()

void merge_layer_render_time ( ImageSpec & spec,
const vector< MergeImage > & images,
const string & layer_name,
const string & time_name,
const bool average )
static

◆ merge_pixels()

◆ merge_render_time()

void merge_render_time ( ImageSpec & spec,
const vector< MergeImage > & images,
const string & name,
const bool average )
static

◆ open_images()

bool open_images ( const vector< string > & filepaths,
vector< MergeImage > & images,
string & error )
static

Definition at line 235 of file merge.cpp.

References error(), MergeImage::filepath, in, MergeImage::in, MergeImage::layers, and parse_channels().

Referenced by ImageMerger::run().

◆ parse_channel_name()

bool parse_channel_name ( string name,
string & renderlayer,
string & pass,
string & channel,
bool multiview_channels )
static

Definition at line 111 of file merge.cpp.

References name, split_last_dot(), and view.

Referenced by parse_channels().

◆ parse_channel_operation()

MergeChannelOp parse_channel_operation ( const string & pass_name)
static

◆ parse_channels()

◆ read_layer_samples()

void read_layer_samples ( vector< MergeImage > & images,
unordered_map< string, SampleCount > & layer_samples )
static

Definition at line 524 of file merge.cpp.

References array< T, alignment >::data(), i, initialize(), and array< T, alignment >::resize().

Referenced by ImageMerger::run().

◆ save_output()

bool save_output ( const string & filepath,
const ImageSpec & spec,
const array< float > & pixels,
string & error )
static

Definition at line 474 of file merge.cpp.

References array< T, alignment >::data(), error(), out, and unique_name().

Referenced by ImageMerger::run().

◆ split_last_dot()

bool split_last_dot ( string & in,
string & suffix )
static

Definition at line 97 of file merge.cpp.

References in, and pos.

Referenced by parse_channel_name().