?
??1
#include
<
d3dx9.h
>
??2
#include
<
d3d9.h
>
??3
??4
??5
??6
#pragma?comment(lib,
"
d3dx9.lib
"
)
??7
#pragma?comment(lib,
"
d3d9.lib
"
)
??8
?
??9
?10
#define
?MAX_LOADSTRING?100
?11
?12
?13
HINSTANCE?hInst;????????
?14
TCHAR?szTitle[MAX_LOADSTRING]
=
TEXT(
"
D3D
"
);
?15
TCHAR?szWindowClass[MAX_LOADSTRING]
=
TEXT(
"
HelloD3D
"
);??
?16
?17
?18
?19
ATOM????MyRegisterClass(HINSTANCE?hInstance);
?20
BOOL????InitInstance(HINSTANCE,?
int
);
?21
LRESULT?CALLBACK?WndProc(HWND,?UINT,?WPARAM,?LPARAM);
?22
?23
?24
?25
HWND?g_hWnd
=
NULL;
?26
?27
IDirect3D9?
*
pD3D
=
NULL;
?28
IDirect3DDevice9?
*
pDevice
=
NULL;
?29
?30
?31
bool
?InitD3D();
?32
void
?Release();
?33
void
?Render();
?34
?35
?36
?37
int
?APIENTRY?WinMain(HINSTANCE?hInstance,
?38
?????????????????????HINSTANCE?hPrevInstance,
?39
?????????????????????LPSTR?????lpCmdLine,
?40
?????????????????????
int
???????nCmdShow)
?41
{
?42
??MSG?msg;
?43
?44
??MyRegisterClass(hInstance);
?45
?46
??
if
?(
!
InitInstance?(hInstance,?nCmdShow))
?47
??
{
?48
??
return
?FALSE;
?49
??}
?50
?51
??
if
(
!
InitD3D())
?52
??
{
?53
???
return
?
-
1
;
?54
??}
?55
?56
??ZeroMemory(
&
msg,
sizeof
(msg));
?57
?58
??
while
?(msg.message
!=
WM_QUIT)
?59
??
{
?60
????
if
(PeekMessage(
&
msg,NULL,
0
,
0
,PM_REMOVE))
?61
????
{
?62
?????TranslateMessage(
&
msg);
?63
?????DispatchMessage(
&
msg);
?64
?
?65
????}
?66
????
else
?67
????
{
?68
???Render();
?69
????}
?70
??}
?71
?72
??
return
?(
int
)msg.wParam;
?73
}
?74
?75
?76
ATOM?MyRegisterClass(HINSTANCE?hInstance)
?77
{
?78
?WNDCLASSEX?wcex;
?79
?80
?wcex.cbSize?
=
?
sizeof
(WNDCLASSEX);
?81
?82
?wcex.style???
=
?CS_HREDRAW?
|
?CS_VREDRAW;
?83
?wcex.lpfnWndProc?
=
?(WNDPROC)WndProc;
?84
?wcex.cbClsExtra??
=
?
0
;
?85
?wcex.cbWndExtra??
=
?
0
;
?86
?wcex.hInstance??
=
?hInstance;
?87
?wcex.hIcon???
=
?NULL;
?88
?wcex.hCursor??
=
?LoadCursor(NULL,?IDC_ARROW);
?89
?wcex.hbrBackground?
=
?(HBRUSH)(COLOR_WINDOW
+
1
);
?90
?wcex.lpszMenuName?
=
?NULL;
?91
?wcex.lpszClassName?
=
?szWindowClass;
?92
?wcex.hIconSm??
=
?NULL;
?93
?
return
?RegisterClassEx(
&
wcex);
?94
}
?95
?96
?97
BOOL?InitInstance(HINSTANCE?hInstance,?
int
?nCmdShow)
?98
{
?99
???HWND?hWnd;
100
101
???hInst?
=
?hInstance;
102
103
???hWnd?
=
?CreateWindow(szWindowClass,?szTitle,?WS_OVERLAPPEDWINDOW,
104
??????CW_USEDEFAULT,?
0
,?CW_USEDEFAULT,?
0
,?NULL,?NULL,?hInstance,?NULL);
105
106
???
if
?(
!
hWnd)
107
???
{
108
??????
return
?FALSE;
109
???}
110
111
???g_hWnd
=
hWnd;
112
113
???ShowWindow(hWnd,?nCmdShow);
114
???UpdateWindow(hWnd);
115
116
???
return
?TRUE;
117
}
118
119
120
LRESULT?CALLBACK?WndProc(HWND?hWnd,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)
121
{
122
?
switch
?(message)
123
?
{
124
??
case
?WM_DESTROY:
125
???Release();
126
???PostQuitMessage(
0
);
127
???
break
;
128
??
default
:
129
???
return
?DefWindowProc(hWnd,?message,?wParam,?lParam);
130
???}
131
???
return
?
0
;
132
}
133
134
135
void
?Release()
136
{
137
?
if
(pDevice
!=
NULL)
138
??pDevice
->
Release();
139
?
if
(pD3D
!=
NULL)
140
??pD3D
->
Release();
141
}
142
143
144
bool
?InitD3D()
145
{
146
??pD3D
=
Direct3DCreate9(D3D_SDK_VERSION);
147
148
??
if
(pD3D
==
NULL)
149
??
{
150
???MessageBox(NULL,TEXT(
"
pD3D?init?failed
"
),TEXT(
"
error
"
),MB_OK);
151
???
return
?
false
;
152
??}
153
154
??D3DPRESENT_PARAMETERS?d3dpp;
155
156
??ZeroMemory(?
&
d3dpp,?
sizeof
(d3dpp)?);
157
??d3dpp.Windowed???
=
?TRUE;
158
??d3dpp.SwapEffect?
=
?D3DSWAPEFFECT_COPY;
159
160
161
162
??HRESULT?hr;
163
??hr
=
pD3D
->
CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,
164
?????g_hWnd,
165
?????D3DCREATE_SOFTWARE_VERTEXPROCESSING,
166
?????
&
d3dpp,
167
?????
&
pDevice);
168
169
??
if
(FAILED(hr))
170
??
{
171
???MessageBox(NULL,TEXT(
"
create?device?failed
"
),TEXT(
"
error
"
),MB_OK);
172
???
return
?
false
;
173
??}
174
175
??
return
?
true
;
176
}
177
178
179
180
void
?Render()
181
{
182
?
if
(pDevice
==
NULL)
183
?
{
184
?
return
?;
185
?}
186
187
?pDevice
->
Clear(
1
,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(
0
,
0
,
0
),
1.0f
,
0
);
188
189
?pDevice
->
Present(NULL,NULL,NULL,NULL);
190
191
}
192
193
|
|
隨筆:64
文章:15
評論:65
引用:0
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 |
|
留言簿(14)
隨筆分類
隨筆檔案
收藏夾
最新隨筆
最新評論

閱讀排行榜
|
|