DirectX Graphics ·¹ÆÛ·±½º Direct3D C/C++ ·¹ÆÛ·±½º ÀÎÅÍÆäÀ̽º IDirect3D9 CheckDeviceType [¸ñÂ÷¿¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
|
| Microsoft DirectX 9.0 |
¾î´ðÅÍ·Î Çϵå¿þ¾î °¡¼ÓÈ ÀåÄ¡ ŸÀÔÀÌ »ç¿ë °¡´ÉÇѰ¡ ¾î¶²°¡¸¦ °ËÁõÇÑ´Ù.
±¸¹®
HRESULT CheckDeviceType(
UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL Windowed );
ÆÄ¶ó¹ÌÅÍ
- Adapter
- [in] ¿°ÅÇÏ´Â µð½ºÇ÷¹ÀÌ ¾î´ðÅ͸¦ ³ªÅ¸³»´Â ¼¼ö. D3DADAPTER_DEFAULT ´Â Ç×»ó 1Â÷ µð½ºÇ÷¹ÀÌ ¾î´ðÅÍÀÌ´Ù. ÀÌ °ªÀÌ ½Ã½ºÅÛÀÇ µð½ºÇ÷¹ÀÌ ¾î´ðÅÍÀÇ ¼öÀÌ»óÀÇ °æ¿ì, ÀÌ ¸Þ¼µå´Â D3DERR_INVALIDCALL ¸¦ µ¹·ÁÁØ´Ù.
- DeviceType
- [in] D3DDEVTYPE ¿°ÅÇüÀÇ ¸â¹ö. üũÇÏ´Â ÀåÄ¡ ŸÀÔÀ» ³ªÅ¸³½´Ù.
- DisplayFormat
- [in] D3DFORMAT ¿°ÅÇüÀÇ ¸â¹ö. ÀåÄ¡ ŸÀÔÀ» üũÇÏ´Â ¾î´ðÅÍ µð½ºÇ÷¹ÀÌ ¸ðµåÀÇ Æ÷¸ËÀ» ³ªÅ¸³½´Ù. ¿¹¸¦ µé¾î, ÀåÄ¡¿¡ µû¶ó¼´Â, Çȼ¿ ´ÜÀ§ÀÇ 16 ºñÆ®ÀÇ ¸ðµå¿¡¼¸¸ µ¿ÀÛÇÏ´Â °Íµµ ÀÖ´Ù.
- BackBufferFormat
- [in] ¹é ¹öÆÛ Æ÷¸Ë. Æ÷¸ËÀÇ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, ¡¸D3DFORMAT ¡¹¸¦ ÂüÁ¶ÇÒ°Í. ÀÌ °ªÀº, ·»´õ¸µ Ÿ°Ù Æ÷¸ËÀÇ 1 °³°¡ ¾Æ´Ï¸é ¾ÈµÈ´Ù. ÇöÀçÀÇ Æ÷¸ËÀº,IDirect3DDevice9::GetDisplayMode ¸¦ »ç¿ëÇØ ÃëµæÇÒ ¼ö ÀÖ´Ù. À©µµ¿ì ¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â, Çϵå¿þ¾î°¡ »öº¯È¯À» Áö¿ø Çϰí ÀÖ´Â °æ¿ì, ¹é ¹öÆÛ Æ÷¸ËÀÌ µð½ºÇ÷¹ÀÌ ¸ðµå Æ÷¸Ë°ú ¹Ýµå½Ã ÀÏÄ¡ÇÒ ÇÊ¿ä´Â ¾ø´Ù. »ç¿ë °¡´ÉÇÑ ¹é ¹öÆÛ Æ÷¸Ë¼¼Æ®´Â Á¦Çѵǰí ÀÖÁö¸¸, ·±Å¸ÀÓÀº ÀÓÀÇÀÇ À¯È¿ÇÑ ¹é ¹öÆÛ Æ÷¸ËÀ» »ç¿ëÇØ, ÀÓÀÇÀÇ µ¥½ºÅ©Å¾ Æ÷¸Ë¿¡ ÇÁ·¹Á¨Å×ÀÌ¼Ç ÇÒ ¼ö ÀÖ´Ù. ´Ù¸¸, ÀåÄ¡°¡ µ¥½ºÅ©Å¾ ¸ðµå·Î µ¿ÀÛ °¡´ÉÇØ¾ß ÇÑ´Ù°í ÇÏ´Â ¿ä°Çµµ ÀÖ´Ù. º¸Åë, ÀåÄ¡´Â Çȼ¿ ±Ùó 8 ºñÆ®ÀÇ ¸ðµå¿¡¼´Â µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. Ç® ½ºÅ©¸° ¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â, »öº¯È¯À» ½ÇÇàÇÒ ¼ö ¾ø´Ù.
D3DFMT_UNKNOWN ´Â, À©µµ¿ì ¸ðµå·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
- Windowed
- [in] ÀåÄ¡ ŸÀÔÀÌ Ç® ½ºÅ©¸° ¸ðµå¿Í À©µµ¿ì ¸ðµåÀÇ ¾îµð¿¡¼ »ç¿ëµÇ´ÂÁö¸¦ ³ªÅ¸³»´Â °ª. TRUE ¸¦ ¼³Á¤ÇßÀ» °æ¿ì, À©µµ¿ì ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¹®Àǰ¡ ½ÇÇàµÈ´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì´Â, ÀÌ °ª¿¡ FALSE ÇÒ Çʿ䰡 ÀÖ´Ù.
¹Ýȯ°ª
ÀÌ ¾î´ðÅÍ·Î ÀåÄ¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì´Â,D3D_OK ¸¦ µ¹·ÁÁØ´Ù.
Adapter °¡ ½Ã½ºÅÛÀÇ µð½ºÇ÷¹ÀÌ ¾î´ðÅÍÀÇ ¼öÀÌ»óÀÇ °æ¿ì´Â,D3DERR_INVALIDCALL ¸¦ µ¹·ÁÁØ´Ù. IDirect3D9::CheckDeviceType °¡ Á¸ÀçÇÏÁö ¾Ê´Â ÀåÄ¡¸¦ ÁöÁ¤Çϰí ÀÖ¾úÀ» °æ¿ìµµ,D3DERR_INVALIDCALL ¸¦ µ¹·ÁÁØ´Ù.
¿ä±¸ÇÑ ¹é ¹öÆÛ Æ÷¸ËÀÌ Áö¿øµÇÁö ¾ÊÀºÁö, ÁöÁ¤ÇÑ Æ÷¸ËÀ¸·Î Çϵå¿þ¾î °¡¼Óȸ¦ »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì´Â,D3DERR_NOTAVAILABLE ¸¦ µ¹·ÁÁØ´Ù.
ÁÖÀÇ
ÀåÄ¡Çü Çϵå¿þ¾î Ãß»ó °èÃþ (HAL)¿¡´Â Çϵå¿þ¾î °¡¼ÓȰ¡ ÇÊ¿äÇÏ´Ù. ¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â,CheckDeviceType ¸¦ »ç¿ëÇØ HAL ÀåÄ¡ÀÇ Áö¿ø¿¡ ÇÊ¿äÇÑ Çϵå¿þ¾î ¹× µå¶óÀ̹ö°¡ ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
Ç® ½ºÅ©¸° ¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â, ¾ËÆÄ ä³ÎÀ» Æ÷ÇÔÇÑ DisplayFormat ¸¦ ÁöÁ¤Çؼ´Â ¾ÈµÈ´Ù. ÀÌ °æ¿ì, È£ÃâÀº ½ÇÆÐÇÑ´Ù. ¹é ¹öÆÛ¿¡ ¾ËÆÄ ä³ÎÀÌ Á¸ÀçÇØµµ ±¦ÂúÁö¸¸, 2 °³ÀÇ µð½ºÇ÷¹ÀÌ Æ÷¸ËÀº ´Ù¸¥ ¸ðµç ¸é¿¡¼ °°Áö ¾ÊÀ¸¸é ¾È µÈ´Ù. ¿¹¸¦ µé¾î,DisplayFormat °¡ D3DFMT_X1R5G5B5 ÀÇ °æ¿ì,BackBufferFormat ÀÇ À¯È¿ÇÑ °ª¿¡´Â D3DFMT_X1R5G5B5 ¹× D3DFMT_A1R5G5B5 ´Â Æ÷ÇÔµÇÁö¸¸, D3DFMT_R5G6B5 ´Â Á¦¿ÜµÈ´Ù.
´ÙÀ½ »ùÇà ÄÚµå´Â,CheckDeviceType ¸¦ »ç¿ëÇØ, ƯÁ¤ÀÇ ÀåÄ¡ ŸÀÔÀ» ±× ¾î´ðÅÍ·Î »ç¿ëÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ´Ù.if(SUCCEEDED(pD3Device->CheckDeviceType(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, DisplayFormat, BackBufferFormat, bIsWindowed))) return S_OK; // There is no HAL on this adapter using this render target format. // Try again, using another format.ÀåÄ¡°¡ µðÆúÆ®ÀÇ ¾î´ðÅͻ󿡼, ÁöÁ¤µÈ Ç¥¸é Æ÷¸ËÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì, ÀÌ ÄÚµå´Â S_OK ¸¦ µ¹·ÁÁØ´Ù.
IDirect3D9::CheckDeviceType ¸¦ »ç¿ëÇØ, µð½ºÇ÷¹ÀÌ Æ÷¸Ë°ú ´Ù¸¥ ¹é ¹öÆÛ¿ÍÀÇ È£È¯¼ºÀ» Å×½ºÆ® Çϸé, ÀûÀýÇÑ °ªÀÌ ¹ÝȯµÈ´Ù. Áï, È£ÃâÀº ÀåÄ¡ÀÇ ´É·ÂÀ» ³ªÅ¸³½´Ù. ¿ä±¸ÇÑ ¹é ¹öÆÛ Æ÷¸Ë¿¡ ÀåÄ¡°¡ ·»´õ¸µ ÇÒ ¼ö ¾ø´Â °æ¿ì¿¡¼µµ, È£ÃâÀº D3DERR_NOTAVAILABLE ¸¦ µ¹·ÁÁØ´Ù. ÀåÄ¡°¡ ±× Æ÷¸Ë¿¡ ·»´õ¸µ ÇÒ ¼ö ÀÖÁö¸¸, »öº¯È¯À» »ç¿ëÇÑ ÇÁ·¹Á¨Å×À̼ÇÀ» ½ÇÇàÇÒ ¼ö ¾ø´Â °æ¿ìµµ, ¹Ýȯ°ªÀº D3DERR_NOTAVAILABLE °¡ µÈ´Ù. ¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â,IDirect3D9::CheckDeviceFormatConversion ¸¦ È£ÃâÇØ ÇÁ·¹Á¨Å×ÀÌ¼Ç ÀÚüÀÇ Çϵå¿þ¾î Áö¿øÀ» °ËÃâÇÒ ¼ö ÀÖ´Ù. »öº¯È¯À» »ç¿ëÇÑ ÇÁ·¹Á¨Å×ÀÌ¼Ç ÀÚüÀÇ ¼ÒÇÁÆ®¿þ¾î ¿¡¹Ä·¹À̼ÇÀº Á¦°øµÇÁö ¾Ê´Â´Ù.