14 is_output_rendered_ =
false;
24 input_program_ =
nullptr;
64 r_input_area.
xmin = 0;
66 r_input_area.
ymin = 0;
74 if (!is_output_rendered_) {
76 const bool is_input_inflated =
input->is_a_single_elem();
77 if (is_input_inflated) {
82 is_output_rendered_ =
true;
84 if (is_input_inflated) {
#define UNUSED_VARS_NDEBUG(...)
void deinit_execution() override
virtual void generate_glare(float *data, MemoryBuffer *input_tile, NodeGlare *settings)=0
void init_execution() override
bool determine_depending_area_of_interest(rcti *input, ReadBufferOperation *read_operation, rcti *output) override
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) final
Get input operation area being read by this operation on rendering given output area.
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) final
MemoryBuffer * create_memory_buffer(rcti *rect) override
a MemoryBuffer contains access to the data of a chunk
float * get_buffer()
get the data of this MemoryBuffer
unsigned int get_height() const
void add_output_socket(DataType datatype)
SocketReader * get_input_socket_reader(unsigned int index)
unsigned int get_width() const
NodeOperationFlags flags_
virtual bool determine_depending_area_of_interest(rcti *input, ReadBufferOperation *read_operation, rcti *output)
void add_input_socket(DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
virtual void * initialize_tile_data(rcti *)
void deinit_execution() override
void init_execution() override
ccl_global KernelShaderEvalInput ccl_global float * output
ccl_global const KernelWorkTile * tile
ccl_global KernelShaderEvalInput * input
static void area(int d1, int d2, int e1, int e2, float weights[2])
static bNodeSocketTemplate inputs[]
bool is_fullframe_operation