¡Ô VC++ °ÔÀÓ Á¦ÀÛ ¼ÒÇ°

 ¡å ÅؽºÃÄ·Î anti-aliased ÆùÆ® Âï±â

VC++

¼Ò½ºêó

Áö³­ ÀÏ¿äÀÏ¿¡ AVEJ¿¡ ¾²ÀÏ ÆùÆ® ¿£ÁøÀ» ¸¸µé¾î º¸ÀÚ´Â ¶æ¿¡¼­ anti-aliasingÀ» Áö¿øÇÏ´Â ÆùÆ® Ãâ·Â Ŭ·¡½º¸¦ ¸¸µé¾ú´Ù. ¿ë·®À» ÁÙÀ̱â À§Çؼ­ ¿ÜºÎ ÆùÆ® ¿£ÁøÀ» »ç¿ëÇÏÁö ¾Ê°í win32ÀÇ true type font¿ë API¸¦ »ç¿ëÇßÀ¸¸ç Ãâ·ÂÀº DirectX¸¦ »ç¿ëÇß´Ù.
(DirectX9¿¡ µþ·Á ¿À´Â ÆùÆ® Ŭ·¡½º°¡ ÀÖÁö¸¸ ÀÌÁ¦¿Í¼­ º°·Î °øºÎÇÏ°í ½ÍÁöµµ ¾Ê°í..)

ÀÌ°ÍÀº AVEJÀÇ ÀϺηΠÁ¦À۵Ǿú±â ¶§¹®¿¡ Delphi°¡ ¾Æ´Ï¶ó VC++ÀÌ´Ù.

fontTest.cpp
- ÀÌ font test¸¦ ½ÃÀÛÇϱâ À§ÇÑ WinMain() ÇÔ¼ö°¡ ÀÖ´Â °÷

smAppWin32.cpp
- Win32¿ë applicationÀ» ½ÇÇàÇϱâ À§ÇÑ message loopµîÀÌ ÀÖ´Â °÷

smMain.cpp
- Platform¿¡ ºñ ÀÇÁ¸ÀûÀÎ ½ÇÁ¦ main loop
  (ÇöÀç´Â Å×½ºÆ®¸¦ À§ÇØ DirectX 9ÀÇ  method¸¦ Á÷Á¢ È£ÃâÇÑ´Ù.)

smVideoWin32.cpp
- Win32¿ë video Ãâ·ÂÀ» Çϱâ À§ÇÑ ³»¿ëÀÌ ±¸ÇöµÇ¾î ÀÖ´Â °÷

smFontWin32.cpp
- Win32¿ë font Ãâ·ÂÀ» Çϱâ À§ÇÑ ³»¿ëÀÌ ±¸ÇöµÇ¾î ÀÖ´Â °÷

fontTest.cpp
|
smAppWin32.cpp
|
smMain.cpp
|
+------------+------------+
|                         |

smVideoWin32.cpp   smFontWin32.cpp

´Ù¿î ·Îµå (½ÇÇàÆÄÀÏÀº ¾øÀ½)


Anti-aliasing font¸¦ ±¸ÇöÇϱâ À§Çؼ­´Â ¿Ü°û¼±¿¡ ´ëÇÑ ºí·»µùÀÌ ÇÊ¿äÇÏ´Ù. ÀϹÝÀûÀ¸·Î ÀÌ ºÎºÐÀº S/W ºí·»µùÀ» ÅëÇØ ±¸ÇöÇßÁö¸¸ °ÔÀÓ¿¡¼­´Â H/WÀÇ ±â´ÉÀ» ÀÌ¿ëÇؼ­ ºí·»µùµµ °¡´ÉÇÏ´Ù.

1. Direct3DÀÇ texture¸¦ »ý¼ºÇÑ´Ù.
2. Texture¿¡ ÆùÆ®¸¦ ±×¸®µÇ anti-aliasing Á¤º¸´Â ¸ðµÎ ¾ËÆÄ°ªÀ¸·Î¸¸ ÁöÁ¤ÇÑ´Ù.
3. ÀÌ·¸°Ô ¸¸µé¾îÁø texture¸¦ D3DBLEND_SRCALPHA¸¦ ÀÌ¿ëÇØ back-buffer¿¡ blitingÇÑ´Ù.

¹®Á¦Á¡

Àý´ë ÃÖÀûÈ­ µÇ¾î ÀÖÁö ¾Ê´Ù.
TextureÀÇ buffer¿¡ Á÷Á¢ lockÀ» °É°í ³»¿ëÀ» °»½ÅÇØ¾ß Çϱ⠶§¹®¿¡ ¿øÇÏ´Â ¼Óµµ°¡ ³ªÁö ¾Ê´Â´Ù.
µû¶ó¼­ ÀϹÝÀûÀÎ ÅؽºÆ® Ãâ·ÂÀ» À§Çؼ­´Â »ç¿ëÇϱâ Èûµé°í texture¿¡ °íÁ¤µÈ ÆùÆ®¸¦ Áý¾î ³Ö°Å³ª ÷ºÎµÈ ¼Ò½º¸¦ ¼öÁ¤Çؼ­, ÇѲ¨¹ø¿¡ ±×¸°ÈÄ Á¶±Ý¾¿ º¸¿©Áְųª  font cashingÀ» ±¸ÇöÇØ¾ß ÇÒ °ÍÀÌ´Ù.

Memory off-screen buffer ¿¡ ÆùÆ® Ãâ·ÂÀ» ÇÏ°í UpdateSurface·Î °»½ÅÇغ¸±âµµ ÇßÁö¸¸ ¿ÀÈ÷·Á ´õ ´Ê¾îÁ³´Ù.
ÀÏ´Ü ³»°¡ ¾²·Á°í ÇÏ´Â ¿ëµµ¿¡´Â ¸ÂÁö ¾Ê±â ¶§¹®¿¡ ÀÌ°ÍÀº ¹ö¸°´Ù.