Blender V4.3
COM_ViewerOperation.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
7#include "BKE_global.hh"
8#include "BLI_rect.h"
10#include "DNA_image_types.h"
11
12namespace blender::compositor {
13
15 private:
16 /* TODO(manzanilla): To be removed together with tiled implementation. */
17 float *output_buffer_;
18
19 Image *image_;
20 ImageUser *image_user_;
21 bool active_;
22 ImBuf *ibuf_;
23 bool use_alpha_input_;
24 const RenderData *rd_;
25 const char *view_name_;
26
27 const ColorManagedViewSettings *view_settings_;
28 const ColorManagedDisplaySettings *display_settings_;
29
30 public:
32 void init_execution() override;
33 void deinit_execution() override;
34 void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
35 bool is_output_operation(bool /*rendering*/) const override
36 {
37 if (G.background) {
38 return false;
39 }
41 }
42 void set_image(Image *image)
43 {
44 image_ = image;
45 }
46 void set_image_user(ImageUser *image_user)
47 {
48 image_user_ = image_user;
49 }
50 bool is_active_viewer_output() const override
51 {
52 return active_;
53 }
54 void set_active(bool active)
55 {
56 active_ = active;
57 }
59 void set_use_alpha_input(bool value)
60 {
61 use_alpha_input_ = value;
62 }
64 {
65 rd_ = rd;
66 }
67 void set_view_name(const char *view_name)
68 {
69 view_name_ = view_name;
70 }
71
73 {
74 view_settings_ = view_settings;
75 }
77 {
78 display_settings_ = display_settings;
79 }
80
82 const rcti &area,
83 Span<MemoryBuffer *> inputs) override;
84
86 const rcti &area,
87 Span<MemoryBuffer *> inputs) override;
88
90
91 private:
92 void update_image(const rcti *rect);
93 void init_image();
94};
95
96} // namespace blender::compositor
a MemoryBuffer contains access to the data
void set_display_settings(const ColorManagedDisplaySettings *display_settings)
void set_image_user(ImageUser *image_user)
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
eCompositorPriority get_render_priority() const override
get the render priority of this node.
bool is_active_viewer_output() const override
is this operation the active viewer output user can select an ViewerNode to be active (the result of ...
bool is_output_operation(bool) const override
is_output_operation determines whether this operation is an output of the ExecutionSystem during rend...
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
void set_view_name(const char *view_name)
void set_render_data(const RenderData *rd)
void update_memory_buffer_finished(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void set_view_settings(const ColorManagedViewSettings *view_settings)
input_tx image(0, GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D, "preview_img") .compute_source("compositor_compute_preview.glsl") .do_static_compilation(true)
eCompositorPriority
Possible priority settings.
Definition COM_Enums.h:33
#define G(x, y, z)