Support int uniform in shader
[platform/core/uifw/dali-adaptor.git] / dali / public-api / adaptor-framework / window-data.h
1 #ifndef DALI_WINDOW_DATA_H
2 #define DALI_WINDOW_DATA_H
3
4 /*
5  * Copyright (c) 2023 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 <dali/public-api/adaptor-framework/window-enumerations.h>
23 #include <dali/public-api/dali-adaptor-common.h>
24 #include <dali/public-api/math/rect.h>
25 #include <memory>
26
27 namespace Dali
28 {
29 /**
30  * The WindowData class is used as a parameter for the constructors of the Application class.
31  * The data from the WindowData object is used to customize the default window created by the Application class.
32  *
33  * The default values are below:
34  * PositionSize : x:0, y:0, w:0, h:0 (full-screen window)
35  * Transparency : true (Window is created with 32-bit color depth)
36  * WindowType : NORMAL
37  *
38  * If you want to customize the window, you can modify the values of the WindowData object as needed.
39  * @SINCE_2_2.23
40  */
41 class DALI_ADAPTOR_API WindowData
42 {
43 public:
44   /**
45    * @brief Creates a WindowData object.
46    */
47   WindowData();
48
49   /**
50    * @brief Destructor.
51    */
52   ~WindowData();
53
54   /**
55    * @brief Sets the position and size
56    *
57    * @SINCE_2_2.23
58    * @param[in] positionSize Position and Size
59    */
60   void SetPositionSize(Dali::Rect<int>& positionSize);
61
62   /**
63    * @brief Gets the PositionSize
64    *
65    * @SINCE_2_2.23
66    * @return The position and size
67    */
68   Dali::Rect<int> GetPositionSize() const;
69
70   /**
71    * @brief Sets the transparency
72    *
73    * @SINCE_2_2.23
74    * @param[in] transparent transparency
75    */
76   void SetTransparency(bool transparent);
77
78   /**
79    * @brief Gets the transparency
80    *
81    * @SINCE_2_2.23
82    * @return whether transparency
83    */
84   bool GetTransparency() const;
85
86   /**
87    * @brief Sets the window type
88    *
89    * @SINCE_2_2.23
90    * @param[in] type the window type
91    */
92   void SetWindowType(WindowType type);
93
94   /**
95    * @brief Gets the window type
96    *
97    * @SINCE_2_2.23
98    * @return the window type
99    */
100   WindowType GetWindowType() const;
101
102 private:
103   struct Impl;
104   std::unique_ptr<Impl> mImpl;
105 };
106
107 } // namespace Dali
108
109 #endif // DALI_WINDOW_DATA_H