Blender V4.5
openexr_stub.cpp File Reference
#include "IMB_openexr.hh"

Go to the source code of this file.

Functions

void * IMB_exr_get_handle ()
void * IMB_exr_get_handle_name (const char *)
void IMB_exr_add_channel (void *, const char *, const char *, const char *, int, int, float *, bool)
bool IMB_exr_begin_read (void *, const char *, int *, int *, const bool)
bool IMB_exr_begin_write (void *, const char *, int, int, const double[2], int, int, const StampData *)
bool IMB_exr_set_channel (void *, const char *, const char *, int, int, float *)
void IMB_exr_read_channels (void *)
void IMB_exr_write_channels (void *)
void IMB_exr_multilayer_convert (void *, void *, void *(*)(void *base, const char *str), void *(*)(void *base, const char *str), void(*)(void *base, void *lay, const char *str, float *rect, int totchan, const char *chan_id, const char *view))
void IMB_exr_close (void *)
void IMB_exr_add_view (void *, const char *)
bool IMB_exr_has_multilayer (void *)
bool IMB_exr_get_ppm (void *, double[2])

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 )

Adds flattened ExrChannel's xstride, ystride and rect can be done in set_channel too, for tile writing.

Parameters
passnameDoes not include view.

Definition at line 19 of file openexr_stub.cpp.

References BLI_addtail(), data, exr_printf(), imb_exr_get_multiView_id(), imb_exr_insert_view_name(), ExrChannel::m, MEM_callocN(), ExrChannel::name, ExrChannel::rect, STRNCPY(), ExrChannel::use_half_float, ExrChannel::view_id, ExrChannel::xstride, and ExrChannel::ystride.

Referenced by add_exr_compositing_result(), BKE_image_render_write_exr(), and render_layer_add_pass().

◆ IMB_exr_add_view()

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

Definition at line 79 of file openexr_stub.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 38 of file openexr_stub.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()

void * IMB_exr_get_handle ( )

◆ IMB_exr_get_handle_name()

void * IMB_exr_get_handle_name ( const char * name)

Definition at line 15 of file openexr_stub.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 85 of file openexr_stub.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 80 of file openexr_stub.cpp.

References data, and imb_exr_is_multi().

Referenced by load_image_single().

◆ IMB_exr_multilayer_convert()

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

Definition at line 63 of file openexr_stub.cpp.

References str, and 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 50 of file openexr_stub.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)