Blender  V3.3
COM_TonemapOperation.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 
15 typedef struct AvgLogLum {
16  float al;
17  float auto_key;
18  float lav;
19  float cav[4];
20  float igm;
22 
28  protected:
33 
38 
43 
44  public:
46 
50  void execute_pixel(float output[4], int x, int y, void *data) override;
51 
55  void init_execution() override;
56 
57  void *initialize_tile_data(rcti *rect) override;
58  void deinitialize_tile_data(rcti *rect, void *data) override;
59 
63  void deinit_execution() override;
64 
66  {
67  data_ = data;
68  }
69 
71  ReadBufferOperation *read_operation,
72  rcti *output) override;
73 
74  void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override;
76  const rcti &area,
77  Span<MemoryBuffer *> inputs) override;
79  const rcti &area,
80  Span<MemoryBuffer *> inputs) override;
81 };
82 
90  public:
94  void execute_pixel(float output[4], int x, int y, void *data) override;
95 
97  const rcti &area,
98  Span<MemoryBuffer *> inputs) override;
99 };
100 
101 } // 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
NodeOperation contains calculation logic.
class of tone-map, implementing the photo-receptor tone-map most parts have already been done in Tone...
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void execute_pixel(float output[4], int x, int y, void *data) override
base class of tonemap, implementing the simple tonemap
NodeTonemap * data_
settings of the Tonemap
void execute_pixel(float output[4], int x, int y, void *data) override
void update_memory_buffer_started(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void deinitialize_tile_data(rcti *rect, void *data) override
AvgLogLum * cached_instance_
temporarily cache of the execution storage
bool determine_depending_area_of_interest(rcti *input, ReadBufferOperation *read_operation, rcti *output) override
SocketReader * image_reader_
Cached reference to the reader.
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.
virtual void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void * initialize_tile_data(rcti *rect) override
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])
struct blender::compositor::AvgLogLum AvgLogLum
temporarily storage during execution of Tone-map
static bNodeSocketTemplate inputs[]
temporarily storage during execution of Tone-map