Blender V4.3
COM_ConstantFolder.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2021 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
7#include "COM_defines.h"
8
9namespace blender::compositor {
10
11class NodeOperation;
12class NodeOperationBuilder;
13class ConstantOperation;
14class MemoryBuffer;
15
21 private:
22 NodeOperationBuilder &operations_builder_;
23
26
27 rcti max_area_;
28 rcti first_elem_area_;
29
30 public:
35 ConstantFolder(NodeOperationBuilder &operations_builder);
39 int fold_operations();
40
41 private:
43 Vector<ConstantOperation *> try_fold_operations(Span<NodeOperation *> operations);
44 ConstantOperation *fold_operation(NodeOperation *operation);
45
46 MemoryBuffer *create_constant_buffer(DataType data_type);
47 Vector<MemoryBuffer *> get_constant_input_buffers(NodeOperation *operation);
48 void delete_constant_buffers();
49
50 void get_operation_output_operations(NodeOperation *operation,
51 Vector<NodeOperation *> &r_outputs);
52};
53
54} // namespace blender::compositor
ConstantFolder(NodeOperationBuilder &operations_builder)
a MemoryBuffer contains access to the data
NodeOperation contains calculation logic.
DataType
possible data types for sockets
Definition COM_defines.h:21