Blender V4.3
COM_MixOperation.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
8
9namespace blender::compositor {
10
16 protected:
17 struct PixelCursor {
18 float *out;
19 const float *row_end;
20 const float *value;
21 const float *color1;
22 const float *color2;
27
28 void next()
29 {
30 BLI_assert(out < row_end);
31 out += out_stride;
32 value += value_stride;
35 }
36 };
37
40
41 inline void clamp_if_needed(float color[4])
42 {
43 if (use_clamp_) {
44 clamp_v4(color, 0.0f, 1.0f);
45 }
46 }
47
48 public:
50
51 void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
52
53 void set_use_value_alpha_multiply(const bool value)
54 {
56 }
58 {
60 }
61 void set_use_clamp(bool value)
62 {
63 use_clamp_ = value;
64 }
65
67 const rcti &area,
68 Span<MemoryBuffer *> inputs) final;
69
70 protected:
72};
73
75 protected:
76 void update_memory_buffer_row(PixelCursor &p) override;
77};
78
80 protected:
81 void update_memory_buffer_row(PixelCursor &p) override;
82};
83
85 protected:
86 void update_memory_buffer_row(PixelCursor &p) override;
87};
88
90 protected:
91 void update_memory_buffer_row(PixelCursor &p) override;
92};
93
95 protected:
96 void update_memory_buffer_row(PixelCursor &p) override;
97};
98
100 protected:
101 void update_memory_buffer_row(PixelCursor &p) override;
102};
103
105 protected:
106 void update_memory_buffer_row(PixelCursor &p) override;
107};
108
110 protected:
111 void update_memory_buffer_row(PixelCursor &p) override;
112};
113
115 protected:
116 void update_memory_buffer_row(PixelCursor &p) override;
117};
118
120 protected:
121 void update_memory_buffer_row(PixelCursor &p) override;
122};
123
125 protected:
126 void update_memory_buffer_row(PixelCursor &p) override;
127};
128
130 protected:
131 void update_memory_buffer_row(PixelCursor &p) override;
132};
133
135 protected:
136 void update_memory_buffer_row(PixelCursor &p) override;
137};
138
140 protected:
141 void update_memory_buffer_row(PixelCursor &p) override;
142};
143
145 protected:
146 void update_memory_buffer_row(PixelCursor &p) override;
147};
148
150 protected:
151 void update_memory_buffer_row(PixelCursor &p) override;
152};
153
155 protected:
156 void update_memory_buffer_row(PixelCursor &p) override;
157};
158
160 protected:
161 void update_memory_buffer_row(PixelCursor &p) override;
162};
163
165 protected:
166 void update_memory_buffer_row(PixelCursor &p) override;
167};
168
170 protected:
171 void update_memory_buffer_row(PixelCursor &p) override;
172};
173
174} // namespace blender::compositor
#define BLI_assert(a)
Definition BLI_assert.h:50
MINLINE void clamp_v4(float vec[4], float min, float max)
a MemoryBuffer contains access to the data
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) final
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
virtual void update_memory_buffer_row(PixelCursor &p)
void set_use_value_alpha_multiply(const bool value)
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override