Blender  V3.3
COM_PreviewOperation.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_global.h"
7 #include "BLI_rect.h"
9 #include "DNA_color_types.h"
10 #include "DNA_image_types.h"
11 
12 namespace blender::compositor {
13 
15  protected:
16  unsigned char *output_buffer_;
17 
23  float divider_;
24  unsigned int default_width_;
25  unsigned int default_height_;
26 
29 
30  public:
31  PreviewOperation(const ColorManagedViewSettings *view_settings,
32  const ColorManagedDisplaySettings *display_settings,
33  unsigned int default_width,
34  unsigned int default_height);
36 
37  bool is_output_operation(bool /*rendering*/) const override
38  {
39  return !G.background;
40  }
41  void init_execution() override;
42  void deinit_execution() override;
44 
45  void execute_region(rcti *rect, unsigned int tile_number) override;
46  void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
48  ReadBufferOperation *read_operation,
49  rcti *output) override;
50 
51  void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override;
53  const rcti &area,
54  Span<MemoryBuffer *> inputs) override;
55 };
56 
57 } // namespace blender::compositor
a MemoryBuffer contains access to the data of a chunk
NodeOperation contains calculation logic.
void verify_preview(bNodeInstanceHash *previews, bNodeInstanceKey key)
bool determine_depending_area_of_interest(rcti *input, ReadBufferOperation *read_operation, rcti *output) override
bNodePreview * preview_
holds reference to the SDNA bNode, where this nodes will render the preview image for
void execute_region(rcti *rect, unsigned int tile_number) override
when a chunk is executed by a CPUDevice, this method is called
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.
const ColorManagedDisplaySettings * display_settings_
eCompositorPriority get_render_priority() const override
get the render priority of this node.
bool is_output_operation(bool) const override
is_output_operation determines whether this operation is an output of the ExecutionSystem during rend...
const ColorManagedViewSettings * view_settings_
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
PreviewOperation(const ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings, unsigned int default_width, unsigned int default_height)
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
eCompositorPriority
Possible priority settings.
Definition: COM_Enums.h:32
ccl_global KernelShaderEvalInput ccl_global float * output
ccl_global KernelShaderEvalInput * input
#define G(x, y, z)
static void area(int d1, int d2, int e1, int e2, float weights[2])
static bNodeSocketTemplate inputs[]