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