Blender  V3.3
COM_CompositorOperation.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 
8 struct Scene;
9 
10 namespace blender::compositor {
11 
16  private:
17  const struct Scene *scene_;
21  char scene_name_[MAX_ID_NAME];
22 
26  const RenderData *rd_;
27 
31  float *output_buffer_;
32 
36  float *depth_buffer_;
37 
41  SocketReader *image_input_;
42 
46  SocketReader *alpha_input_;
47 
51  SocketReader *depth_input_;
52 
56  bool use_alpha_input_;
57 
61  bool active_;
62 
66  const char *view_name_;
67 
68  public:
71  {
72  return active_;
73  }
74  void execute_region(rcti *rect, unsigned int tile_number) override;
75  void set_scene(const struct Scene *scene)
76  {
77  scene_ = scene;
78  }
79  void set_scene_name(const char *scene_name)
80  {
81  BLI_strncpy(scene_name_, scene_name, sizeof(scene_name_));
82  }
83  void set_view_name(const char *view_name)
84  {
85  view_name_ = view_name;
86  }
87  void set_render_data(const RenderData *rd)
88  {
89  rd_ = rd;
90  }
91  bool is_output_operation(bool /*rendering*/) const override
92  {
93  return this->is_active_compositor_output();
94  }
95  void init_execution() override;
96  void deinit_execution() override;
98  {
100  }
101  void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
102  void set_use_alpha_input(bool value)
103  {
104  use_alpha_input_ = value;
105  }
106  void set_active(bool active)
107  {
108  active_ = active;
109  }
110 
112  const rcti &area,
113  Span<MemoryBuffer *> inputs) override;
114 };
115 
116 } // namespace blender::compositor
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
Definition: string.c:64
#define MAX_ID_NAME
Definition: DNA_ID.h:337
void execute_region(rcti *rect, unsigned int tile_number) override
when a chunk is executed by a CPUDevice, this method is called
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
eCompositorPriority get_render_priority() const override
get the render priority of this node.
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
bool is_output_operation(bool) const override
is_output_operation determines whether this operation is an output of the ExecutionSystem during rend...
void set_scene(const struct Scene *scene)
a MemoryBuffer contains access to the data of a chunk
NodeOperation contains calculation logic.
Scene scene
eCompositorPriority
Possible priority settings.
Definition: COM_Enums.h:32
ccl_global KernelShaderEvalInput ccl_global float * output
static void area(int d1, int d2, int e1, int e2, float weights[2])
bool active
all scheduled work for the GPU.
static bNodeSocketTemplate inputs[]