OSDN Git Service

何もないウインドウの表示
[winaudioj/winwrapper.git] / winwrapper / test_window.cpp
1 #include "StdAfx.h"\r
2 #include "test_window.h"\r
3 \r
4 #define BOOST_ASSIGN_MAX_PARAMS 7\r
5 #include <boost/assign.hpp>\r
6 #include <boost/assign/ptr_list_of.hpp>\r
7 #include <boost/assign/ptr_list_inserter.hpp>\r
8 #include <boost/foreach.hpp>\r
9 \r
10 #if _DEBUG\r
11 #define _CRTDBG_MAP_ALLOC\r
12 #include <crtdbg.h>\r
13 #define new new(_NORMAL_BLOCK, __FILE__, __LINE__)\r
14 #endif\r
15 \r
16 #include "sf_windows.h"\r
17 #include "toplevel_window.h"\r
18 #include "CommDlg.h"\r
19 #include "icon.h"\r
20 #include "timer.h"\r
21 #include "exception.h"\r
22 #include "application.h"\r
23 \r
24 #pragma comment( lib, "dxguid.lib" )\r
25 #pragma comment( lib, "d3d11.lib" )\r
26 #pragma comment( lib, "d3dx11.lib" )\r
27 #pragma comment( lib, "dxgi.lib" )\r
28 #pragma comment( lib, "d3dx9.lib" )   \r
29 #pragma comment( lib, "Shlwapi.lib" ) \r
30 \r
31 #define THROW_IFERR(hres) \\r
32   if (FAILED(hres)) { throw sf::win32_error_exception(hres); }\r
33 \r
34 #ifndef HINST_THISCOMPONENT\r
35 EXTERN_C IMAGE_DOS_HEADER __ImageBase;\r
36 #define HINST_THISCOMPONENT ((HINSTANCE)&__ImageBase)\r
37 #endif\r
38 \r
39 namespace sf \r
40 {\r
41 \r
42   HRESULT EnableBlurBehind(HWND hwnd)\r
43   {\r
44     HRESULT hr = S_OK;\r
45 \r
46     //Create and populate the BlurBehind structre\r
47     DWM_BLURBEHIND bb = {0};\r
48     //Enable Blur Behind and Blur Region;\r
49     bb.dwFlags = DWM_BB_ENABLE;\r
50     bb.fEnable = true;\r
51     bb.hRgnBlur = NULL;\r
52 \r
53     //Enable Blur Behind\r
54     hr = DwmEnableBlurBehindWindow(hwnd, &bb);\r
55     if (SUCCEEDED(hr))\r
56     {\r
57       //do more things\r
58     }\r
59     return hr;\r
60   }\r
61 \r
62   // \94Ä\97p\8fî\95ñ\8ai\94[\97p\r
63   struct mode_info \r
64   {\r
65     mode_info(const std::wstring& n,const std::wstring& d) : name(n),description(d) {}\r
66     std::wstring name;\r
67     std::wstring description;\r
68   };\r
69 \r
70   // \83f\83B\83X\83v\83\8c\83C\83\82\81[\83h\r
71   struct display_mode \r
72   {\r
73     display_mode(const std::wstring& n,const std::wstring& d) : name(n),description(d) {}\r
74     std::wstring name;\r
75     std::wstring description;\r
76   };\r
77 \r
78   std::vector<mode_info> display_modes = \r
79     boost::assign::list_of<mode_info>\r
80     (L"DXGI_FORMAT_UNKNOWN",L"\83t\83H\81[\83}\83b\83g\82ª\95s\96¾")\r
81     (L"DXGI_FORMAT_R32G32B32A32_TYPELESS",L"4 \90¬\95ª\81A128 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g 1")\r
82     (L"DXGI_FORMAT_R32G32B32A32_FLOAT",L"4 \90¬\95ª\81A128 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g 1")\r
83     (L"DXGI_FORMAT_R32G32B32A32_UINT",L"4 \90¬\95ª\81A128 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g 1")\r
84     (L"DXGI_FORMAT_R32G32B32A32_SINT",L"4 \90¬\95ª\81A128 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g 1")\r
85     (L"DXGI_FORMAT_R32G32B32_TYPELESS",L"3 \90¬\95ª\81A96 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
86     (L"DXGI_FORMAT_R32G32B32_FLOAT",L"3 \90¬\95ª\81A96 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g")\r
87     (L"DXGI_FORMAT_R32G32B32_UINT",L"3 \90¬\95ª\81A96 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
88     (L"DXGI_FORMAT_R32G32B32_SINT",L"3 \90¬\95ª\81A96 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
89     (L"DXGI_FORMAT_R16G16B16A16_TYPELESS",L"4 \90¬\95ª\81A64 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
90     (L"DXGI_FORMAT_R16G16B16A16_FLOAT",L"4 \90¬\95ª\81A64 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g")\r
91     (L"DXGI_FORMAT_R16G16B16A16_UNORM",L"4 \90¬\95ª\81A64 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
92     (L"DXGI_FORMAT_R16G16B16A16_UINT",L"4 \90¬\95ª\81A64 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
93     (L"DXGI_FORMAT_R16G16B16A16_SNORM",L"4 \90¬\95ª\81A64 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
94     (L"DXGI_FORMAT_R16G16B16A16_SINT",L"4 \90¬\95ª\81A64 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
95     (L"DXGI_FORMAT_R32G32_TYPELESS",L"2 \90¬\95ª\81A64 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
96     (L"DXGI_FORMAT_R32G32_FLOAT",L"2 \90¬\95ª\81A64 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g")\r
97     (L"DXGI_FORMAT_R32G32_UINT",L"2 \90¬\95ª\81A64 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
98     (L"DXGI_FORMAT_R32G32_SINT",L"2 \90¬\95ª\81A64 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
99     (L"DXGI_FORMAT_R32G8X24_TYPELESS",L"2 \90¬\95ª\81A64 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
100     (L"DXGI_FORMAT_D32_FLOAT_S8X24_UINT",L"32 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\90¬\95ª\81A\82¨\82æ\82Ñ 2 \82Â\82Ì\95\84\8d\86\82È\82µ\90®\90\94\90¬\95ª\82Å\82· (\92Ç\89Á\82Ì 32 \83r\83b\83g\82ð\8aÜ\82Þ)\81B")\r
101     (L"DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS",L"32 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\90¬\95ª\81A\82¨\82æ\82Ñ 2 \82Â\82Ì\8c^\82È\82µ\90¬\95ª\82Å\82· (\92Ç\89Á\82Ì 32 \83r\83b\83g\82ð\8aÜ\82Þ)\81B")\r
102     (L"DXGI_FORMAT_X32_TYPELESS_G8X24_UINT",L"32 \83r\83b\83g\8c^\82È\82µ\90¬\95ª\81A\82¨\82æ\82Ñ 2 \82Â\82Ì\95\84\8d\86\82È\82µ\90®\90\94\90¬\95ª\82Å\82· (\92Ç\89Á\82Ì 32 \83r\83b\83g\82ð\8aÜ\82Þ)\81B")\r
103     (L"DXGI_FORMAT_R10G10B10A2_TYPELESS",L"4 \90¬\95ª\81A32 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
104     (L"DXGI_FORMAT_R10G10B10A2_UNORM",L"4 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
105     (L"DXGI_FORMAT_R10G10B10A2_UINT",L"4 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
106     (L"DXGI_FORMAT_R11G11B10_FLOAT",L"3 \90¬\95ª\81A32 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g")\r
107     (L"DXGI_FORMAT_R8G8B8A8_TYPELESS",L"3 \90¬\95ª\81A32 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
108     (L"DXGI_FORMAT_R8G8B8A8_UNORM",L"4 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
109     (L"DXGI_FORMAT_R8G8B8A8_UNORM_SRGB",L"4 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94 sRGB \83t\83H\81[\83}\83b\83g")\r
110     (L"DXGI_FORMAT_R8G8B8A8_UINT",L"4 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
111     (L"DXGI_FORMAT_R8G8B8A8_SNORM",L"3 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
112     (L"DXGI_FORMAT_R8G8B8A8_SINT",L"3 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
113     (L"DXGI_FORMAT_R16G16_TYPELESS",L"2 \90¬\95ª\81A32 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
114     (L"DXGI_FORMAT_R16G16_FLOAT",L"2 \90¬\95ª\81A32 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g")\r
115     (L"DXGI_FORMAT_R16G16_UNORM",L"2 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
116     (L"DXGI_FORMAT_R16G16_UINT",L"2 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
117     (L"DXGI_FORMAT_R16G16_SNORM",L"2 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
118     (L"DXGI_FORMAT_R16G16_SINT",L"2 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
119     (L"DXGI_FORMAT_R32_TYPELESS",L"1 \90¬\95ª\81A32 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
120     (L"DXGI_FORMAT_D32_FLOAT",L"1 \90¬\95ª\81A32 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g")\r
121     (L"DXGI_FORMAT_R32_FLOAT",L"1 \90¬\95ª\81A32 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g")\r
122     (L"DXGI_FORMAT_R32_UINT",L"1 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
123     (L"DXGI_FORMAT_R32_SINT",L"1 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
124     (L"DXGI_FORMAT_R24G8_TYPELESS",L"2 \90¬\95ª\81A32 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
125     (L"DXGI_FORMAT_D24_UNORM_S8_UINT",L"\90[\93x\83`\83\83\83\93\83l\83\8b\82É 24 \83r\83b\83g\81A\83X\83e\83\93\83V\83\8b \83`\83\83\83\93\83l\83\8b\82É 8 \83r\83b\83g\82ð\8eg\97p\82·\82é 32 \83r\83b\83g Z \83o\83b\83t\83@\81\83t\83H\81[\83}\83b\83g")\r
126     (L"DXGI_FORMAT_R24_UNORM_X8_TYPELESS",L"1 \90¬\95ª\81A24 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94\82Æ\92Ç\89Á\82Ì\8c^\82È\82µ 8 \83r\83b\83g\82ð\8aÜ\82Þ\81A32 \83r\83b\83\83t\83H\81[\83}\83b\83g")\r
127     (L"DXGI_FORMAT_X24_TYPELESS_G8_UINT",L"1 \90¬\95ª\81A24 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g\82Æ\92Ç\89Á\82Ì 8 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\90¬\95ª\82ð\8aÜ\82Þ\81A32 \83r\83b\83\83t\83H\81[\83}\83b\83g")\r
128     (L"DXGI_FORMAT_R8G8_TYPELESS",L"2 \90¬\95ª\81A16 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
129     (L"DXGI_FORMAT_R8G8_UNORM",L"2 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
130     (L"DXGI_FORMAT_R8G8_UINT",L"2 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
131     (L"DXGI_FORMAT_R8G8_SNORM",L"2 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
132     (L"DXGI_FORMAT_R8G8_SINT",L"2 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
133     (L"DXGI_FORMAT_R16_TYPELESS",L"1 \90¬\95ª\81A16 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
134     (L"DXGI_FORMAT_R16_FLOAT",L"1 \90¬\95ª\81A16 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g")\r
135     (L"DXGI_FORMAT_D16_UNORM",L"1 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94\83t\83H\81[\83}\83b\83g")\r
136     (L"DXGI_FORMAT_R16_UNORM",L"1 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
137     (L"DXGI_FORMAT_R16_UINT",L"1 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
138     (L"DXGI_FORMAT_R16_SNORM",L"1 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
139     (L"DXGI_FORMAT_R16_SINT",L"1 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
140     (L"DXGI_FORMAT_R8_TYPELESS",L"1 \90¬\95ª\81A8 \83r\83b\83g\8c^\82È\82µ\83t\83H\81[\83}\83b\83g")\r
141     (L"DXGI_FORMAT_R8_UNORM",L"1 \90¬\95ª\81A8 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
142     (L"DXGI_FORMAT_R8_UINT",L"1 \90¬\95ª\81A8 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
143     (L"DXGI_FORMAT_R8_SNORM",L"1 \90¬\95ª\81A8 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
144     (L"DXGI_FORMAT_R8_SINT",L"1 \90¬\95ª\81A8 \83r\83b\83g\95\84\8d\86\95t\82«\90®\90\94\83t\83H\81[\83}\83b\83g")\r
145     (L"DXGI_FORMAT_A8_UNORM",L"1 \90¬\95ª\81A8 \83r\83b\83g\95\84\8d\86\82È\82µ\90®\90\94\83t\83H\81[\83}\83b\83g")\r
146     (L"DXGI_FORMAT_R1_UNORM",L"1 \90¬\95ª\81A1 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94\83t\83H\81[\83}\83b\83g 2.")\r
147     (L"DXGI_FORMAT_R9G9B9E5_SHAREDEXP",L"4 \90¬\95ª\81A32 \83r\83b\83g\95\82\93®\8f¬\90\94\93_\83t\83H\81[\83}\83b\83g 2.")\r
148     (L"DXGI_FORMAT_R8G8_B8G8_UNORM",L"4 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94\83t\83H\81[\83}\83b\83g 3")\r
149     (L"DXGI_FORMAT_G8R8_G8B8_UNORM",L"4 \90¬\95ª\81A32 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94\83t\83H\81[\83}\83b\83g 3")\r
150     (L"DXGI_FORMAT_BC1_TYPELESS",L"4 \90¬\95ª\81A\8c^\82È\82µ\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
151     (L"DXGI_FORMAT_BC1_UNORM",L"4 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
152     (L"DXGI_FORMAT_BC1_UNORM_SRGB",L"sRGB \83f\81[\83^\97p\82Ì 4 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
153     (L"DXGI_FORMAT_BC2_TYPELESS",L"4 \90¬\95ª\81A\8c^\82È\82µ\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
154     (L"DXGI_FORMAT_BC2_UNORM",L"4 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
155     (L"DXGI_FORMAT_BC2_UNORM_SRGB",L"sRGB \83f\81[\83^\97p\82Ì 4 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
156     (L"DXGI_FORMAT_BC3_TYPELESS",L"4 \90¬\95ª\81A\8c^\82È\82µ\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
157     (L"DXGI_FORMAT_BC3_UNORM",L"4 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
158     (L"DXGI_FORMAT_BC3_UNORM_SRGB",L"sRGB \83f\81[\83^\97p\82Ì 4 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
159     (L"DXGI_FORMAT_BC4_TYPELESS",L"1 \90¬\95ª\81A\8c^\82È\82µ\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
160     (L"DXGI_FORMAT_BC4_UNORM",L"1 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
161     (L"DXGI_FORMAT_BC4_SNORM",L"1 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
162     (L"DXGI_FORMAT_BC5_TYPELESS",L"2 \90¬\95ª\81A\8c^\82È\82µ\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
163     (L"DXGI_FORMAT_BC5_UNORM",L"2 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
164     (L"DXGI_FORMAT_BC5_SNORM",L"2 \90¬\95ª\81A\83u\83\8d\83b\83N\88³\8fk\83t\83H\81[\83}\83b\83g")\r
165     (L"DXGI_FORMAT_B5G6R5_UNORM",L"3 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94\83t\83H\81[\83}\83b\83g")\r
166     (L"DXGI_FORMAT_B5G5R5A1_UNORM",L"1 \83r\83b\83\83A\83\8b\83t\83@\82ð\83T\83|\81[\83g\82·\82é 4 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94\83t\83H\81[\83}\83b\83g")\r
167     (L"DXGI_FORMAT_B8G8R8A8_UNORM",L"8 \83r\83b\83\83A\83\8b\83t\83@\82ð\83T\83|\81[\83g\82·\82é 4 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94\83t\83H\81[\83}\83b\83g")\r
168     (L"DXGI_FORMAT_B8G8R8X8_UNORM",L"4 \90¬\95ª\81A16 \83r\83b\83g\95\84\8d\86\82È\82µ\90³\8bK\89»\90®\90\94\83t\83H\81[\83}\83b\83g")\r
169     (L"DXGI_FORMAT_FORCE_UINT",L"\83R\83\93\83p\83C\83\8b\8e\9e\82É\81A\82±\82Ì\97ñ\8b\93\8c^\82Ì\83T\83C\83Y\82ð 32 \83r\83b\83g\82É\82·\82é\82½\82ß\82É\92è\8b`\82³\82ê\82Ä\82¢\82Ü\82·\81B\82±\82Ì\92l\82ð\8ew\92è\82µ\82È\82¢\8fê\8d\87\81A\88ê\95\94\82Ì\83R\83\93\83p\83C\83\89\82Å\82Í\97ñ\8b\93\8c^\82ð 32 \83r\83b\83g\88È\8aO\82Ì\83T\83C\83Y\82Å\83R\83\93\83p\83C\83\8b\89Â\94\\82±\82Ì\92è\90\94\82ª\8eg\97p\82³\82ê\82é\82±\82Æ\82Í\82 \82è\82Ü\82¹\82ñ\81B");\r
170 \r
171   // \83X\83L\83\83\83\93\83\89\83C\83\93\8fî\95ñ\r
172 \r
173   std::vector<mode_info> scanline_orders = \r
174     boost::assign::list_of<mode_info>\r
175     (L"DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED",L"\91\96\8d¸\90ü\82Ì\8f\87\8f\98\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B")\r
176     (L"DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE",L"\83C\83\81\81[\83W\82Í\90æ\93ª\82Ì\91\96\8d¸\90ü\81`\8dÅ\8cã\82Ì\91\96\8d¸\90ü\82©\82ç\8dì\90¬\82³\82ê\81A\83X\83L\83b\83v\82³\82ê\82é\91\96\8d¸\90ü\82Í\82 \82è\82Ü\82¹\82ñ\81B")\r
177     (L"DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST",L"\83C\83\81\81[\83W\82ª\8fã\95\94\82Ì\83t\83B\81[\83\8b\83h\82©\82ç\8dì\90¬\82³\82ê\82Ü\82·\81B")\r
178     (L"DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST",L"\83C\83\81\81[\83W\82ª\89º\95\94\82Ì\83t\83B\81[\83\8b\83h\82©\82ç\8dì\90¬\82³\82ê\82Ü\82·\81B");\r
179 \r
180   // \83X\83P\81[\83\8a\83\93\83O\83p\83\89\83\81\81[\83^\r
181   std::vector<mode_info> scalings = boost::assign::list_of<mode_info>\r
182     (L"DXGI_MODE_SCALING_UNSPECIFIED",L"\83X\83P\81[\83\8a\83\93\83O\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B")\r
183     (L"DXGI_MODE_SCALING_CENTERED",L"\83X\83P\81[\83\8a\83\93\83O\82È\82µ\82ð\8ew\92è\82µ\82Ü\82·\81B\83C\83\81\81[\83W\82Í\83f\83B\83X\83v\83\8c\83C\82Ì\92\86\89\9b\82É\94z\92u\82³\82ê\82Ü\82·\81B\92Ê\8fí\81A\82±\82Ì\83t\83\89\83O\82Í\8cÅ\92è\83h\83b\83g\83s\83b\83\83f\83B\83X\83v\83\8c\83C (LED \83f\83B\83X\83v\83\8c\83C\82È\82Ç) \82É\8eg\97p\82µ\82Ü\82·\81B")\r
184     (L"DXGI_MODE_SCALING_STRETCHED",L"\8ag\91å\83X\83P\81[\83\8a\83\93\83O\82ð\8ew\92è\82µ\82Ü\82·\81B");\r
185 \r
186   struct simple_vertex\r
187   {\r
188     XMFLOAT3 pos;\r
189     XMFLOAT3 norm;\r
190     XMFLOAT2 tex;\r
191   };\r
192 \r
193   struct cb_never_changes\r
194   {\r
195     XMMATRIX mView;\r
196     XMFLOAT4 vLightDir;\r
197   };\r
198 \r
199   struct cb_change_on_resize\r
200   {\r
201     XMMATRIX mProjection;\r
202   };\r
203 \r
204   struct cb_changes_every_frame\r
205   {\r
206     XMMATRIX mWorld;\r
207     XMFLOAT4 vLightColor;\r
208 \r
209     //    XMFLOAT4 vMeshColor;\r
210   };\r
211 \r
212   test_window::test_window(\r
213     const std::wstring& title,\r
214     const std::wstring& name,bool fit_to_display,\r
215     float width,float height) : base_win32_window_t(title,name,fit_to_display,width,height)\r
216 \r
217   {\r
218     register_class();\r
219     create();\r
220     show();\r
221     update();\r
222   }\r
223 \r
224 \r
225   test_window::~test_window()\r
226   {\r
227   }\r
228 \r
229   void test_window::create()\r
230   {\r
231     create_window();\r
232   }\r
233 \r
234   void test_window::create_window()\r
235   {\r
236 \r
237     // Window\82ð\8dì\90¬\82·\82é\r
238     CreateWindowEx(\r
239       WS_EX_APPWINDOW,\r
240       name_.c_str(),\r
241       title_.c_str(),\r
242       WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME,\r
243       CW_USEDEFAULT,\r
244       CW_USEDEFAULT,\r
245       static_cast<uint32_t>(dpi_.scale_x(width_)),\r
246       static_cast<uint32_t>(dpi_.scale_x(height_)),\r
247       NULL,\r
248       NULL,\r
249       HINST_THISCOMPONENT,\r
250       this\r
251       );\r
252   };\r
253 \r
254   base_win32_window_t::result_t test_window::on_create(CREATESTRUCT *p)\r
255   {\r
256     return 0;\r
257   }\r
258 \r
259 }\r