U E D R , A S I H C RSS

2d In Direct3d/Chapter2

Creating a Device

ด๋ฒˆ •„—„œ •  €
  • IDirect3dDevice8 ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•
  • Viewport๋ฅผ ƒ„•˜  ‚ฌšฉ•˜๋Š” ๋ฐฉ๋ฒ•
  • Viewport๋ฅผ ด๋ฆฌ–ด•˜๋Š” ๋ฐฉ๋ฒ•
  • ™”๋ฉด„ Present•˜๋Š” ๋ฐฉ๋ฒ•
  • ‹ค๋ฅธ(ž˜๋ชป๋œ) Present ŒŒ๋ผ๋ฉ”„ฐ๋“ค„ ๋ฆฌ…‹•˜๋Š” ๋ฐฉ๋ฒ•

IDirect3DDevice ฒด๋ฅผ ƒ„

ฒด๋Š” IDirect3D ฒด™€๋Š” ๋‹ฌ๋ฆฌ ‹งˆ „ •˜๋Š” ฒดด๋‹ค. ฒด๋ฅผ ƒ„•˜๋Š” •ˆ˜๋Š” ๋‹Œณผ ฐ™๋‹ค. IDirect3D ฒด๋Š” ฒƒ„ ƒ„•˜ธฐ œ„•กดžฌ•œ‹  •ด๋„ ณผ–ธ•„‹ˆ๋‹ค.
~cpp 
HRESULT IDirect3D8::CreateDevice(
	UINT Adapter, // –ด๋Œ‘„˜ ๋ฒˆ˜ธ, D3DADAPTER_DEFAULT๋ฅผ ‚ฌšฉ
	D3DDEVTYPE DeviceType, //๋””๋ฐ”Šค˜ ƒ€ž„, D3DDEVTYPE_HAL„ ‚ฌšฉ
	HWND hFocusWindow, // ˜„žฌ ฐฝ˜ HWND๋ฅผ ๋„–ดค€๋‹ค.
	DWORD BehaviorFlag,
	D3DPRESENT_PARAMETERS* pPresentationParameters,
	IDirect3DDevice8** ppReturnedDeviceInterface
);
 
  • ฒฐณผ๋Š” —ญ‹œ „ณต•˜๋ฉด D3D_OK๋ฅผ ๋ฆฌ„•œ‹ค.
  • BehaviorFlag—๋Š” ๋ฒ„…Šค๋ฅผ ˜๋ฆฌ•˜๋Š” ๋ฐฉ๋ฒ•„„–ดค€๋‹ค. D3DCREATE_HARDWARE_VERTEXPROCESSING, D3DCREATE_MIXED_VERTEXPROCESSING, D3DCREATE_SOFTWARE_VERTEXPROCESSING‘ •œฐ€ง€๋ฅผ ‚ฌšฉ•œ‹ค. (‚ฌ‹€ ๋” ๋งŽ€ ˜…˜žˆ๋‹ค.) ๋Œ€œ ๋งˆง€๋ง‰ SOFTWARE๋ฅผ ‚ฌšฉ•œ‹ค.
  • pPresentationParameters๋Š” D3DPRESENT_PARAMERTERS˜ ฌ„˜•ด๋‹ค.  €ฒƒ€ Device˜ ˜•ƒœ๋ฅผ ฒฐ ••˜๋Š” ตฌกฐฒดด๋‹ค.
  • ๋งˆง€๋ง‰ ž๋กœ๋Š” ƒ„ฑ๋  ๋””๋ฐ”Šค˜ ฒด๋ฅผ ๋„–ดค€๋‹ค.
  • ‹‚ฌšฉ•œ ›„๋Š” ผญ!! Release()•ˆ˜๋ฅผ ‚ฌšฉ•˜—ฌ ‚ฌšฉ„ • œ‹œ‚จ๋‹ค.

    == Viewport˜ „Œ… =
    ฌŠธ๋Š” ‹ œ œผ๋กœ Œ๋”๋ง„ •˜๋Š” ง€—ญด๋‹ค. ๋ฌŠธฐ€ —†ด๋Š” ๋””๋ฐ”Šค๋Š” –ด๋””— ๋ Œ๋”๋ง„ • ง€ ๋ชจ๋ฅธ๋‹ค.
    ~cpp 
    HRESULT IDirect3DDevice8::SetViewport(
    	CONST D3DVIEWPORT8* pViewport
    );
     
  • ฒฐณผ๋Š” „ณต•˜๋ฉด D3D_OK๋ฅผ ๋ฆฌ„•œ‹ค.
  • D3DVIEWPORT8 ฒด๋Š” ๋ฉค๋ฒ„๋Š” ๋‹Œณผ ฐ™๋‹ค.
    ~cpp 
    X = 0: ขŒ‘œ„˜ ™ผชฝ
    Y = 0: ขŒ‘œฒŒ˜ ˜ค๋ฅธชฝ ”ฝ…€
    Width = 800: (๋Œ€œ ™”๋ฉด˜)๋„“ด
    Height = 600: (๋Œ€œ ™”๋ฉด˜) ๋†’ด
    MinZ = 0.0f : Z˜ œ†Œฐ’. ๋Œ€œ 0.0f
    MaxZ = 1.0f : Z˜ œ๋Œ€ฐ’, ๋Œ€œ 1.0f
     

  • Direct3D—„œ ‚ฌšฉ•˜๋Š” ƒ‰ƒ

    Direct3D—„œ ‚ฌšฉ•˜๋Š” ƒ‰ƒ€ D3DCOLOR ด๋‹ค. (3D—„œ๋Š” COLORREF˜€๋‹ค.)  €ฒƒ„  •˜•˜๋Š” ๋งคฌ๋กœ—๋Š” ๋‹Œณผ ฐ™€ „ฐ€ง€ฐ€ žˆ๋‹ค.
    ~cpp 
     RGB(r, g, b); // ๋ณด†ต ‚ฌšฉ•˜๋Š” ƒ‰ƒ ๋งคฌ๋กœ
     D3DCOLOR_ARGB(a, r, g, b); // ๋งจ •ž— •ŒŒŒฐ’ด ๋“ค–ด„‹ค.
     D3DCOLOR_RGBA(r, g, b, a); // ๋งจ ๋’ค— •ŒŒŒฐ’ด ๋“ค–ด„‹ค.
     D3DCOLOR_XRGB(r, g, b); // ๋ณด†ต ‚ฌšฉ•˜๋Š” ๋งคฌ๋กœ™€ ‚ฌšฉ๋ฒ•ฐ™๋‹ค. ด๋•Œ a ฐ’€ 0•„‹Œ 255(œ๋Œ€ฐ’)ด ๋“ค–ด„‹ค.
     

    Viewport˜ ด๋ฆฌ–ด

    ๋ฐฑ๋ฒ„ผ๋ฅผ ‹ง€šฐ๋Š” •ˆ˜๋ฅผ ๋ณดž
    ~cpp 
    HRESULT IDirect3DDevice::Clear(
    	DWROD count,
    	CONST D3DRECT* pRects,
    	DWORD Flags,
    	D3DCOLOR Color,
    	float Z,
    	DWORD Stencil
    );
     
  • „ณต•˜๋ฉด D3D_OKฐ€ ๋ฆฌ„ด๋œ‹ค.
  • •žชฝ˜‘ ๋ณ€ˆ˜๋Š” •˜ ›€งธ๋‹ค. count—๋Š” 0„„œผ๋ฉด ๋˜  pRect๋Š” NULL„„–ดฃผ๋ฉด ๋œ‹ค. countฐ€ 0•„‹ˆ๋ผ๋ฉด pRect—๋Š” count˜ œˆ˜๋งŒผ D3DRECT˜ ๋ฐฐ—ดด ๋“ค–ด„‹ค. ธ Rect๋ถ€๋ถ„๋งŒ ด๋ฆฌ–ด•  ˆ˜ žˆ๋‹ค.
  • D3DCLEAR_STENCIL, D3DCLEAR_TARGET, D3DCLEAR_ZBUFFER „œฐ€ žˆ๋Š”๋ฐ, ๋ณด†ต D3DCLEAR_TARGET๋ฅผ ‚ฌšฉ•œ‹ค.
  • „ค๋ฒˆงธž—๋Š” ƒ‰„ ง€ ••œ‹ค.
  • Z™€ Stencil€ 12žฅ—„œ.. ( ธ๋ƒฅ 0„„ž ง€ธˆ€..)

  • Present The Scene

    ๋ฐฑ๋ฒ„ผ— ธ๋ฆผด ๋“ค–ด˜ฑฐ๋‚˜ ด๋ฆฌ–ด •œ ฒฝšฐ—” ฒƒ„ •žœผ๋กœ ๋Œ ๋‚˜™€••œ‹ค. ฒƒ„ •˜๋Š” •ˆ˜ฐ€ Present•ˆ˜ด๋‹ค.
    ~cpp 
    HRESULT IDirect3DDevice8::Present(
    	CONST RECT* pSourceRect,
    	CONST RECT* pDestRect,
    	HWND hDestWindowOverride,
    	CONST RGNDATA* pDirtyRegion
    )
     
  • ฒฐณผฐ’€ D3D_OK, ‹Œจ–ˆ„ฒฝšฐ—” D3D_INVALIDCALLด๋‚˜ D3D_DEVICELOSTฐ€ ๋ฆฌ„ด๋œ‹ค.
  • „ž ๋ชจ๋‘ NULL„„–ดฃผ๋ฉด ๋œ‹ค. (”„ ˆ  Šธ๋Š” •œ ™”๋ฉด๋‹œ„๋กœ •˜๋Š” ฒฝšฐฐ€ ๋Œ€๋ถ€๋ถ„ธฐ ๋•Œ๋ฌธด๋‹ค.)

  • Valid XHTML 1.0! Valid CSS! powered by MoniWiki
    last modified 2021-02-07 05:22:14
    Processing time 0.0154 sec