Blender V4.3
COM_RenderLayersProg.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
7#include "BLI_listbase.h"
8#include "BLI_utildefines.h"
10#include "DNA_scene_types.h"
11#include "MEM_guardedalloc.h"
12
13#include "RE_pipeline.h"
14
15namespace blender::compositor {
16
23 protected:
28
32 short layer_id_;
33
37 const char *view_name_;
38
40
46
50 std::string pass_name_;
51
53
58
62 void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
63
67 inline float *get_input_buffer()
68 {
69 return input_buffer_;
70 }
71
72 public:
76 RenderLayersProg(const char *pass_name, DataType type, int elementsize);
82 void set_scene(Scene *scene)
83 {
84 scene_ = scene;
85 }
87 {
88 return scene_;
89 }
91 {
92 rd_ = rd;
93 }
94 void set_layer_id(short layer_id)
95 {
96 layer_id_ = layer_id;
97 }
98 short get_layer_id() const
99 {
100 return layer_id_;
101 }
102 void set_view_name(const char *view_name)
103 {
104 view_name_ = view_name;
105 }
106 const char *get_view_name()
107 {
108 return view_name_;
109 }
110 void init_execution() override;
111 void deinit_execution() override;
112
113 std::unique_ptr<MetaData> get_meta_data() override;
114
115 virtual void update_memory_buffer_partial(MemoryBuffer *output,
116 const rcti &area,
117 Span<MemoryBuffer *> inputs) override;
118};
119
121 public:
122 RenderLayersAOOperation(const char *pass_name, DataType type, int elementsize)
123 : RenderLayersProg(pass_name, type, elementsize)
124 {
125 }
126
128 const rcti &area,
129 Span<MemoryBuffer *> inputs) override;
130};
131
133 public:
134 RenderLayersAlphaProg(const char *pass_name, DataType type, int elementsize)
135 : RenderLayersProg(pass_name, type, elementsize)
136 {
137 }
138
140 const rcti &area,
141 Span<MemoryBuffer *> inputs) override;
142};
143
145 public:
146 RenderLayersDepthProg(const char *pass_name, DataType type, int elementsize)
147 : RenderLayersProg(pass_name, type, elementsize)
148 {
149 }
150
152 const rcti &area,
153 Span<MemoryBuffer *> inputs) override;
154};
155
156} // namespace blender::compositor
Read Guarded memory(de)allocation.
a MemoryBuffer contains access to the data
RenderLayersAOOperation(const char *pass_name, DataType type, int elementsize)
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
RenderLayersAlphaProg(const char *pass_name, DataType type, int elementsize)
RenderLayersDepthProg(const char *pass_name, DataType type, int elementsize)
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
RenderLayersProg(const char *pass_name, DataType type, int elementsize)
std::unique_ptr< MetaData > get_meta_data() override
const RenderData * rd_
render data used for active rendering
void set_view_name(const char *view_name)
virtual void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
void set_render_data(const RenderData *rd)
DataType
possible data types for sockets
Definition COM_defines.h:21