Blender  V3.3
COM_WriteBufferOperation.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_MemoryProxy.h"
7 #include "COM_NodeOperation.h"
8 
9 namespace blender::compositor {
10 
11 class OpenCLDevice;
12 class MemoryProxy;
13 
19  MemoryProxy *memory_proxy_;
20  bool single_value_; /* single value stored in buffer */
21  NodeOperation *input_;
22 
23  public:
27  {
28  return memory_proxy_;
29  }
30  void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override;
31  bool is_single_value() const
32  {
33  return single_value_;
34  }
35 
36  void execute_region(rcti *rect, unsigned int tile_number) override;
37  void init_execution() override;
38  void deinit_execution() override;
40  rcti *rect,
41  unsigned int chunk_number,
42  MemoryBuffer **memory_buffers,
43  MemoryBuffer *output_buffer) override;
44  void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
47  {
48  return input_;
49  }
50 };
51 
52 } // 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
a MemoryBuffer contains access to the data of a chunk
A MemoryProxy is a unique identifier for a memory buffer. A single MemoryProxy is used among all chun...
NodeOperation contains calculation logic.
device representing an GPU OpenCL device. an instance of this class represents a single cl_device
void execute_opencl_region(OpenCLDevice *device, rcti *rect, unsigned int chunk_number, MemoryBuffer **memory_buffers, MemoryBuffer *output_buffer) override
when a chunk is executed by an OpenCLDevice, this method is called
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
calculate a single pixel
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
void execute_region(rcti *rect, unsigned int tile_number) override
when a chunk is executed by a CPUDevice, this method is called
depth_tx sampler(1, ImageType::FLOAT_2D, "combined_tx") .sampler(2
DataType
possible data types for sockets
Definition: COM_defines.h:30
ccl_global KernelShaderEvalInput ccl_global float * output