Blender V4.3
render_result.h File Reference

Go to the source code of this file.

Macros

#define PASS_VECTOR_MAX   10000.0f
 
#define RR_ALL_LAYERS   NULL
 
#define RR_ALL_VIEWS   NULL
 
#define FOREACH_VIEW_LAYER_TO_RENDER_BEGIN(re_, iter_)
 
#define FOREACH_VIEW_LAYER_TO_RENDER_END
 

Functions

struct RenderResultrender_result_new (struct Render *re, const struct rcti *partrct, const char *layername, const char *viewname)
 
void render_result_passes_allocated_ensure (struct RenderResult *rr)
 
struct RenderResultrender_result_new_from_exr (void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty)
 
void render_result_view_new (struct RenderResult *rr, const char *viewname)
 
void render_result_views_new (struct RenderResult *rr, const struct RenderData *rd)
 
void render_result_merge (struct RenderResult *rr, struct RenderResult *rrpart)
 
void render_result_clone_passes (struct Render *re, struct RenderResult *rr, const char *viewname)
 
void render_result_free (struct RenderResult *rr)
 
void render_result_free_list (struct ListBase *lb, struct RenderResult *rr)
 
void render_result_single_layer_begin (struct Render *re)
 
void render_result_single_layer_end (struct Render *re)
 
struct RenderPassrender_layer_add_pass (struct RenderResult *rr, struct RenderLayer *rl, int channels, const char *name, const char *viewname, const char *chan_id, bool allocate)
 
bool render_result_exr_file_read_path (struct RenderResult *rr, struct RenderLayer *rl_single, struct ReportList *reports, const char *filepath)
 
void render_result_exr_file_cache_write (struct Render *re)
 
bool render_result_exr_file_cache_read (struct Render *re)
 
struct ImBufrender_result_rect_to_ibuf (struct RenderResult *rr, const struct RenderData *rd, int view_id)
 
void render_result_rect_fill_zero (struct RenderResult *rr, int view_id)
 
void render_result_rect_get_pixels (struct RenderResult *rr, unsigned int *rect, int rectx, int recty, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings, int view_id)
 
void render_result_views_shallowcopy (struct RenderResult *dst, struct RenderResult *src)
 
void render_result_views_shallowdelete (struct RenderResult *rr)
 
void render_result_free_gpu_texture_caches (struct RenderResult *rr)
 

Macro Definition Documentation

◆ FOREACH_VIEW_LAYER_TO_RENDER_BEGIN

#define FOREACH_VIEW_LAYER_TO_RENDER_BEGIN ( re_,
iter_ )
Value:
{ \
int nr_; \
ViewLayer *iter_; \
for (nr_ = 0, iter_ = static_cast<ViewLayer *>((re_)->scene->view_layers.first); \
iter_ != NULL; \
iter_ = iter_->next, nr_++) \
{ \
if (!G.background && (re_)->r.scemode & R_SINGLE_LAYER) { \
if (!STREQ(iter_->name, re->single_view_layer)) { \
continue; \
} \
} \
else { \
if ((iter_->flag & VIEW_LAYER_RENDER) == 0) { \
continue; \
} \
}
#define STREQ(a, b)
@ VIEW_LAYER_RENDER
@ R_SINGLE_LAYER
#define NULL
#define G(x, y, z)
struct ViewLayer * next
char name[64]

Definition at line 141 of file render_result.h.

Referenced by engine_render_create_result(), RE_engine_render(), and render_result_new().

◆ FOREACH_VIEW_LAYER_TO_RENDER_END

#define FOREACH_VIEW_LAYER_TO_RENDER_END
Value:
} \
} \
((void)0)

Definition at line 160 of file render_result.h.

Referenced by engine_render_create_result(), RE_engine_render(), and render_result_new().

◆ PASS_VECTOR_MAX

#define PASS_VECTOR_MAX   10000.0f

Definition at line 11 of file render_result.h.

Referenced by render_layer_allocate_pass().

◆ RR_ALL_LAYERS

#define RR_ALL_LAYERS   NULL

◆ RR_ALL_VIEWS

Function Documentation

◆ render_layer_add_pass()

◆ render_result_clone_passes()

void render_result_clone_passes ( struct Render * re,
struct RenderResult * rr,
const char * viewname )

◆ render_result_exr_file_cache_read()

◆ render_result_exr_file_cache_write()

◆ render_result_exr_file_read_path()

bool render_result_exr_file_read_path ( struct RenderResult * rr,
struct RenderLayer * rl_single,
struct ReportList * reports,
const char * filepath )

◆ render_result_free()

◆ render_result_free_gpu_texture_caches()

void render_result_free_gpu_texture_caches ( struct RenderResult * rr)

Free GPU texture caches to reduce memory usage.

Definition at line 122 of file render_result.cc.

References IMB_free_gpu_textures(), RenderResult::layers, and LISTBASE_FOREACH.

Referenced by re_gpu_texture_caches_free().

◆ render_result_free_list()

void render_result_free_list ( struct ListBase * lb,
struct RenderResult * rr )

Version that's compatible with full-sample buffers.

Definition at line 107 of file render_result.cc.

References BLI_remlink(), ListBase::first, RenderResult::next, and render_result_free().

Referenced by RE_engine_render().

◆ render_result_merge()

void render_result_merge ( struct RenderResult * rr,
struct RenderResult * rrpart )

Used when rendering to a full buffer, or when reading the EXR part-layer-pass file. no test happens here if it fits... we also assume layers are in sync.

Note
Is used within threads.

Definition at line 805 of file render_result.cc.

References ImBufFloatBuffer::data, do_merge_tile(), ListBase::first, ImBuf::float_buffer, RenderResult::ibuf, RenderResult::layers, LISTBASE_FOREACH, RenderLayer::passes, RE_GetRenderLayer(), and STREQ.

Referenced by RE_engine_end_result(), RE_engine_update_result(), and render_result_uncrop().

◆ render_result_new()

struct RenderResult * render_result_new ( struct Render * re,
const struct rcti * partrct,
const char * layername,
const char * viewname )

Called by main render as well for parts will read info from Render *re to define layers.

Note
Called in threads.

re->winx, re->winy is coordinate space of entire image, partrct the part within.

◆ render_result_new_from_exr()

struct RenderResult * render_result_new_from_exr ( void * exrhandle,
const char * colorspace,
bool predivide,
int rectx,
int recty )

◆ render_result_passes_allocated_ensure()

◆ render_result_rect_fill_zero()

◆ render_result_rect_get_pixels()

void render_result_rect_get_pixels ( struct RenderResult * rr,
unsigned int * rect,
int rectx,
int recty,
const struct ColorManagedViewSettings * view_settings,
const struct ColorManagedDisplaySettings * display_settings,
int view_id )

◆ render_result_rect_to_ibuf()

struct ImBuf * render_result_rect_to_ibuf ( struct RenderResult * rr,
const struct RenderData * rd,
int view_id )

◆ render_result_single_layer_begin()

void render_result_single_layer_begin ( struct Render * re)

Definition at line 850 of file render_result.cc.

References Render::pushedresult, RE_FreeRenderResult(), and BaseRender::result.

Referenced by render_init_from_main().

◆ render_result_single_layer_end()

◆ render_result_view_new()

void render_result_view_new ( struct RenderResult * rr,
const char * viewname )

Definition at line 748 of file render_result.cc.

References BLI_addtail(), RenderView::name, STRNCPY, and RenderResult::views.

Referenced by RE_InitState(), and render_result_views_new().

◆ render_result_views_new()

void render_result_views_new ( struct RenderResult * rr,
const struct RenderData * rd )

◆ render_result_views_shallowcopy()

void render_result_views_shallowcopy ( struct RenderResult * dst,
struct RenderResult * src )

Create a new views ListBase in rr without duplicating the memory pointers.

Definition at line 137 of file render_result.cc.

References BLI_addtail(), RenderView::ibuf, LISTBASE_FOREACH, RenderView::name, STRNCPY, and RenderResult::views.

Referenced by RE_AcquireResultImageViews().

◆ render_result_views_shallowdelete()

void render_result_views_shallowdelete ( struct RenderResult * rr)

Free the views created temporarily.

Definition at line 155 of file render_result.cc.

References BLI_remlink(), ListBase::first, MEM_freeN(), and RenderResult::views.

Referenced by RE_ReleaseResultImageViews().