|
|
|
|
 |
|
|
|
|
|
? - .
DirectX 9c C++
MSVS 2005 . |
|
|
|
|
|
[]
[ 2] [] |
|
|
|
|
|
- 2 |
|
|
|
|
|
,
wWinMain
, ,
C++ DirectX- .
DirectX 9c C++, , ,
,
. |
|
|
|
|
|
- -
wWinMain CreateDevice DirectX 9c SDK,
DirectX - . |
|
|
|
|
|
wWinMain
wc.lpfnWndProc
= MsgProc; |
|
|
|
|
|
CreateDevice.cpp - - |
|
|
|
|
|
 |
|
|
|
|
|
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 );
} |
|
|
|
|
|
Windows-, DirectX - ,
- ,
, "" -
Idle.
,
.
- ,
- -
- .
-
,
, . |
|
|
|
|
|
MsgProc -
- WM_DESTROY
WM_PAINT
- -
DefWindowProc(
hWnd, msg, wParam, lParam ); |
|
|
|
|
|
- WM_DESTROY
Cleanup PostQuitMessage
WM_PAINT Render,
ValidateRect
return
0 - . . 0 MsgProc
,
- -
return
DefWindowProc( hWnd, msg, wParam, lParam ); |
|
|
|
|
|
, ,
-
InitD3D
- wWinMain,
Cleanup
Render.
ValidateRect, PostQuitMessage
MSVS - MSDN - Microsoft Developer
Network. MSVS
. - -
- , -
!!! |
|
|
|
|
|
InitD3D
HRESULT
InitD3D( HWND hWnd )
{
// D3D
if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
return E_FAIL;
// CreateDevice
D3DPRESENT_PARAMETERS d3dpp;
//
d3dpp
ZeroMemory( &d3dpp, sizeof( d3dpp ) );
//
d3dpp.Windowed = TRUE;
//
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
//
, . .
//
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
//
Direct3D, -,
//.
. ,
//, hWnd,
//
d3dpp g_pd3dDevice
//
IDirect3DDevice9
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pd3dDevice ) ) )
{
return E_FAIL;
}
//
- S_OK
return S_OK;
} |
|
|
|
|
|
Cleanup Render -
//
Cleanup D3DDevice D3D
VOID
Cleanup()
{
if( g_pd3dDevice != NULL )
g_pd3dDevice->Release();
if( g_pD3D != NULL )
g_pD3D->Release();
}
//
Render
VOID
Render()
{
//
IDirect3DDevice9 NULL -
if( NULL == g_pd3dDevice )
return;
//
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0,
255 ), 1.0f, 0 );
//
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
//
//
g_pd3dDevice->EndScene();
}
//
()
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
} |
|
|
|
|
|
FrameMove -
. |
|
|
|
|
|
- F7
, CreateDevice.
- |
|
|
|
|
|
C:\DXSDK_Aug2008\Samples\C++\Direct3D\Tutorials\Tut01_CreateDevice\Debug |
|
|
|
|
|
CreateDevice.exe .
, ,
!!! DirectX SDK
,
, , , DirectX SDK
-
C:\DXSDK_Aug2008
DX SDK
, !!! |
|
|
|
|
|
[]
[ 2] [] |
|
|
|
|