Blender  V3.3
COM_defines.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 "BLI_math_vec_types.hh"
7 
8 #include "DNA_vec_types.h"
9 
11 
12 using Size2f = float2;
13 
14 enum class eExecutionModel {
19  Tiled,
21  FullFrame
22 };
23 
24 enum class eDimension { X, Y };
25 
30 enum class DataType {
32  Value = 0,
34  Vector = 1,
36  Color = 2,
37 };
38 
42 constexpr int COM_data_type_num_channels(const DataType datatype)
43 {
44  switch (datatype) {
45  case DataType::Value:
46  return 1;
47  case DataType::Vector:
48  return 3;
49  case DataType::Color:
50  default:
51  return 4;
52  }
53 }
54 
55 constexpr int COM_data_type_bytes_len(DataType data_type)
56 {
57  return COM_data_type_num_channels(data_type) * sizeof(float);
58 }
59 
63 
64 constexpr float COM_COLOR_TRANSPARENT[4] = {0.0f, 0.0f, 0.0f, 0.0f};
65 constexpr float COM_VECTOR_ZERO[3] = {0.0f, 0.0f, 0.0f};
66 constexpr float COM_COLOR_BLACK[4] = {0.0f, 0.0f, 0.0f, 1.0f};
67 constexpr float COM_VALUE_ZERO[1] = {0.0f};
68 constexpr float COM_VALUE_ONE[1] = {1.0f};
69 
73 constexpr DataType COM_num_channels_data_type(const int num_channels)
74 {
75  switch (num_channels) {
76  case 1:
77  return DataType::Value;
78  case 3:
79  return DataType::Vector;
80  case 4:
81  default:
82  return DataType::Color;
83  }
84 }
85 
86 /* Configurable items.
87  *
88  * Chunk size determination.
89  *
90  * Chunk order. */
95 enum class ChunkOrdering {
97  CenterOut = 0,
99  Random = 1,
101  TopDown = 2,
103  RuleOfThirds = 3,
104 
106 };
107 
108 constexpr float COM_PREVIEW_SIZE = 140.f;
109 constexpr float COM_RULE_OF_THIRDS_DIVIDER = 100.0f;
110 constexpr float COM_BLUR_BOKEH_PIXELS = 512;
111 
112 constexpr rcti COM_AREA_NONE = {0, 0, 0, 0};
114 
115 } // namespace blender::compositor
typedef float(TangentPoint)[2]
ChunkOrdering
The order of chunks to be scheduled.
Definition: COM_defines.h:95
@ RuleOfThirds
experimental ordering with 9 hot-spots.
@ CenterOut
order from a distance to centerX/centerY
DataType
possible data types for sockets
Definition: COM_defines.h:30
@ Vector
Vector data type.
constexpr float COM_VECTOR_ZERO[3]
Definition: COM_defines.h:65
constexpr int COM_DATA_TYPE_VALUE_CHANNELS
Definition: COM_defines.h:60
constexpr int COM_DATA_TYPE_COLOR_CHANNELS
Definition: COM_defines.h:62
constexpr float COM_PREVIEW_SIZE
Definition: COM_defines.h:108
constexpr DataType COM_num_channels_data_type(const int num_channels)
Definition: COM_defines.h:73
constexpr float COM_RULE_OF_THIRDS_DIVIDER
Definition: COM_defines.h:109
constexpr float COM_BLUR_BOKEH_PIXELS
Definition: COM_defines.h:110
constexpr int COM_data_type_num_channels(const DataType datatype)
Definition: COM_defines.h:42
constexpr float COM_VALUE_ZERO[1]
Definition: COM_defines.h:67
constexpr int COM_data_type_bytes_len(DataType data_type)
Definition: COM_defines.h:55
constexpr rcti COM_CONSTANT_INPUT_AREA_OF_INTEREST
Definition: COM_defines.h:113
constexpr rcti COM_AREA_NONE
Definition: COM_defines.h:112
constexpr float COM_VALUE_ONE[1]
Definition: COM_defines.h:68
constexpr int COM_DATA_TYPE_VECTOR_CHANNELS
Definition: COM_defines.h:61
constexpr float COM_COLOR_TRANSPARENT[4]
Definition: COM_defines.h:64
constexpr float COM_COLOR_BLACK[4]
Definition: COM_defines.h:66
vec_base< float, 2 > float2