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.0170 sec