Blender  V3.3
COM_MixOperation.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2011 Blender Foundation. */
3 
4 #pragma once
5 
7 
8 namespace blender::compositor {
9 
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  {
31  out += out_stride;
35  }
36  };
37 
45  bool use_clamp_;
46 
47  inline void clamp_if_needed(float color[4])
48  {
49  if (use_clamp_) {
50  clamp_v4(color, 0.0f, 1.0f);
51  }
52  }
53 
54  public:
59 
63  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
64 
68  void init_execution() override;
69 
73  void deinit_execution() override;
74 
75  void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
76 
77  void set_use_value_alpha_multiply(const bool value)
78  {
79  value_alpha_multiply_ = value;
80  }
82  {
83  return value_alpha_multiply_;
84  }
85  void set_use_clamp(bool value)
86  {
87  use_clamp_ = value;
88  }
89 
91  const rcti &area,
93 
94  protected:
95  virtual void update_memory_buffer_row(PixelCursor &p);
96 };
97 
99  public:
100  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
101 
102  protected:
103  void update_memory_buffer_row(PixelCursor &p) override;
104 };
105 
107  public:
108  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
109 
110  protected:
111  void update_memory_buffer_row(PixelCursor &p) override;
112 };
113 
115  public:
116  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
117 
118  protected:
119  void update_memory_buffer_row(PixelCursor &p) override;
120 };
121 
123  public:
124  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
125 
126  protected:
127  void update_memory_buffer_row(PixelCursor &p) override;
128 };
129 
131  public:
132  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
133 
134  protected:
135  void update_memory_buffer_row(PixelCursor &p) override;
136 };
137 
139  public:
140  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
141 
142  protected:
143  void update_memory_buffer_row(PixelCursor &p) override;
144 };
145 
147  public:
148  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
149 
150  protected:
151  void update_memory_buffer_row(PixelCursor &p) override;
152 };
153 
155  public:
156  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
157 
158  protected:
159  void update_memory_buffer_row(PixelCursor &p) override;
160 };
161 
163  public:
164  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
165 
166  protected:
167  void update_memory_buffer_row(PixelCursor &p) override;
168 };
169 
171  public:
172  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
173 
174  protected:
175  void update_memory_buffer_row(PixelCursor &p) override;
176 };
177 
179  public:
180  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
181 
182  protected:
183  void update_memory_buffer_row(PixelCursor &p) override;
184 };
185 
187  public:
188  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
189 
190  protected:
191  void update_memory_buffer_row(PixelCursor &p) override;
192 };
193 
195  public:
196  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
197 
198  protected:
199  void update_memory_buffer_row(PixelCursor &p) override;
200 };
201 
203  public:
204  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
205 
206  protected:
207  void update_memory_buffer_row(PixelCursor &p) override;
208 };
209 
211  public:
212  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
213 
214  protected:
215  void update_memory_buffer_row(PixelCursor &p) override;
216 };
217 
219  public:
220  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
221 
222  protected:
223  void update_memory_buffer_row(PixelCursor &p) override;
224 };
225 
227  public:
228  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
229 
230  protected:
231  void update_memory_buffer_row(PixelCursor &p) override;
232 };
233 
235  public:
236  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
237 
238  protected:
239  void update_memory_buffer_row(PixelCursor &p) override;
240 };
241 
243  public:
244  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
245 
246  protected:
247  void update_memory_buffer_row(PixelCursor &p) override;
248 };
249 
250 } // namespace blender::compositor
#define BLI_assert(a)
Definition: BLI_assert.h:46
MINLINE void clamp_v4(float vec[4], float min, float max)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
a MemoryBuffer contains access to the data of a chunk
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) final
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
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 execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
void update_memory_buffer_row(PixelCursor &p) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
NodeOperation contains calculation logic.
depth_tx sampler(1, ImageType::FLOAT_2D, "combined_tx") .sampler(2
ccl_global KernelShaderEvalInput ccl_global float * output
static void area(int d1, int d2, int e1, int e2, float weights[2])
static bNodeSocketTemplate inputs[]