[dali_2.3.25] Merge branch 'devel/master'
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / windows / display-connection-impl-win.h
1 #ifndef DALI_INTERNAL_WIN_DIPLAY_CONNECTION_H\r
2 #define DALI_INTERNAL_WIN_DIPLAY_CONNECTION_H\r
3 \r
4 /*\r
5  * Copyright (c) 2021 Samsung Electronics Co., Ltd.\r
6  *\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  *\r
11  * http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  *\r
19  */\r
20 \r
21 // INTERNAL INCLUDES\r
22 #include <dali/internal/graphics/gles/egl-implementation.h>\r
23 #include <dali/internal/window-system/common/display-connection-impl.h>\r
24 #include <dali/public-api/object/base-object.h>\r
25 \r
26 namespace Dali\r
27 {\r
28 class RenderSurface;\r
29 class DisplayConnection;\r
30 \r
31 namespace Internal\r
32 {\r
33 namespace Adaptor\r
34 {\r
35 /**\r
36  * DisplayConnection implementation\r
37  */\r
38 class DisplayConnectionWin : public Dali::Internal::Adaptor::DisplayConnection\r
39 {\r
40 public:\r
41   /**\r
42    * @brief Default constructor\r
43    */\r
44   DisplayConnectionWin();\r
45 \r
46   /**\r
47    * @brief Create an initialized DisplayConnection.\r
48    *\r
49    * @return A handle to a newly allocated DisplayConnection resource.\r
50    */\r
51   static DisplayConnection* New();\r
52 \r
53 public:\r
54   /**\r
55    * @copydoc Dali::DisplayConnection::GetDisplay\r
56    */\r
57   Any GetDisplay();\r
58 \r
59   /**\r
60    * @copydoc Dali::DisplayConnection::ConsumeEvents\r
61    */\r
62   void ConsumeEvents();\r
63 \r
64   /**\r
65    * @copydoc Dali::DisplayConnection::InitializeEgl\r
66    */\r
67   bool InitializeEgl(EglInterface& egl);\r
68 \r
69   /**\r
70   * @copydoc Dali::DisplayConnection::InitializeGraphics\r
71   */\r
72   bool InitializeGraphics();\r
73 \r
74   /**\r
75   * @copydoc Dali::Internal::Adaptor::DisplayConnection::SetSurfaceType\r
76   */\r
77   void SetSurfaceType(Dali::RenderSurfaceInterface::Type type);\r
78 \r
79   /**\r
80   * @copydoc Dali::Internal::Adaptor::DisplayConnection::SetGraphicsInterface\r
81   */\r
82   void SetGraphicsInterface(GraphicsInterface& graphics);\r
83 \r
84 public:\r
85   /**\r
86    * Destructor\r
87    */\r
88   virtual ~DisplayConnectionWin();\r
89 \r
90 private:\r
91   // Undefined\r
92   DisplayConnectionWin(const DisplayConnectionWin&) = delete;\r
93 \r
94   // Undefined\r
95   DisplayConnectionWin& operator=(const DisplayConnectionWin& rhs) = delete;\r
96 \r
97 private:\r
98   GraphicsInterface* mGraphics; ///< The graphics interface\r
99   HDC                mDisplay;\r
100 };\r
101 \r
102 } // namespace Adaptor\r
103 \r
104 } // namespace Internal\r
105 \r
106 } // namespace Dali\r
107 \r
108 #endif // DALI_INTERNAL_WIN_DIPLAY_CONNECTION_H\r