Blender V4.3
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, int compress, const StampData *stamp)
 
void IMB_exrtile_begin_write (void *handle, const char *filepath, int mipmap, int width, int height, int tilex, int tiley)
 
bool IMB_exr_set_channel (void *handle, const char *layname, const char *passname, int xstride, int ystride, float *rect)
 
floatIMB_exr_channel_rect (void *handle, const char *layname, const char *passname, const char *viewname)
 
void IMB_exr_read_channels (void *handle)
 
void IMB_exr_write_channels (void *handle)
 
void IMB_exrtile_write_channels (void *handle, int partx, int party, int level, const char *viewname, bool empty)
 
void IMB_exr_clear_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)
 

Macro Definition Documentation

◆ EXR_LAY_MAXNAME

#define EXR_LAY_MAXNAME   64

◆ 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 742 of file openexr_api.cpp.

References ExrHandle::multiView.

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,
int compress,
const StampData * stamp )

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

Definition at line 873 of file openexr_api.cpp.

References BKE_stamp_info_callback(), imb_exr_type_by_channels(), LISTBASE_FOREACH, openexr_header_compression(), and openexr_header_metadata_callback().

Referenced by BKE_image_render_write_exr().

◆ IMB_exr_channel_rect()

float * IMB_exr_channel_rect ( void * handle,
const char * layname,
const char * passname,
const char * viewname )

◆ IMB_exr_clear_channels()

void IMB_exr_clear_channels ( void * handle)

Definition at line 1131 of file openexr_api.cpp.

References BLI_freelistN(), and LISTBASE_FOREACH.

◆ IMB_exr_close()

◆ IMB_exr_get_handle()

◆ IMB_exr_get_handle_name()

void * IMB_exr_get_handle_name ( const char * name)

Definition at line 729 of file openexr_api.cpp.

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

◆ IMB_exr_has_multilayer()

bool IMB_exr_has_multilayer ( void * handle)

Definition at line 2064 of file openexr_api.cpp.

References 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 1060 of file openexr_api.cpp.

References BLI_findstring(), BLI_strncpy(), 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)

◆ IMB_exrtile_begin_write()

void IMB_exrtile_begin_write ( void * handle,
const char * filepath,
int mipmap,
int width,
int height,
int tilex,
int tiley )

Only used for writing temp. render results (not image files) (FSA and Save Buffers).

Definition at line 936 of file openexr_api.cpp.

References BLI_assert, exr_printf(), and LISTBASE_FOREACH.

◆ IMB_exrtile_write_channels()

void IMB_exrtile_write_channels ( void * handle,
int partx,
int party,
int level,
const char * viewname,
bool empty )

Temporary function, used for FSA and Save Buffers. called once per tile * view.

Definition at line 1202 of file openexr_api.cpp.

References exr_printf(), imb_exr_get_multiView_id(), LISTBASE_FOREACH, STREQ, and view.