Blender  V3.3
Macros | Functions
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, 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)
 
int render_result_exr_file_read_path (struct RenderResult *rr, struct RenderLayer *rl_single, 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)
 

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_ = (re_)->view_layers.first; iter_ != NULL; iter_ = iter_->next, nr_++) { \
if (!G.background && (re_)->r.scemode & R_SINGLE_LAYER) { \
if (nr_ != re->active_view_layer) { \
continue; \
} \
} \
else { \
if ((iter_->flag & VIEW_LAYER_RENDER) == 0) { \
continue; \
} \
}
@ VIEW_LAYER_RENDER
#define R_SINGLE_LAYER
#define G(x, y, z)

Definition at line 135 of file render_result.h.

◆ FOREACH_VIEW_LAYER_TO_RENDER_END

#define FOREACH_VIEW_LAYER_TO_RENDER_END
Value:
} \
} \
((void)0)
SyclQueue void void size_t num_bytes void

Definition at line 151 of file render_result.h.

◆ PASS_VECTOR_MAX

#define PASS_VECTOR_MAX   10000.0f

Definition at line 10 of file render_result.h.

◆ RR_ALL_LAYERS

#define RR_ALL_LAYERS   NULL

Definition at line 12 of file render_result.h.

◆ RR_ALL_VIEWS

#define RR_ALL_VIEWS   NULL

Definition at line 13 of file render_result.h.

Function Documentation

◆ render_layer_add_pass()

struct RenderPass* render_layer_add_pass ( struct RenderResult rr,
struct RenderLayer rl,
int  channels,
const char *  name,
const char *  viewname,
const char *  chan_id,
bool  allocate 
)

◆ render_result_clone_passes()

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

◆ render_result_exr_file_cache_read()

bool render_result_exr_file_cache_read ( struct Render re)

◆ render_result_exr_file_cache_write()

void render_result_exr_file_cache_write ( struct Render re)

◆ render_result_exr_file_read_path()

int render_result_exr_file_read_path ( struct RenderResult rr,
struct RenderLayer rl_single,
const char *  filepath 
)

◆ render_result_free()

void render_result_free ( struct RenderResult rr)

◆ 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 114 of file render_result.c.

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 813 of file render_result.c.

References RenderPass::channels, do_merge_tile(), ListBase::first, RenderPass::fullname, RenderResult::layers, RenderLayer::name, RenderPass::next, RenderLayer::next, NULL, RenderLayer::passes, RE_GetRenderLayer(), RenderPass::rect, 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,
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.

Definition at line 235 of file render_result.c.

References Render::active_view_layer, BLI_addtail(), BLI_listbase_is_empty(), BLI_rcti_cent_x(), BLI_rcti_cent_y(), BLI_rcti_size_x(), BLI_rcti_size_y(), BLI_strncpy(), Render::disprect, ListBase::first, FOREACH_VIEW_LAYER_TO_RENDER_BEGIN, FOREACH_VIEW_LAYER_TO_RENDER_END, RenderResult::layers, RenderLayer::layflag, MEM_callocN, RenderView::name, RenderLayer::name, RenderView::next, NULL, RenderResult::passes_allocated, RenderLayer::passflag, Render::r, R_BUTS_PREVIEW, RE_PASSNAME_AO, RE_PASSNAME_COMBINED, RE_PASSNAME_DIFFUSE_COLOR, RE_PASSNAME_DIFFUSE_DIRECT, RE_PASSNAME_DIFFUSE_INDIRECT, RE_PASSNAME_EMIT, RE_PASSNAME_ENVIRONMENT, RE_PASSNAME_GLOSSY_COLOR, RE_PASSNAME_GLOSSY_DIRECT, RE_PASSNAME_GLOSSY_INDIRECT, RE_PASSNAME_INDEXMA, RE_PASSNAME_INDEXOB, RE_PASSNAME_MIST, RE_PASSNAME_NORMAL, RE_PASSNAME_POSITION, RE_PASSNAME_SHADOW, RE_PASSNAME_SUBSURFACE_COLOR, RE_PASSNAME_SUBSURFACE_DIRECT, RE_PASSNAME_SUBSURFACE_INDIRECT, RE_PASSNAME_TRANSM_COLOR, RE_PASSNAME_TRANSM_DIRECT, RE_PASSNAME_TRANSM_INDIRECT, RE_PASSNAME_UV, RE_PASSNAME_VECTOR, RE_PASSNAME_Z, RenderLayer::rectx, RenderResult::rectx, RenderLayer::recty, RenderResult::recty, render_layer_add_pass(), RENDER_LAYER_ADD_PASS_SAFE, render_result_passes_allocated_ensure(), render_result_views_new(), RenderResult::renrect, SCE_LAY_FLAG_DEFAULT, SCE_PASS_AO, SCE_PASS_COMBINED, SCE_PASS_DIFFUSE_COLOR, SCE_PASS_DIFFUSE_DIRECT, SCE_PASS_DIFFUSE_INDIRECT, SCE_PASS_EMIT, SCE_PASS_ENVIRONMENT, SCE_PASS_GLOSSY_COLOR, SCE_PASS_GLOSSY_DIRECT, SCE_PASS_GLOSSY_INDIRECT, SCE_PASS_INDEXMA, SCE_PASS_INDEXOB, SCE_PASS_MIST, SCE_PASS_NORMAL, SCE_PASS_POSITION, SCE_PASS_SHADOW, SCE_PASS_SUBSURFACE_COLOR, SCE_PASS_SUBSURFACE_DIRECT, SCE_PASS_SUBSURFACE_INDIRECT, SCE_PASS_TRANSM_COLOR, SCE_PASS_TRANSM_DIRECT, SCE_PASS_TRANSM_INDIRECT, SCE_PASS_UV, SCE_PASS_VECTOR, SCE_PASS_Z, RenderData::scemode, STREQ, RenderResult::tilerect, view, RenderResult::views, Render::winx, Render::winy, rcti::xmax, rcti::xmin, RenderResult::xof, rcti::ymax, rcti::ymin, and RenderResult::yof.

Referenced by do_render_compositor(), RE_engine_begin_result(), RE_engine_render(), and render_result_uncrop().

◆ 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()

void render_result_passes_allocated_ensure ( struct RenderResult rr)

◆ render_result_rect_fill_zero()

void render_result_rect_fill_zero ( struct RenderResult rr,
int  view_id 
)

◆ 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 844 of file render_result.c.

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

Referenced by render_init_from_main().

◆ render_result_single_layer_end()

void render_result_single_layer_end ( struct Render re)

◆ render_result_view_new()

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

◆ 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 131 of file render_result.c.

References BLI_addtail(), BLI_strncpy(), MEM_mallocN, RenderView::name, RenderView::next, NULL, RenderView::rect32, RenderView::rectf, RenderView::rectz, src, 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 152 of file render_result.c.

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

Referenced by RE_ReleaseResultImageViews().