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