[dali_1.4.21] Merge branch 'devel/master'
[platform/core/uifw/dali-core.git] / dali / integration-api / profiling.h
1 #ifndef DALI_INTEGRATION_PROFILING_H
2 #define DALI_INTEGRATION_PROFILING_H
3
4 /*
5  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 // EXTERNAL INCLUDES
22 #include <cstddef>
23
24 // INTERNAL INCLUDES
25 #include <dali/public-api/common/dali-common.h>
26
27 namespace Dali
28 {
29
30 namespace Integration
31 {
32
33 enum ProfilingType
34 {
35   PROFILING_TYPE_PAN_GESTURE,
36
37   PROFILING_TYPE_END
38 };
39
40 /**
41  * Called by adaptor to provide profiling information.
42  *
43  * @pre Should be called after Core creation.
44  * @param type The type of profiling information to output.
45  */
46 DALI_CORE_API void EnableProfiling( ProfilingType type );
47
48
49 namespace Profiling
50 {
51
52 DALI_CORE_API extern const std::size_t ANIMATION_MEMORY_SIZE;    ///< Total size of animation and associated internal objects
53 DALI_CORE_API extern const std::size_t CONSTRAINT_MEMORY_SIZE;   ///< Total size of constraint and associated internal objects
54 DALI_CORE_API extern const std::size_t ACTOR_MEMORY_SIZE;        ///< Total size of actor and associated internal objects
55 DALI_CORE_API extern const std::size_t CAMERA_ACTOR_MEMORY_SIZE; ///< Total size of camera actor and associated internal objects
56 DALI_CORE_API extern const std::size_t IMAGE_ACTOR_MEMORY_SIZE;  ///< Total size of image actor and associated internal objects
57 DALI_CORE_API extern const std::size_t LAYER_MEMORY_SIZE;        ///< Total size of layer and associated internal objects
58 DALI_CORE_API extern const std::size_t IMAGE_MEMORY_SIZE;        ///< Total size of image and associated internal objects
59
60 DALI_CORE_API extern const std::size_t RENDERER_MEMORY_SIZE;     ///< Total size of renderer and associated internal objects
61 DALI_CORE_API extern const std::size_t GEOMETRY_MEMORY_SIZE;     ///< Total size of geometry and associated internal objects
62 DALI_CORE_API extern const std::size_t PROPERTY_BUFFER_MEMORY_SIZE;     ///< Total size of property-0buffer and associated internal objects
63 DALI_CORE_API extern const std::size_t TEXTURE_SET_MEMORY_SIZE;     ///< Total size of TextureSet and associated internal objects
64 DALI_CORE_API extern const std::size_t SAMPLER_MEMORY_SIZE;     ///< Total size of Sampler and associated internal objects
65 DALI_CORE_API extern const std::size_t SHADER_MEMORY_SIZE;     ///< Total size of shader and associated internal objects
66 } // namespace Profiling
67
68 } // namespace Integration
69
70 } // namespace Dali
71
72 #endif // DALI_INTEGRATION_PROFILING_H