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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
// Medieval
#include <d3d9.h>
// Devices
LPDIRECT3D9 g_pD3 = NULL;
LPDIRECT3DDEVICE9 g_pD3D = NULL;
// F: Init()
// Parameters: HWND
// By SullY
HRESULT Init( HWND hWnd)
{
if( NULL==( g_pD3 = Direct3DCreate9( D3D_SDK_VERSION)))
return E_FAIL;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
if( FAILED( g_pD3->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pD3D)))
return E_FAIL;
return S_OK;
}
// F: CleanUp()
// Parameters: No
// By SullY
VOID CleanUp()
{
if( g_pD3 != NULL)
g_pD3->Release();
if( g_pD3D != NULL)
g_pD3D->Release();
}
// F: Render()
// Parameters: No
// By SullY
VOID Render()
{
if( NULL == g_pD3D)
return;
g_pD3D->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, 255), 1.0f, 0);
if( SUCCEEDED( g_pD3D->BeginScene()))
{
g_pD3D->EndScene();
}
g_pD3D->Present( NULL, NULL, NULL, NULL);
}
// F: MsgProc()
// Parameters: HWND, UINT, WPARAM, LPARAM
// By SullY
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
CleanUp();
PostQuitMessage(0);
return 0;
case WM_PAINT:
Render();
ValidateRect( hWnd, NULL);
return 0;
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
// F: wWinMain()
// Parameters:
// By SullY
INT WINAPI wWinMain( HINSTANCE hInst, HINSTANCE, LPWSTR, INT)
{
UNREFERENCED_PARAMETER( hInst );
WNDCLASSEX wc ={ sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle( NULL ), NULL, NULL, NULL, NULL, L"Medieval", NULL};
RegisterClassEx( &wc );
HWND hWnd = CreateWindow( L"Medieval", L"Medieval", WS_OVERLAPPEDWINDOW, 300, 300 , 300, 300, NULL, NULL, wc.hInstance, NULL);
if( SUCCEEDED( Init( hWnd)))
{
ShowWindow( hWnd, SW_SHOWDEFAULT);
UpdateWindow( hWnd );
MSG msg;
while( GetMessage( &msg, NULL, 0, 0))
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
UnregisterClass( L"Medieval", wc.hInstance );
return 0;
}
|