Blender V4.5
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 ImBuf;
21struct ListBase;
22struct Render;
23struct RenderData;
24struct RenderLayer;
25struct RenderResult;
26struct ReportList;
27struct rcti;
28
29/* New */
30
38 const struct rcti *partrct,
39 const char *layername,
40 const char *viewname);
41
43
49 void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty);
50
51void render_result_view_new(struct RenderResult *rr, const char *viewname);
52void render_result_views_new(struct RenderResult *rr, const struct RenderData *rd);
53
54/* Merge */
55
61void render_result_merge(struct RenderResult *rr, struct RenderResult *rrpart);
62
63/* Add Passes */
64
65void render_result_clone_passes(struct Render *re, struct RenderResult *rr, const char *viewname);
66
67/* Free */
68
69void render_result_free(struct RenderResult *rr);
73void render_result_free_list(struct ListBase *lb, struct RenderResult *rr);
74
75/* Single Layer Render */
76
82
87 struct RenderLayer *rl,
88 int channels,
89 const char *name,
90 const char *viewname,
91 const char *chan_id,
92 bool allocate);
93
98 struct RenderLayer *rl_single,
99 struct ReportList *reports,
100 const char *filepath);
101
102/* EXR cache */
103
109
110/* Combined Pixel Rect */
111
113 const struct RenderData *rd,
114 int view_id);
115
116void render_result_rect_fill_zero(struct RenderResult *rr, int view_id);
118 unsigned int *rect,
119 int rectx,
120 int recty,
121 const struct ColorManagedViewSettings *view_settings,
122 const struct ColorManagedDisplaySettings *display_settings,
123 int view_id);
124
128void render_result_views_shallowcopy(struct RenderResult *dst, struct RenderResult *src);
133
138
139#define FOREACH_VIEW_LAYER_TO_RENDER_BEGIN(re_, iter_) \
140 { \
141 int nr_; \
142 ViewLayer *iter_; \
143 for (nr_ = 0, iter_ = static_cast<ViewLayer *>((re_)->scene->view_layers.first); \
144 iter_ != NULL; \
145 iter_ = iter_->next, nr_++) \
146 { \
147 if (!G.background && (re_)->r.scemode & R_SINGLE_LAYER) { \
148 if (!STREQ(iter_->name, re->single_view_layer)) { \
149 continue; \
150 } \
151 } \
152 else { \
153 if ((iter_->flag & VIEW_LAYER_RENDER) == 0) { \
154 continue; \
155 } \
156 }
157
158#define FOREACH_VIEW_LAYER_TO_RENDER_END \
159 } \
160 } \
161 ((void)0)
ReportList * reports
Definition WM_types.hh:1025
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:51
char name[64]
Definition RE_pipeline.h:50