Blender V4.3
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
9#pragma once
10
11#define PASS_VECTOR_MAX 10000.0f
12
13#define RR_ALL_LAYERS NULL
14#define RR_ALL_VIEWS NULL
15
18struct ImBuf;
19struct ListBase;
20struct Render;
21struct RenderData;
22struct RenderLayer;
23struct RenderResult;
24struct ReportList;
25struct rcti;
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31/* New */
32
40 const struct rcti *partrct,
41 const char *layername,
42 const char *viewname);
43
45
51 void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty);
52
53void render_result_view_new(struct RenderResult *rr, const char *viewname);
54void render_result_views_new(struct RenderResult *rr, const struct RenderData *rd);
55
56/* Merge */
57
63void render_result_merge(struct RenderResult *rr, struct RenderResult *rrpart);
64
65/* Add Passes */
66
67void render_result_clone_passes(struct Render *re, struct RenderResult *rr, const char *viewname);
68
69/* Free */
70
71void render_result_free(struct RenderResult *rr);
75void render_result_free_list(struct ListBase *lb, struct RenderResult *rr);
76
77/* Single Layer Render */
78
84
89 struct RenderLayer *rl,
90 int channels,
91 const char *name,
92 const char *viewname,
93 const char *chan_id,
94 bool allocate);
95
100 struct RenderLayer *rl_single,
101 struct ReportList *reports,
102 const char *filepath);
103
104/* EXR cache */
105
111
112/* Combined Pixel Rect */
113
115 const struct RenderData *rd,
116 int view_id);
117
118void render_result_rect_fill_zero(struct RenderResult *rr, int view_id);
120 unsigned int *rect,
121 int rectx,
122 int recty,
123 const struct ColorManagedViewSettings *view_settings,
124 const struct ColorManagedDisplaySettings *display_settings,
125 int view_id);
126
130void render_result_views_shallowcopy(struct RenderResult *dst, struct RenderResult *src);
135
140
141#define FOREACH_VIEW_LAYER_TO_RENDER_BEGIN(re_, iter_) \
142 { \
143 int nr_; \
144 ViewLayer *iter_; \
145 for (nr_ = 0, iter_ = static_cast<ViewLayer *>((re_)->scene->view_layers.first); \
146 iter_ != NULL; \
147 iter_ = iter_->next, nr_++) \
148 { \
149 if (!G.background && (re_)->r.scemode & R_SINGLE_LAYER) { \
150 if (!STREQ(iter_->name, re->single_view_layer)) { \
151 continue; \
152 } \
153 } \
154 else { \
155 if ((iter_->flag & VIEW_LAYER_RENDER) == 0) { \
156 continue; \
157 } \
158 }
159
160#define FOREACH_VIEW_LAYER_TO_RENDER_END \
161 } \
162 } \
163 ((void)0)
164
165#ifdef __cplusplus
166}
167#endif
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(void *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[8]
Definition RE_pipeline.h:59