DirectX Graphics ·¹ÆÛ·±½º Direct3D C/C++ ·¹ÆÛ·±½º ÀÎÅÍÆäÀ̽º IDirect3DDevice9 StretchRect [¸ñÂ÷¿¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
|
| Microsoft DirectX 9.0 |
Àü¼Û¿øÁ÷»ç°¢ÇüÀÇ ³»¿ëÀ» ¸ñÀûÁö Á÷»ç°¢Çü¿¡ º¹»ç ÇÑ´Ù. º¹»ç¿¡ ÀÇÇØ, Àü¼Û¿øÁ÷»ç°¢ÇüÀ» È®´ë ¹× ÇÊÅ͸µ ÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇÔ¼ö´Â, ºñµð¿À ½ºÆ®¸²ÀÇ ¾î½ºÆåÆ®ºñ(°¡·Î¼¼·Î ºñÀ²)ÀÇ º¯°æ¿¡ ÀÚÁÖ(Àß) »ç¿ëµÈ´Ù.
±¸¹®
HRESULT StretchRect(
IDirect3DSurface9 *pSourceSurface, CONST RECT *pSourceRect, IDirect3DSurface9 *pDestSurface, CONST RECT *pDestRect, D3DTEXTUREFILTERTYPE Filter );
ÆÄ¶ó¹ÌÅÍ
- pSourceSurface
- [in] Àü¼Û¿øÇ¥¸éÀÇ Æ÷ÀÎÅÍ. ¡¸IDirect3DSurface9 ¡¹¸¦ ÂüÁ¶ÇÒ°Í.
- pSourceRect
- [in] Àü¼Û¿øÁ÷»ç°¢ÇüÀÇ Æ÷ÀÎÅÍ. ÀÌ ÆÄ¶ó¹ÌÅÍ¿¡ NULL ¸¦ ÁöÁ¤ Çϸé, Àü¼Û¿øÇ¥¸é Àüü°¡ »ç¿ëµÈ´Ù.
- pDestSurface
- [in] ¸ñÀûÁö Ç¥¸éÀÇ Æ÷ÀÎÅÍ. ¡¸IDirect3DSurface9 ¡¹¸¦ ÂüÁ¶ÇÒ°Í.
- pDestRect
- [in] ¸ñÀûÁö Á÷»ç°¢ÇüÀÇ Æ÷ÀÎÅÍ. ÀÌ ÆÄ¶ó¹ÌÅÍ¿¡ NULL ¸¦ ÁöÁ¤ Çϸé, ¸ñÀûÁö Ç¥¸é Àüü°¡ »ç¿ëµÈ´Ù.
- Filter
- [in] ÇÊÅÍ Å¸ÀÔ. ÁöÁ¤ °¡´ÉÇÑ °ªÀº, D3DTEXF_NONE, D3DTEXF_POINT, ¶Ç´Â D3DTEXF_LINEAR ÀÌ´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, ¡¸D3DTEXTUREFILTERTYPE ¡¹¸¦ ÂüÁ¶ÇÒ°Í.
¹Ýȯ°ª
¼º°øÇßÀ» °æ¿ì´Â,D3D_OK ¸¦ µ¹·ÁÁØ´Ù.
½ÇÆÐÇßÀ» °æ¿ìÀÇ ¹Ýȯ°ªÀº ´ÙÀ½´ë·Î.
D3DERR_INVALIDCALL ¸Þ¼µåÀÇ È£ÃâÀÌ ¹«È¿ÀÌ´Ù. ¿¹¸¦ µé¾î, ¸Þ¼µåÀÇ ÆÄ¶ó¹ÌÅÍ¿¡ ¹«È¿ÀÎ °ªÀÌ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì µîÀÌ´Ù.
ÁÖÀÇ
ÀϹÝÀûÀÎ Á¦ÇÑ
IDirect3DDevice9::StretchRect ·Î À¯È¿ÇÑ Ç¥¸éÀÇ Æí¼º¿¡´Â, ´Ù¾çÇÑ Á¦ÇÑÀÌ ÀÖ´Ù. Á¦ÇÑÀÇ ¿äÀο¡´Â, µå¶óÀ̹ö°¡ Microsoft® DirectX® 9.0 µå¶óÀ̹öÀΰ¡ ¶Ç´Â ±× ÀÌÀüÀÇ °ÍÀÎÁö, ¶Ç Á¶ÀÛ¿¡ ÀÇÇØ È®´ë/Ãà¼ÒÀÇ ¾î´À ÂÊÀÌ ¹ß»ýÇÒ±î µîÀÌ Æ÷ÇԵȴÙ. ¾ÖÇø®ÄÉÀ̼ÇÃø¿¡¼´Â µå¶óÀ̹ö°¡ DirectX 9.0 ÀÏÁö ¾î¶³Áö´Â ÀνÄÇÏÁö ¾Ê±â ¶§¹®¿¡, DirectX 9.0 ·¹º§ ÀÌ»óÀÇ µå¶óÀ̹ö¿¡ ´ëÇØ¼´Â, Microsoft Direct3D® ´Â ÀÚµ¿ÀûÀ¸·Î »õ·Î¿î D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES ´É·ÂÀ» D3DDEVCAPS2 ±¸Á¶ ü³»¿¡¼ ¼³Á¤ÇÑ´Ù.
DirectX 8. x µå¶óÀ̹ö (È®´ë ¾øÀ½)
¸ñÀûÁö Æ÷¸Ë ÅØ½ºÃ³ RT ÅØ½ºÃ³ RT ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸° Àü¼Û¿øÆ÷¸Ë ÅØ½ºÃ³ ¾Æ´Ï¿À ¾Æ´Ï¿À ¾Æ´Ï¿À ¾Æ´Ï¿À RT ÅØ½ºÃ³ ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À RT ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸° ³× ³× ³× ³× DirectX 8. x µå¶óÀ̹ö (È®´ë ÀÖ¾î)
¸ñÀûÁö Æ÷¸Ë ÅØ½ºÃ³ RT ÅØ½ºÃ³ RT ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸° Àü¼Û¿øÆ÷¸Ë ÅØ½ºÃ³ ¾Æ´Ï¿À ¾Æ´Ï¿À ¾Æ´Ï¿À ¾Æ´Ï¿À RT ÅØ½ºÃ³ ¾Æ´Ï¿À ¾Æ´Ï¿À ¾Æ´Ï¿À ¾Æ´Ï¿À RT ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸° ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À DirectX 9.0 µå¶óÀ̹ö (È®´ë ¾øÀ½)
¸ñÀûÁö Æ÷¸Ë ÅØ½ºÃ³ RT ÅØ½ºÃ³ RT ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸° Àü¼Û¿øÆ÷¸Ë ÅØ½ºÃ³ ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À RT ÅØ½ºÃ³ ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À RT ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸° ¾Æ´Ï¿À ³× ³× ³× DirectX 9.0 µå¶óÀ̹ö (È®´ë ÀÖ¾î)
¸ñÀûÁö Æ÷¸Ë ÅØ½ºÃ³ RT ÅØ½ºÃ³ RT ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸° Àü¼Û¿øÆ÷¸Ë ÅØ½ºÃ³ ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À RT ÅØ½ºÃ³ ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À RT ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸° ¾Æ´Ï¿À ³× ³× ¾Æ´Ï¿À IDirect3DDevice9::StretchRect ¿¡¼´Â, Àü¼Û¿øÇ¥¸é¿Í ¸ñÀûÁö Ç¥¸éÀÇ ¾çÂÊ ¸ðµÎ°¡ D3DPOOL_DEFAULT Ç¥¸éÀÌ ¾Æ´Ï¸é ¾ÈµÈ´Ù.
ÇÊÅ͸µÀ» ÁöÁ¤ÇßÀ» °æ¿ì,IDirect3DDevice9::StretchRect ´Â, µå¶óÀ̹ö°¡ D3DCAPS9 ·Î ÀûÀýÇÑ StretchRectFilterCaps ¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â ÇÑ ½ÇÆÐÇÑ´Ù. D3DTEXF_NONE ¸¦ ÁöÁ¤ÇßÀ» °æ¿ì, µå¶óÀ̹ö´Â ÇÊÅ͸µ ¾Ë°í¸®ÁòÀ» ¼±ÅÃÇÑ´Ù.
È®´ë Á¶ÀÛÀº, YUV ·ÎºÎÅÍ °íÁ¤¹Ðµµ RGBA ÀÇ »ö°ø°£(color space)ÀÇ º¯È¯¸¸À» Áö¿ø Çϰí ÀÖ´Ù. °°Àº Ç¥¸é À§¿¡ÀÇ Á÷»ç°¢Çü°£¿¡¼ÀÇ È®´ë´Â Áö¿ø µÇÁö ¾Ê´Â´Ù. º¯È¯ÀÇ ¼ÒÇÁÆ®¿þ¾î ¿¡¹Ä·¹À̼ÇÀº Áö¿ø µÇÁö ¾Ê±â ¶§¹®¿¡,IDirect3D9::CheckDeviceFormatConversion ¸¦ »ç¿ëÇØ Çϵå¿þ¾îÀÇ »öº¯È¯ Áö¿øÀ» Å×½ºÆ®ÇÒ Çʿ䰡 ÀÖ´Ù.
ÅØ½ºÃ³ÀÇ Á¦ÇÑ
IDirect3DDevice9::StretchRect ´Â, DirectX 9.0 µå¶óÀ̹ö (D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES ¸¦ ¼³Á¤ÇÏ´Â µå¶óÀ̹ö)¿¡¼ÀÇ ÅØ½ºÃ³ Ç¥¸é (¶Ç´Â Å¥ºê ÅØ½ºÃ³ Ç¥¸é)¿¡¼¸¸ µ¿ÀÛÇÑ´Ù.±íÀÌ ¹× ½ºÅÙ½ÇÀÇ Á¦ÇÑ
±íÀÌ ¹× ½ºÅÙ½Ç Ç¥¸é ´Â,IDirect3DDevice9::StretchRect ¸¦ »ç¿ëÇØ º¹»ç ÇÒ ¼ö ÀÖÁö¸¸, ´ÙÀ½ÀÇ Á¦ÇÑÀÌ ÀÖ´Ù.
- Àü¼Û¿ø ¹× ¸ñÀûÁöÀÇ ¾çÂÊ ¸ðµÎÀÇ Ç¥¸éÀ»,IDirect3DDevice9::CreateDepthStencilSurface ·Î »ý¼º ÇÒ Çʿ䰡 ÀÖ´Ù. À̰ÍÀº, ¾î´ÀÂÊÀ̳ª ÅØ½ºÃ³´Â ¾Æ´Ï°í Æò¸é ½ºÅÙ½Ç Ç¥¸éÀÌ ¾Æ´Ï¸é ¾ÈµÇ±â ¶§¹®ÀÌ´Ù.
- ¾î´À ÂÊÀÇ Ç¥¸éµµ °°Àº Æ÷¸ËÀÌ ¾Æ´Ï¸é ¾ÈµÈ´Ù (Æ÷¸Ë º¯È¯ ¾øÀ½).
- È®´ëµµ Ãà¼Òµµ ÇÒ ¼ö ¾ø´Ù.
- ¼ºê Á÷»ç°¢ÇüÀÇ º¹»ç´Â Çã°¡µÇÁö ¾Ê´Â´Ù. Ç¥¸é Àüü¸¦ º¹»ç ÇÒ Çʿ䰡 ÀÖ´Ù. Áï, pSourceRect ¿Í pDestRect °¡ NULL ¶Ç´Â Ç¥¸é Àüü¸¦ Ä¿¹öÇÏ´Â Á÷»ç°¢ÇüÀÇ Æ÷ÀÎÆ®°¡ ¾Æ´Ï¸é ¾ÈµÈ´Ù.
- IDirect3DDevice9::BeginScene /IDirect3DDevice9::EndScene Æä¾îÀÇ ³»ºÎ¿¡¼´Â StretchRect ¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù.
- Àü¼Û¿ø ¶Ç´Â ¸ñÀûÁö Ç¥¸éÀÌ, D3DUSAGE_DEPTHSTENCIL ·Î »ý¼º ÇÑ ÅØ½ºÃ³ÀÇ ¹Ó·¹º§ (Å¥ºê ÅØ½ºÃ³)À̾ ¾È µÈ´Ù.
- ¾î´À ÂÊÀÇ Ç¥¸éµµ,"ÆÄ±â °¡´É" À¸·Î¼ »ý¼º ÇØ¼´Â ¾È µÈ´Ù.
- µå¶óÀ̹ö´Â, D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES ¸¦ ¼³Á¤ÇÒ Çʿ䰡 ÀÖ´Ù. ¡¸D3DDEVCAPS2¡¹¸¦ ÂüÁ¶ÇÒ°Í.
´ÙÀ½ÀÇ ¸î°³ÀÇ °æ¿ì,IDirect3DDevice9::StretchRect ´Â ½ÇÆÐÇÑ´Ù.
- pSourceSurface ¿Í pDestSurface °¡ °°Àº °æ¿ì.
- È®´ë ¶Ç´Â Ãà¼ÒÀÇ ¾î´À ÂÊÀÎÁö¸¦ ÇØ ¾î´À ÂÊÀΰ¡ÀÇ Ç¥¸éÀÌ DXTn ¾ÐÃà Æ÷¸ËÀÎ °æ¿ì.
- Àü¼Û¿øÇ¥¸éÀÌ ¸ÖƼ »ùÇøµ µÇ°í ÀÖ´Â °æ¿ì (MultiSampleType != D3DMULTISAMPLE_NONE ·Î »ý¼º ÇßÀ» °æ¿ì).
- ¸ñÀûÁö Ç¥¸éÀÌ ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸°À̸é¼, Àü¼Û¿øÇ¥¸éÀÌ ±×·¸Áö ¾ÊÀº °æ¿ì. ¸ñÀûÁö Ç¥¸éÀÌ ´Ü¼øÇÑ ¿ÀÇÁ ½ºÅ©¸°À̸ç, È®´ë¸¦ Çϰí ÀÖ´Â °æ¿ì.