Blender V5.0
render_result.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2007 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "BKE_global.hh" /* IWYU pragma: keep. Used in macro. */
12
13#define PASS_VECTOR_MAX 10000.0f
14
15#define RR_ALL_LAYERS NULL
16#define RR_ALL_VIEWS NULL
17
20struct ExrHandle;
21struct ImBuf;
22struct ListBase;
23struct Render;
24struct RenderData;
25struct RenderLayer;
26struct RenderResult;
27struct ReportList;
28struct rcti;
29
30/* New */
31
39 const struct rcti *partrct,
40 const char *layername,
41 const char *viewname);
42
44
50 ExrHandle *exrhandle, const char *colorspace, bool predivide, int rectx, int recty);
51
52void render_result_view_new(struct RenderResult *rr, const char *viewname);
53void render_result_views_new(struct RenderResult *rr, const struct RenderData *rd);
54
55/* Merge */
56
62void render_result_merge(struct RenderResult *rr, struct RenderResult *rrpart);
63
64/* Add Passes */
65
66void render_result_clone_passes(struct Render *re, struct RenderResult *rr, const char *viewname);
67
68/* Free */
69
70void render_result_free(struct RenderResult *rr);
74void render_result_free_list(struct ListBase *lb, struct RenderResult *rr);
75
76/* Single Layer Render */
77
83
88 struct RenderLayer *rl,
89 int channels,
90 const char *name,
91 const char *viewname,
92 const char *chan_id,
93 bool allocate);
94
99 struct RenderLayer *rl_single,
100 struct ReportList *reports,
101 const char *filepath);
102
103/* EXR cache */
104
110
111/* Combined Pixel Rect */
112
114 const struct RenderData *rd,
115 int view_id);
116
117void render_result_rect_fill_zero(struct RenderResult *rr, int view_id);
119 unsigned int *rect,
120 int rectx,
121 int recty,
122 const struct ColorManagedViewSettings *view_settings,
123 const struct ColorManagedDisplaySettings *display_settings,
124 int view_id);
125
129void render_result_views_shallowcopy(struct RenderResult *dst, struct RenderResult *src);
134
139
140#define FOREACH_VIEW_LAYER_TO_RENDER_BEGIN(re_, iter_) \
141 { \
142 int nr_; \
143 ViewLayer *iter_; \
144 for (nr_ = 0, iter_ = static_cast<ViewLayer *>((re_)->scene->view_layers.first); \
145 iter_ != NULL; \
146 iter_ = iter_->next, nr_++) \
147 { \
148 if (!G.background && (re_)->r.scemode & R_SINGLE_LAYER) { \
149 if (!STREQ(iter_->name, re->single_view_layer)) { \
150 continue; \
151 } \
152 } \
153 else { \
154 if ((iter_->flag & VIEW_LAYER_RENDER) == 0) { \
155 continue; \
156 } \
157 }
158
159#define FOREACH_VIEW_LAYER_TO_RENDER_END \
160 } \
161 } \
162 ((void)0)
const char * name
bool render_result_exr_file_read_path(struct RenderResult *rr, struct RenderLayer *rl_single, struct ReportList *reports, const char *filepath)
void render_result_free_list(struct ListBase *lb, struct RenderResult *rr)
void render_result_exr_file_cache_write(struct Render *re)
void render_result_passes_allocated_ensure(struct RenderResult *rr)
struct RenderResult * render_result_new_from_exr(ExrHandle *exrhandle, const char *colorspace, bool predivide, int rectx, int recty)
struct RenderResult * render_result_new(struct Render *re, const struct rcti *partrct, const char *layername, const char *viewname)
void render_result_free(struct RenderResult *rr)
void render_result_views_shallowcopy(struct RenderResult *dst, struct RenderResult *src)
void render_result_views_new(struct RenderResult *rr, const struct RenderData *rd)
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)
void render_result_merge(struct RenderResult *rr, struct RenderResult *rrpart)
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_free_gpu_texture_caches(struct RenderResult *rr)
void render_result_views_shallowdelete(struct RenderResult *rr)
void render_result_rect_fill_zero(struct RenderResult *rr, int view_id)
void render_result_single_layer_end(struct Render *re)
void render_result_clone_passes(struct Render *re, struct RenderResult *rr, const char *viewname)
void render_result_single_layer_begin(struct Render *re)
void render_result_view_new(struct RenderResult *rr, const char *viewname)
bool render_result_exr_file_cache_read(struct Render *re)
struct ImBuf * render_result_rect_to_ibuf(struct RenderResult *rr, const struct RenderData *rd, int view_id)
char chan_id[24]
Definition RE_pipeline.h:56