Blender  V3.3
COM_MultilayerImageOperation.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 "COM_ImageOperation.h"
7 
8 namespace blender::compositor {
9 
11  private:
12  int pass_id_;
13  int view_;
14 
15  protected:
18  ImBuf *get_im_buf() override;
19 
20  public:
24  MultilayerBaseOperation(RenderLayer *render_layer, RenderPass *render_pass, int view);
25 
27  const rcti &area,
28  Span<MemoryBuffer *> inputs) override;
29 };
30 
32  public:
33  MultilayerColorOperation(RenderLayer *render_layer, RenderPass *render_pass, int view)
34  : MultilayerBaseOperation(render_layer, render_pass, view)
35  {
37  }
38  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
39  std::unique_ptr<MetaData> get_meta_data() override;
40 };
41 
43  public:
44  MultilayerValueOperation(RenderLayer *render_layer, RenderPass *render_pass, int view)
45  : MultilayerBaseOperation(render_layer, render_pass, view)
46  {
48  }
49  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
50 };
51 
53  public:
54  MultilayerVectorOperation(RenderLayer *render_layer, RenderPass *render_pass, int view)
55  : MultilayerBaseOperation(render_layer, render_pass, view)
56  {
58  }
59  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
60 };
61 
62 } // namespace blender::compositor
static AppView * view
_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
Base class for all image operations.
a MemoryBuffer contains access to the data of a chunk
MultilayerBaseOperation(RenderLayer *render_layer, RenderPass *render_pass, int view)
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
MultilayerColorOperation(RenderLayer *render_layer, RenderPass *render_pass, int view)
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
calculate a single pixel
std::unique_ptr< MetaData > get_meta_data() override
MultilayerValueOperation(RenderLayer *render_layer, RenderPass *render_pass, int view)
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
calculate a single pixel
MultilayerVectorOperation(RenderLayer *render_layer, RenderPass *render_pass, int view)
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
calculate a single pixel
void add_output_socket(DataType datatype)
depth_tx sampler(1, ImageType::FLOAT_2D, "combined_tx") .sampler(2
@ Vector
Vector data type.
ccl_global KernelShaderEvalInput ccl_global float * output
static void area(int d1, int d2, int e1, int e2, float weights[2])
static bNodeSocketTemplate inputs[]