Upstream version 10.38.222.0
[platform/framework/web/crosswalk.git] / src / third_party / angle / tests / angle_tests / win32 / ANGLETest_win32.cpp
1 #include "ANGLETest.h"
2
3 #include <windows.h>
4
5 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
6 {
7     switch (message)
8     {
9       case WM_CLOSE:
10         PostQuitMessage(0);
11         return 1;
12
13       default:
14         break;
15     }
16
17     return DefWindowProc(hWnd, message, wParam, lParam);
18 }
19
20 static const PTCHAR GetTestWindowName()
21 {
22     return TEXT("ANGLE_TEST");
23 }
24
25 bool ANGLETest::InitTestWindow()
26 {
27     WNDCLASS sWC;
28     sWC.style = CS_OWNDC;
29     sWC.lpfnWndProc = WndProc;
30     sWC.cbClsExtra = 0;
31     sWC.cbWndExtra = 0;
32     sWC.hInstance = NULL;
33     sWC.hIcon = NULL;
34     sWC.hCursor = LoadCursor(NULL, IDC_ARROW);
35     sWC.lpszMenuName = NULL;
36     sWC.hbrBackground = NULL;
37     sWC.lpszClassName = GetTestWindowName();
38
39     if (!RegisterClass(&sWC))
40     {
41         return false;
42     }
43
44     mNativeWindow = CreateWindow(GetTestWindowName(), NULL, WS_BORDER, 128, 128, 128, 128, NULL, NULL, NULL, NULL);
45
46     SetWindowLong(mNativeWindow, GWL_STYLE, 0);
47     ShowWindow(mNativeWindow, SW_SHOW);
48
49     mNativeDisplay = GetDC(mNativeWindow);
50     if (!mNativeDisplay)
51     {
52         DestroyTestWindow();
53         return false;
54     }
55
56     return true;
57 }
58
59 bool ANGLETest::DestroyTestWindow()
60 {
61     if (mNativeDisplay)
62     {
63         ReleaseDC(mNativeWindow, mNativeDisplay);
64         mNativeDisplay = 0;
65     }
66
67     if (mNativeWindow)
68     {
69         DestroyWindow(mNativeWindow);
70         mNativeWindow = 0;
71     }
72
73     UnregisterClass(GetTestWindowName(), NULL);
74
75     return true;
76 }
77
78 bool ANGLETest::ReizeWindow(int width, int height)
79 {
80     RECT windowRect;
81     if (!GetWindowRect(mNativeWindow, &windowRect))
82     {
83         return false;
84     }
85
86     if (!MoveWindow(mNativeWindow, windowRect.left, windowRect.top, width, height, FALSE))
87     {
88         return false;
89     }
90
91     return true;
92 }