Add visuals group tag for doxygen
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / visuals / visual-properties.h
1 #ifndef DALI_TOOLKIT_VISUAL_PROPERTIES_H
2 #define DALI_TOOLKIT_VISUAL_PROPERTIES_H
3
4 /*
5  * Copyright (c) 2016 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 // INTERNAL INCLUDES
22 #include <dali-toolkit/public-api/toolkit-property-index-ranges.h>
23
24 namespace Dali
25 {
26
27 namespace Toolkit
28 {
29
30 /**
31  * @addtogroup dali_toolkit_visuals
32  * @{
33  */
34
35 namespace Visual
36 {
37
38 /**
39  * @brief All the visual types.
40  * @SINCE_1_1.45
41  */
42 enum Type
43 {
44   BORDER, ///< Renders a solid color as an internal border to the control's quad. @SINCE_1_1.45
45   COLOR, ///< Renders a solid color to the control's quad. @SINCE_1_1.45
46   GRADIENT, ///< Renders a smooth transition of colors to the control's quad. @SINCE_1_1.45
47   IMAGE, ///< Renders an image into the control's quad. @SINCE_1_1.45
48   MESH, ///< Renders a mesh using an "obj" file, optionally with textures provided by an "mtl" file. @SINCE_1_1.45
49   PRIMITIVE, ///< Renders a simple 3D shape, such as a cube or sphere. @SINCE_1_1.45
50   WIREFRAME ///< Renders a simple wire-frame outlining a quad. @SINCE_1_2_2
51 };
52
53 namespace Property
54 {
55
56 enum
57 {
58   /**
59    * @brief The index for the visual type.
60    * @details Name "visualType", type [Type](@ref Dali::Toolkit::Visual::Type) (Property::INTEGER) or Property::STRING.
61    * @SINCE_1_1.45
62    * @note Mandatory.
63    * @see Type
64    */
65   TYPE = VISUAL_PROPERTY_BASE_START_INDEX,
66
67   /**
68    * @brief The shader to use in the visual.
69    * @details Name "shader", type Property::Map.
70    * @SINCE_1_1.45
71    * @note Optional.
72    * @note Will override the existing shaders.
73    * @see Shader::Property
74    */
75   SHADER
76 };
77
78 } // namespace Property
79
80 namespace Shader
81 {
82
83 namespace Property
84 {
85
86 enum
87 {
88   /**
89    * @brief The vertex shader.
90    * @details Name "vertexShader", type Property::STRING.
91    * @SINCE_1_1.45
92    * @note Optional
93    * @note If not supplied, the visual's already set vertex shader is used.
94    */
95   VERTEX_SHADER,
96
97   /**
98    * @brief The fragment shader.
99    * @details Name "fragmentShader", type Property::STRING.
100    * @SINCE_1_1.45
101    * @note Optional
102    * @note If not supplied, the visual's already set fragment shader is used.
103    */
104   FRAGMENT_SHADER,
105
106   /**
107    * @brief How to subdivide the grid along the X-Axis.
108    * @details Name "subdivideGridX", type Property::INTEGER.
109    * @SINCE_1_1.45
110    * @note Optional
111    * @note If not supplied, the default is 1.
112    * @note Value should be greater than or equal to 1.
113    */
114   SUBDIVIDE_GRID_X,
115
116   /**
117    * @brief How to subdivide the grid along the Y-Axis.
118    * @details Name "subdivideGridY", type Property::INTEGER.
119    * @SINCE_1_1.45
120    * @note Optional
121    * @note If not supplied, the default is 1.
122    * @note Value should be greater than or equal to 1.
123    */
124   SUBDIVIDE_GRID_Y,
125
126   /**
127    * @brief Hints for rendering.
128    * @details Name "hints", type Dali::Shader::Hint (Property::INTEGER), Property::STRING or Property::ARRAY of Property::STRING.
129    * @SINCE_1_1.45
130    * @note Optional
131    * @note If not supplied, the default is Dali::Shader::Hint::NONE.
132    */
133   HINTS,
134 };
135
136 } // namespace Property
137
138 } // namespace Shader
139
140 } // namespace Visual
141
142 /**
143  * @}
144  */
145
146 } // namespace Toolkit
147
148 } // namespace Dali
149
150 #endif // DALI_TOOLKIT_VISUAL_PROPERTIES_H