[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / particle-system / particle-types.h
1 #ifndef DALI_TOOLKIT_PARTICLE_SYSTEM_PARTICLE_TYPES_H
2 #define DALI_TOOLKIT_PARTICLE_SYSTEM_PARTICLE_TYPES_H
3 /*
4  * Copyright (c) 2023 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 // EXTERNAL_INCLUDES
21 #include <cinttypes>
22
23 // INTERNAL INCLUDES
24 #include <dali-toolkit/public-api/dali-toolkit-common.h>
25
26 namespace Dali::Toolkit::ParticleSystem
27 {
28 using ParticleStreamTypeFlagBit = uint32_t;
29
30 namespace ParticleStream
31 {
32 constexpr ParticleStreamTypeFlagBit POSITION_STREAM_BIT      = 1 << 0; ///< 3D Position stream
33 constexpr ParticleStreamTypeFlagBit ROTATION_STREAM_BIT      = 1 << 1; ///< 3D Rotation stream
34 constexpr ParticleStreamTypeFlagBit SCALE_STREAM_BIT         = 1 << 2; ///< 3D Scale stream
35 constexpr ParticleStreamTypeFlagBit SIZE_STREAM_BIT          = 1 << 3;
36 constexpr ParticleStreamTypeFlagBit COLOR_STREAM_BIT         = 1 << 4;
37 constexpr ParticleStreamTypeFlagBit OPACITY_STREAM_BIT       = 1 << 5;
38 constexpr ParticleStreamTypeFlagBit VELOCITY_STREAM_BIT      = 1 << 6;
39 constexpr ParticleStreamTypeFlagBit LIFETIME_STREAM_BIT      = 1 << 7;
40 constexpr ParticleStreamTypeFlagBit LIFETIME_BASE_STREAM_BIT = 1 << 8;
41 constexpr ParticleStreamTypeFlagBit ALL_STREAMS              = 255;
42 constexpr ParticleStreamTypeFlagBit DEFAULT_STREAMS          = 255; ///< Default streams
43
44 /**
45  * Stream data types
46  */
47 enum class StreamDataType
48 {
49   FLOAT,
50   FLOAT2,
51   FLOAT3,
52   FLOAT4,
53   INT,
54   INT2,
55   INT3,
56   INT4
57 };
58
59 } // namespace ParticleStream
60 } // namespace Dali::Toolkit::ParticleSystem
61 #endif // DALI_TOOLKIT_PARTICLE_SYSTEM_PARTICLE_TYPES_H