Blender  V3.3
COM_FastGaussianBlurOperation.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 #include "DNA_node_types.h"
8 
9 namespace blender::compositor {
10 
12  private:
13  float sx_;
14  float sy_;
15  MemoryBuffer *iirgaus_;
16 
17  public:
20  ReadBufferOperation *read_operation,
21  rcti *output) override;
22  void execute_pixel(float output[4], int x, int y, void *data) override;
23 
24  static void IIR_gauss(MemoryBuffer *src, float sigma, unsigned int channel, unsigned int xy);
25  void *initialize_tile_data(rcti *rect) override;
26  void init_data() override;
27  void deinit_execution() override;
28  void init_execution() override;
29 
30  void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override;
32  const rcti &area,
33  Span<MemoryBuffer *> inputs) override;
35  const rcti &UNUSED(area),
37  {
38  }
39 };
40 
41 enum {
45 };
46 
48  private:
49  float sigma_;
50  MemoryBuffer *iirgaus_;
51  SocketReader *inputprogram_;
52 
57  int overlay_;
58 
59  public:
62  ReadBufferOperation *read_operation,
63  rcti *output) override;
64  void execute_pixel(float output[4], int x, int y, void *data) override;
65 
66  void *initialize_tile_data(rcti *rect) override;
67  void deinit_execution() override;
68  void init_execution() override;
69  void set_sigma(float sigma)
70  {
71  sigma_ = sigma;
72  }
73 
74  /* used for DOF blurring ZBuffer */
75  void set_overlay(int overlay)
76  {
77  overlay_ = overlay;
78  }
79 
80  void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override;
82  const rcti &area,
83  Span<MemoryBuffer *> inputs) override;
85  const rcti &area,
86  Span<MemoryBuffer *> inputs) override;
87 };
88 
89 } // namespace blender::compositor
#define UNUSED(x)
_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
void update_memory_buffer_partial(MemoryBuffer *UNUSED(output), const rcti &UNUSED(area), Span< MemoryBuffer * > UNUSED(inputs)) override
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override
Get input operation area being read by this operation on rendering given output area.
bool determine_depending_area_of_interest(rcti *input, ReadBufferOperation *read_operation, rcti *output) override
void execute_pixel(float output[4], int x, int y, void *data) override
calculate a single pixel
static void IIR_gauss(MemoryBuffer *src, float sigma, unsigned int channel, unsigned int xy)
void update_memory_buffer_started(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void update_memory_buffer_started(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override
Get input operation area being read by this operation on rendering given output area.
bool determine_depending_area_of_interest(rcti *input, ReadBufferOperation *read_operation, rcti *output) override
void execute_pixel(float output[4], int x, int y, void *data) override
calculate a single pixel
a MemoryBuffer contains access to the data of a chunk
NodeOperation contains calculation logic.
SyclQueue void void * src
ccl_global KernelShaderEvalInput ccl_global float * output
ccl_global KernelShaderEvalInput * input
static void area(int d1, int d2, int e1, int e2, float weights[2])
static bNodeSocketTemplate inputs[]
int xy[2]
Definition: wm_draw.c:135