U E D R , A S I H C RSS

Direct Draw/DD Util


1. ๊ฐœš”

TheWarOfGenesis2RŽ˜ดง€˜ ๊ฐœ„— ๋”ฐ๋ผ ‚ฌšฉ๋ฒ•„ ๋ชจ๋‹ˆ๋‹ค.

2. DDUtil

DXSDK—„œ  œ๊ณต•˜๋Š” •จˆ˜ ๋ชจŒง‘.(ใ…ก.ใ…กa) (Direct Draw ˜ Wrapping Class ๊ฐ€ ๋˜๊ฒ ง€š”.)

ƒ๊ฐ๋ณด๋‹ค ˆ๊ธฐ™”•˜๊ธฐ ๊นŒ๋‹ค๋กœšด DX˜ ‚ฌšฉ„ ๊ทธ๋‚˜๋งˆ Žธ•˜๊ฒŒ •ดฃผ๋Š” ๊ฒƒ๋“คด๋‹ค

DDUtil•ˆ—๋Š” ๋‘๊ฐœ˜ ด๋ž˜Šค๊ฐ€ žˆ๋‹ค

2.1. CDisplay

DirectDraw˜ ƒ„๊ณผ Surface™€ —ฐ๊ฒฐ„ ๋‹ด๋‹น•˜๋Š” Class
CDisplay˜ •จˆ˜—๋Š” ๋‹คŒ๊ณผ ๊ฐ™€ ๊ฒƒด žˆ๋‹ค.

1. ˆ๊ธฐ™”
~cpp 
CreateFullScreenDisplay(HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP) 
DirectDraw žฅน˜๋ฅผ ’€Šคฌ๋ฆฐ ๋ชจ๋“œ๋กœ ƒ„•œ๋‹ค.
  • hWnd : ˜„žฌ œˆ๋„šฐ˜ •ธ๋“ค
  • dwWidth : ƒ„•  ๊ฐฒด˜ ๋„“ด
  • dwHeight : ƒ„•  ๊ฐฒด˜ ๋†’ด
  • dwBPP : ƒ„•  ๊ฐฒด˜ ƒ‰ƒˆ˜ (8, 16, 24, 32..)

~cpp 
CreateWindowedDisplay HWND hWnd, DWORD dwWidth, DWORD dwHeight) 
œ„™€ ๊ฐ™€ ผ„ •˜ง€๋งŒ ฐฝ๋ชจ๋“œ๋กœ ƒ„•œ๋‹ค. ƒ‰ƒˆ˜๊ฐ€ —†๋Š” ๊ฒƒ€ œˆ๋„šฐ ๋ฐ”ƒ•™”๋ฉด˜ ƒ‰ƒ ˆ˜๋ฅผ ๋”ฐ๋ผ๊ฐ€๊ธฐ ๋•Œ๋ฌธด๋‹ค.

2. Surfaceƒ„
„œ”ผŠค๋Š” ๊ทธ๋ฆผ„ ๋‹ด๋Š” ๊ทธ๋ฆ‡ด๋‹ค.

~cpp 
CreateSurface( CSurface **ppSurface, DWORD dwWidth, DWORD dwHeight) 
๋ณด†ต˜ „œ”ผŠค๋ฅผ ƒ„•œ๋‹ค.

~cpp 
CreateSurfaceFromBitmap(CSurface** ppSurface, TCHAR* strBMP, DWORD dwDesiredWidth, DWORD dwDesiredHeight) 
๋น„Šธ๋งตœผ๋กœ๋ถ€„„œ”ผŠค๋ฅผ ƒ„•œ๋‹ค.
  • strBMP : ๋น„Šธ๋งต ŒŒผ˜ ŒŒผ๋ช…„„ฃ๋Š”๋‹ค.
  • „“ด™€ ๋†’ด๋Š” ๋น„Šธ๋งต˜ ฌ๊ธฐ๋ฅผ ๋„–ดฃผ๋ฉด ๋œ๋‹ค.

~cpp 
CreateSurfaceFromText( CSurface** ppSurface, HFONT hFont, TCHAR* strText, COLORREF crBackground, COLORREF crForeground) 
๋ฌธž—ด๋กœ๋ถ€„„œ”ผŠค๋ฅผ ƒ„•œ๋‹ค.

3. Œ”๋ ˆŠธ
ƒ‰ƒˆ˜๊ฐ€  € ๋น„Šธ๋งต˜ ๊ฒฝšฐ—๋Š” Œ”๋ ˆŠธ๋ฅผ ง€ ••ด ฃผ–ด•ผ •œ๋‹ค.

~cpp 
CreatePaletteFromBitmap( LPDIRECTDRAWPALETTE *ppPalette, const TCHAR *strBMP)
Šน ••œ ๋น„Šธ๋งต ŒŒผ๋กœ๋ถ€„Œ”๋ ˆŠธ๋ฅผ –ป–ด˜จ๋‹ค.

~cpp 
SetPalette( LPDIRECTDRAWPALETTE pPalette)
CDisplay — Šน ••œ Œ”๋ ˆŠธ๋ฅผ „Œ…•œ๋‹ค.

4. „œ”ผŠค(๊ทธ๋ฆผ)˜ ถœ๋ ฅ
„œ”ผŠค˜ ๊ทธ๋ฆผ„ ๋ฐ ๋ฒ„ผ๋กœ ถœ๋ ฅ•œ๋‹ค.

~cpp 
ShowBitmap(HBITMAP hbm, LPDIRECTDRAWPALETTE pPalette)
HBITMAP˜•˜ ๋น„Šธ๋งต„ Šน ••œ Œ”๋ ˆŠธ๋ฅผ †ต•ด ™”๋ฉด— ถœ๋ ฅ•œ๋‹ค.

๋‹น—ฐžˆ  „— žˆ๋˜ ๊ทธ๋ฆผ€ ง€›Œ„๋‹ค.

~cpp 
ColorKeyBlt(DWORD x, DWORD y, LPDIRECTDRAWSURFACE7 pdds, RECT *prc)
ปฌ๋Ÿฌ‚ค(ˆฌ๋ช…ƒ‰)๋ฅผ ๊ฐ€„ „ ™”๋ฉด— ถœ๋ ฅ•œ๋‹ค. prc๋Š” ‚ฌšฉ•˜ง€ •Š๋Š”๋‹ค.

~cpp 
Blt(DWORD x, DWORD y, LPDIRECTDRAWSURFACE7 pdds, RECT *prc, DWORD dwFlags)
ปฌ๋Ÿฌ‚ค๋ฅผ ๋บ€„ ™”๋ฉด— ถœ๋ ฅ•œ๋‹ค. ๋งŒ•ฝ dwFlags— DDBLTFAST_SRCCOLORKEY๋ฅผ ๋„–ดค€๋‹ค๋ฉด ColorKeyBlt™€ ๊ฐ™€ šจ๊ณผ๋ฅผ ๋‚ธ๋‹ค.

—ญ‹œ prc๋Š” ‚ฌšฉ•˜ง€ •Š๋Š”๋‹ค.

~cpp 
Blt(DWORD x, DWORD y, CSurface *pSurface, RECT *prc)
CSurface˜•„ ™”๋ฉด— ถœ๋ ฅ•œ๋‹ค. prc๋Š” ‚ฌšฉ•˜ง€ •Š๋Š”๋‹ค.
5. ™”๋ฉด˜ ๊ฐ‹ 
œ„˜ Blt•จˆ˜๋“ค€ ๋ฐ ๋ฒ„ผ— ถœ๋ ฅ•˜๋Š” •จˆ˜๋“คด๋‹ค. ๋ชจ๋“  ๋‚ดšฉ„ ๋ฐ ๋ฒ„ผ— ถœ๋ ฅ–ˆœผ๋ฉด ๋‹คŒ •จˆ˜๋“ค„ ‚ฌšฉ•˜ž

~cpp 
Present()
๋ฐ ๋ฒ„ผ— ถœ๋ ฅ๋˜–ดžˆ๋Š” ๋‚ดšฉ„ ˜„žฌ ™”๋ฉดœผ๋กœ ถœ๋ ฅ•œ๋‹ค. ™”๋ฉด„ ๋ชจ๋‘ ™„„•œ ›„— ‚ฌšฉ•œ๋‹ค.

~cpp 
Clear()
๋ฐ ๋ฒ„ผ˜ ๋‚ดšฉ„ ๋ชจ๋‘ ง€šด๋‹ค.

~cpp 
UpdateBounds()
CDislpay˜ ๋ฉค๋ฒ„ m_rcWindow๋ฅผ ๊ฐ‹ •œ๋‹ค.  € CRect˜• ๋ณ€ˆ˜—๋Š” œˆ๋„šฐ˜ ฌ๊ธฐ๊ฐ€ ๋“ค–ดžˆ๋‹ค.





2.2. CSurface

Surface˜ ƒ„๊ณผ ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹น•˜๋Š” Class

1. ˆ๊ธฐ™”
~cpp 
 CSurface *surface = NULL;
2. ปฌ๋Ÿฌ‚ค „Œ…
~cpp 
 surface->SetColorKey(DWORD dwColorKey);
ปฌ๋Ÿฌ‚ค(ˆฌ๋ช…ƒ‰)œผ๋กœ ‚ฌšฉ•  ƒ‰„ COLORREF (RGB) ˜•— ๋งžถ”–ด„œ ง‘–ด๋„œผ๋ฉด ๋œ๋‹ค.

๋Œ€๊ฐœ ž˜ “ฐดง€ •Š๋Š” ƒ‰„ ‚ฌšฉ•œ๋‹ค.
3. ๋น„Šธ๋งตœผ๋กœ surface๋ฅผ ๋งŒ๋“  ๊ฒฝšฐ๊ฐ€ •„๋‹ˆ๋ผ๋ฉด surface— ง ‘ ๊ทธ๋ฆผ„ ๊ทธ๋ ค ๋„–ด„ ˆ˜ žˆ๋‹ค.
~cpp 
 surface->DrawBitmap(...);

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:08
Processing time 0.0160 sec