Blender V4.5
IMB_openexr.hh File Reference

Go to the source code of this file.

Macros

#define EXR_LAY_MAXNAME   64
#define EXR_PASS_MAXNAME   64
#define EXR_VIEW_MAXNAME   64
#define EXR_TOT_MAXNAME   64
#define EXR_PASS_MAXCHAN   24

Functions

void * IMB_exr_get_handle ()
void * IMB_exr_get_handle_name (const char *name)
void IMB_exr_add_channel (void *handle, const char *layname, const char *passname, const char *viewname, int xstride, int ystride, float *rect, bool use_half_float)
bool IMB_exr_begin_read (void *handle, const char *filepath, int *width, int *height, bool parse_channels)
bool IMB_exr_begin_write (void *handle, const char *filepath, int width, int height, const double ppm[2], int compress, int quality, const StampData *stamp)
bool IMB_exr_set_channel (void *handle, const char *layname, const char *passname, int xstride, int ystride, float *rect)
void IMB_exr_read_channels (void *handle)
void IMB_exr_write_channels (void *handle)
void IMB_exr_multilayer_convert (void *handle, void *base, void *(*addview)(void *base, const char *str), void *(*addlayer)(void *base, const char *str), void(*addpass)(void *base, void *lay, const char *str, float *rect, int totchan, const char *chan_id, const char *view))
void IMB_exr_close (void *handle)
void IMB_exr_add_view (void *handle, const char *name)
bool IMB_exr_has_multilayer (void *handle)
bool IMB_exr_get_ppm (void *handle, double ppm[2])

Macro Definition Documentation

◆ EXR_LAY_MAXNAME

#define EXR_LAY_MAXNAME   64

Definition at line 15 of file IMB_openexr.hh.

Referenced by imb_exr_get_layer(), IMB_exr_set_channel(), and ml_addlayer_cb().

◆ EXR_PASS_MAXCHAN

#define EXR_PASS_MAXCHAN   24

Definition at line 19 of file IMB_openexr.hh.

Referenced by imb_exr_multilayer_parse_channels_from_file().

◆ EXR_PASS_MAXNAME

◆ EXR_TOT_MAXNAME

◆ EXR_VIEW_MAXNAME

#define EXR_VIEW_MAXNAME   64

Definition at line 17 of file IMB_openexr.hh.

Function Documentation

◆ IMB_exr_add_channel()

void IMB_exr_add_channel ( void * handle,
const char * layname,
const char * passname,
const char * viewname,
int xstride,
int ystride,
float * rect,
bool use_half_float )

◆ IMB_exr_add_view()

void IMB_exr_add_view ( void * handle,
const char * name )

Definition at line 831 of file openexr_api.cpp.

References data.

Referenced by BKE_image_render_write_exr().

◆ IMB_exr_begin_read()

bool IMB_exr_begin_read ( void * handle,
const char * filepath,
int * width,
int * height,
bool parse_channels )

◆ IMB_exr_begin_write()

bool IMB_exr_begin_write ( void * handle,
const char * filepath,
int width,
int height,
const double ppm[2],
int compress,
int quality,
const StampData * stamp )

Used for output files (from RenderResult) (single and multi-layer, single and multi-view).

Definition at line 962 of file openexr_api.cpp.

References BKE_stamp_info_callback(), data, imb_exr_type_by_channels(), LISTBASE_FOREACH, openexr_header_compression(), openexr_header_metadata_callback(), and blender::math::safe_divide().

Referenced by BKE_image_render_write_exr().

◆ IMB_exr_close()

◆ IMB_exr_get_handle()

◆ IMB_exr_get_handle_name()

void * IMB_exr_get_handle_name ( const char * name)

Definition at line 818 of file openexr_api.cpp.

References BLI_rfindstring(), data, exrhandles, IMB_exr_get_handle(), offsetof, and STRNCPY().

◆ IMB_exr_get_ppm()

bool IMB_exr_get_ppm ( void * handle,
double ppm[2] )

Definition at line 2067 of file openexr_api.cpp.

References data, and exr_get_ppm().

Referenced by render_result_new_from_exr().

◆ IMB_exr_has_multilayer()

bool IMB_exr_has_multilayer ( void * handle)

Definition at line 2002 of file openexr_api.cpp.

References data, and imb_exr_is_multi().

Referenced by load_image_single().

◆ IMB_exr_multilayer_convert()

void IMB_exr_multilayer_convert ( void * handle,
void * base,
void *(* addview )(void *base, const char *str),
void *(* addlayer )(void *base, const char *str),
void(* addpass )(void *base, void *lay, const char *str, float *rect, int totchan, const char *chan_id, const char *view) )

◆ IMB_exr_read_channels()

void IMB_exr_read_channels ( void * handle)

◆ IMB_exr_set_channel()

bool IMB_exr_set_channel ( void * handle,
const char * layname,
const char * passname,
int xstride,
int ystride,
float * rect )

Still clumsy name handling, layers/channels can be ordered as list in list later.

Parameters
passnameHere is the raw channel name without the layer.

Definition at line 1092 of file openexr_api.cpp.

References BLI_findstring(), BLI_strncpy(), data, EXR_LAY_MAXNAME, EXR_PASS_MAXNAME, EXR_TOT_MAXNAME, offsetof, ExrChannel::rect, SNPRINTF, ExrChannel::xstride, and ExrChannel::ystride.

Referenced by render_result_exr_file_read_path().

◆ IMB_exr_write_channels()

void IMB_exr_write_channels ( void * handle)