d4e696d3d4079cf0f67d30d6040dab18318b253a
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / windows / display-connection-impl-win.cpp
1 /*\r
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  * http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  *\r
16  */\r
17 \r
18  // CLASS HEADER\r
19 #include <dali/internal/window-system/windows/display-connection-impl-win.h>\r
20 \r
21 // EXTERNAL INCLUDES\r
22 #include <dali/integration-api/debug.h>\r
23 \r
24 // INTERNAL INCLUDES\r
25 #include <dali/internal/graphics/gles/egl-graphics.h>\r
26 \r
27 namespace Dali\r
28 {\r
29 \r
30 namespace Internal\r
31 {\r
32 \r
33 namespace Adaptor\r
34 {\r
35 \r
36 DisplayConnection* DisplayConnectionWin::New()\r
37 {\r
38   DisplayConnection* pDisplayConnection(new DisplayConnectionWin());\r
39 \r
40   return pDisplayConnection;\r
41 }\r
42 \r
43 DisplayConnectionWin::DisplayConnectionWin()\r
44 : mDisplay(NULL)\r
45 {\r
46 }\r
47 \r
48 DisplayConnectionWin::~DisplayConnectionWin()\r
49 {\r
50 }\r
51 \r
52 Any DisplayConnectionWin::GetDisplay()\r
53 {\r
54   return Any(mDisplay);\r
55 }\r
56 \r
57 void DisplayConnectionWin::ConsumeEvents()\r
58 {\r
59 }\r
60 \r
61 bool DisplayConnectionWin::InitializeEgl(EglInterface& egl)\r
62 {\r
63   EglImplementation& eglImpl = static_cast<EglImplementation&>( egl );\r
64 \r
65   if( !eglImpl.InitializeGles( reinterpret_cast<EGLNativeDisplayType>( mDisplay ) ) )\r
66   {\r
67     DALI_LOG_ERROR( "Failed to initialize GLES.\n" );\r
68     return false;\r
69   }\r
70 \r
71   return true;\r
72 }\r
73 \r
74 bool DisplayConnectionWin::InitializeGraphics()\r
75 {\r
76   auto eglGraphics = static_cast<EglGraphics *>( mGraphics );\r
77   EglImplementation& eglImpl = eglGraphics->GetEglImplementation();\r
78 \r
79   if( !eglImpl.InitializeGles( reinterpret_cast<EGLNativeDisplayType>( mDisplay ) ) )\r
80   {\r
81     DALI_LOG_ERROR( "Failed to initialize GLES.\n" );\r
82     return false;\r
83   }\r
84 \r
85   return true;\r
86 }\r
87 \r
88 void DisplayConnectionWin::SetSurfaceType( RenderSurface::Type type )\r
89 {\r
90   if( type == RenderSurface::WINDOW_RENDER_SURFACE )\r
91   {\r
92      mDisplay = GetDC( GetForegroundWindow() );\r
93   }\r
94 }\r
95 \r
96 void DisplayConnectionWin::SetGraphicsInterface( GraphicsInterface& graphics )\r
97 {\r
98   mGraphics = &graphics;\r
99 }\r
100 \r
101 } // namespace Adaptor\r
102 \r
103 } // namespace Internal\r
104 \r
105 } // namespace Dali\r