Blender  V3.3
COM_ImageOperation.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 
6 #include "BKE_image.h"
7 #include "BLI_listbase.h"
8 #include "BLI_utildefines.h"
10 #include "MEM_guardedalloc.h"
11 
12 #include "RE_pipeline.h"
13 #include "RE_texture.h"
14 
15 namespace blender::compositor {
16 
21  protected:
25  /* TODO: Remove raw buffers when removing Tiled implementation. */
27  unsigned int *image_byte_buffer_;
29 
35  const RenderData *rd_;
36  const char *view_name_;
37 
42  void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
43 
44  virtual ImBuf *get_im_buf();
45 
46  public:
47  void init_execution() override;
48  void deinit_execution() override;
50  {
51  image_ = image;
52  }
53  void set_image_user(ImageUser *imageuser)
54  {
55  image_user_ = imageuser;
56  }
57  void set_render_data(const RenderData *rd)
58  {
59  rd_ = rd;
60  }
61  void set_view_name(const char *view_name)
62  {
63  view_name_ = view_name;
64  }
65  void set_framenumber(int framenumber)
66  {
67  framenumber_ = framenumber;
68  }
69 };
71  public:
76  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
77 
79  const rcti &area,
80  Span<MemoryBuffer *> inputs) override;
81 };
83  public:
88  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
89 
91  const rcti &area,
92  Span<MemoryBuffer *> inputs) override;
93 };
95  public:
100  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
101 
103  const rcti &area,
104  Span<MemoryBuffer *> inputs) override;
105 };
106 
107 } // namespace blender::compositor
_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
Read Guarded memory(de)allocation.
Base class for all image operations.
void set_render_data(const RenderData *rd)
void set_image_user(ImageUser *imageuser)
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
void set_view_name(const char *view_name)
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
calculate a single pixel
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
calculate a single pixel
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
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
calculate a single pixel
a MemoryBuffer contains access to the data of a chunk
depth_tx sampler(1, ImageType::FLOAT_2D, "combined_tx") .sampler(2
depth_tx normal_tx diffuse_light_tx specular_light_tx volume_light_tx environment_tx ambient_occlusion_tx aov_value_tx in_weight_img image(1, GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D_ARRAY, "out_weight_img") .image(3
ccl_global KernelShaderEvalInput ccl_global float * output
static void area(int d1, int d2, int e1, int e2, float weights[2])
static bNodeSocketTemplate inputs[]