DirectX Graphics ÇÁ·Î±×·¡¹Ö °¡ÀÌµå °íµµÀÇ ÁÖÁ¦ ºñµ¿±â ÅëÁö [¸ñÂ÷¿¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
|
| Microsoft DirectX 9.0 |
ÆÛÆ÷¸Õ½º¿¡ ¿µÇâÀ» ÁÖÁö ¾ÊÀ¸¸é ¾ÖÇø®ÄÉÀ̼ÇÀ» µå¶óÀ̹ö¿¡ ´ëÇØ¼ ½Ç½ÃÇÒ ¼ö ÀÖ´Â Èï¹Ì·Î¿î ¹®Àǰ¡ ´Ù¼ö ÀÖ´Ù. Microsoft® DirectX® 7.0 ¹× DirectX 8. x ¿¡´Â,GetInfo ¶ó°í ÇÏ´Â µ¿±âÀû ¹®ÀÇ ¸ÞÄ«´ÏÁòÀÌ ÀÖ¾ú´Ù. ÀÌ ¸ÞÄ«´ÏÁòÀº Åë°è Á¤º¸µîÀÇ ¹®ÀÇ¿¡ À¯È¿ÇßÁö¸¸, ÆÛÆ÷¸Õ½º¿¡ Å« ¿µÇâÀ» ¹ÌÄ¡´Â ¹®ÀÇ´Â Æ÷ÇÔµÇÁö ¾Ê¾Ò´Ù. À̰Ϳ¡ ´ëÇØ, Ææ½º µîÀº º»ÁúÀûÀ¸·Î ºñµ¿±âÀûÀÌ´Ù. À̰ÍÀº ´Ü¼øÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º (API)·Î, µ¿±â¿Í ºñµ¿±âÀÇ ¾çÂÊ ¸ðµÎÀÇ ¹®ÀǸ¦ ½Ç½ÃÇÒ ¼ö°¡ ÀÖ´Ù. DirectX 9.0 ¿¡¼´Â GetInfo ´Â »ç¿ëÇÒ ¼ö ¾ø´Ù.
¹®ÀǸ¦ »ý¼º ÇÏ·Á¸é ,IDirect3DDevice9::CreateQuery ¸¦ »ç¿ëÇÑ´Ù. ÀÌ ¸Þ¼µå´Â, ½ÇÇàÇÏ´Â ¹®ÀÇÀÇ Á¾·ù¸¦ Á¤ÀÇÇÏ´Â D3DQUERYTYPE ¸¦ ¹Þ¾Æ,IDirect3DQuery9 °³Ã¼ÀÇ Æ÷ÀÎÅ͸¦ µ¹·ÁÁØ´Ù. ¹®ÀÇÀÇ Å¸ÀÔÀÌ Áö¿øµÇÁö ¾ÊÀº °æ¿ì, È£ÃâÀº ¿¡·¯ D3DERR_NOTAVAILABLE ¸¦ µ¹·ÁÁØ´Ù. ÀÌ °³Ã¼¸¦ »ç¿ëÇÏ¸é ¾ÖÇø®ÄÉÀ̼ÇÀº IDirect3DQuery9::Issue ·Î ·±Å¸ÀÓ¿¡ ´ëÇØ¼ ¹®ÀǸ¦ ½ÇÇàÇÒ ¼ö ÀÖ¾îIDirect3DQuery9::GetData ·Î ¹®ÀÇÀÇ ½ºÅ×ÀÌÅͽº¸¦ Æú¸µ ÇÒ ¼ö ÀÖ´Ù. ¹®ÀÇÀÇ °á°ú°¡ ÀÌ¿ë °¡´ÉÇÑ °æ¿ì´Â S_OK °¡ ¹ÝȯµÈ´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì´Â S_FALSE °¡ ¹ÝȯµÈ´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀº, ¹®ÀÇÀÇ °á°ú¿¡ ÀûÀýÇÑ »çÀÌÁîÀÇ ¹öÆÛ¸¦ °Ç³×ÁÙ Çʿ䰡 ÀÖ´Ù.
¾ÖÇø®ÄÉÀ̼ÇÀº, D3DGETDATA_FLUSH ¸¦ IDirect3DQuery9::GetData ¿Í ÇÔ²² »ç¿ëÇØ, ·±Å¸ÀÓÀ¸·ÎºÎÅÍ µå¶óÀ̹ö¿¡ °Á¦ÀûÀ¸·Î ¹®ÀǸ¦ Ç÷¡½Ã ÇÒ ¼ö ÀÖ´Ù. À̰Ϳ¡ ÀÇÇØ, Ç÷¡½Ã°¡ ½ÇÇàµÇ¾î µå¶óÀ̹ö¿¡ °Á¦ÀûÀ¸·Î ¹®Àǰ¡ ÀüÇØÁø´Ù. ÀÌ ¶§, ÀåÄ¡°¡ ¾ø¾îÁ³À» °æ¿ì´Â, D3DERR_DEVICELOST °¡ ¹ÝȯµÈ´Ù.
ÀåÄ¡°¡ ¾ø¾îÁö¸é ¸ðµç ¹®Àǰ¡ ¾ø¾îÁ® ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î ¹®ÀǸ¦ »ý¼º ´Ù½Ã ÇÒ Çʿ䰡 ÀÖ´Ù. ÀåÄ¡°¡ ¹®ÀǸ¦ Áö¿ø Çϰí ÀÖÁö ¾Ê´Â °æ¿ì·Î, pQueryID °¡ NULL ÀÇ °æ¿ì, ¹®ÀÇÀÇ »ý¼ºÀÌ ½ÇÆÐÇØ D3DERR_INVALIDCALL °¡ ¹ÝȯµÈ´Ù.
´ÙÀ½ÀÇ Ç¥´Â, °¢¹®Á¦ ÀÖ¾î ¸Â´ï ŸÀÔ¿¡ °üÇÑ Áß¿äÇÑ Á¤º¸¸¦ Áý°èÇÑ °ÍÀÌ´Ù.
| QuertyType | À¯È¿ÇÑ ¹ßÇà Ç÷¡±× | GetData ¹öÆÛ | ·±Å¸ÀÓ | ºñ¸í½ÃÀûÀÎ ¹®ÀÇÀÇ ½ÃÀÛ |
|---|---|---|---|---|
| D3DQUERYTYPE_VCACHE | D3DISSUE_END | D3DDEVINFO_VCACHE | ¸®Å×ÀÏ/µð¹ö±× | CreateDevice |
| D3DQUERYTYPE_RESOURCEMANAGER | D3DISSUE_END | D3DDEVINFO_RESOURCEMANAGER | µð¹ö±×¸¸ | Present |
| D3DQUERYTYPE_VERTEXSTATS | D3DISSUE_END | D3DDEVINFO_D3DVERTEXSTATS | µð¹ö±×¸¸ | Present |
| D3DQUERYTYPE_EVENT | D3DISSUE_END | BOOL | ¸®Å×ÀÏ/µð¹ö±× | CreateDevice |
| D3DQUERYTYPE_OCCLUSION | D3DISSUE_BEGIN, D3DISSUE_END | DWORD | ¸®Å×ÀÏ/µð¹ö±× | N/A |
IDirect3DQuery9::Issue ÀÇ Ç÷¡±× Çʵå
#define D3DISSUE_END (1 << 0) // Tells the runtime to issue the end of a query, changing its state to // "non-signaled"
#define D3DISSUE_BEGIN (1 << 1) // Tells the runtime to issue the // beginng of a query.
IDirect3DQuery9::GetData ÀÇ Ç÷¡±× Çʵå
#define D3DGETDATA_FLUSH (1 << 0) // Tells the runtime to flush // if the query is outstanding.