Allegro °ÔÀÓ ÇÁ·Î±×·¡¹Ö ¶óÀ̺귯¸® ¾ð¾î: English  español  Deutsch  français  polski  Italiano 

 
 

Allegro
  ´º½º
  ¼Ò°³
  ¶óÀ̼¾½º
  °øÇåÇϽŠºÐµé
  Áö³­ ´º½º

´Ù¿î·Îµå
  ÃֽйöÀü
  ±¸¹öÀü
  CVS

¹®¼­ 
  API
  FAQ
  Æ©Å丮¾ó
  AllegroÀÇ ¹Ì·¡

Áö¿ø
  µµ¿ò¸»
  ¸ÞÀϸµ ¸®½ºÆ®
  IRC

°ÔÀÓ, À¯Æ¿¸®Æ¼, ¶óÀ̺귯¸® µîµî
  Allegro.cc

±âŸ
  DIGMID
  ¸µÅ©
  ¹Ì·¯
  Webmasters

 
 
  

ÁÁÀº ¿©ÇàÀÚ µÇ±â

¶Ç´Â, ´ç½ÅÀÇ Allegro ÇÁ·Î±×·¥ÀÌ À̽ÄÀÌ ½±µµ·Ï À¯ÁöÇϱâ


1999³â 11¿ù, Shawn Hargreaves.


ÀÌ ±ÛÀ» ¾²´Â ½ÃÁ¡¿¡¼­ÀÇ ¹öÀüÀÎ 3.9.x WIP ¹öÀü¿¡¼­¿Í °°ÀÌ, Allegro´Â µµ½º (djgpp, Watcom), À©µµ¿ìÁî (MSVC, mingw32, RSXNTDJ), ¸®´ª½º (ÄܼÖ, X), BeOS¿¡ À̽ĵǾú½À´Ï´Ù. ´ç½ÅÀÌ À̰ÍÀ» ÀÐÀ» ¶§±îÁö´Â ¹öÀü 4.0ÀÌ ¾Æ¸¶µµ ¹ßÇ¥µÇ¾ú°Å³ª ´õ ¸¹Àº ´Ù¸¥ Ç÷§ÆûÀ» Áö¿øÇÏ´Â ÀÌÈÄ ¹öÀüÀÌ ¹ßÇ¥µÇ¾úÀ» °ÍÀÔ´Ï´Ù. Allegro´Â ¾îµð¿¡¼­ ½ÇÇà½ÃŰ°Ç Á¤È®È÷ ¶È°°Àº ¶óÀ̺귯¸® ÇÔ¼ö¸¦ Á¦°øÇϸç, À̰ÍÀº ´Ù¸¥ Áö¿ø ½Ã½ºÅÛÀ» À§ÇÑ ÇÁ·Î±×·¥ÀÇ ¹öÀüÀ» ¸Å¿ì ½±°Ô ¸¸µéµµ·Ï ÇÕ´Ï´Ù: ÀÌ·ÐÀûÀ¸·Î, °£´ÜÇÑ ÀçÄÄÆÄÀϸ¸ÀÌ ÇÊ¿äÇÑ ÀÛ¾÷ÀÌ µË´Ï´Ù. ÇÏÁö¸¸ ½ÇÁ¦ ¼¼»ó¿¡¼­´Â ¸ðµç ÀÏÀÌ ±×·¸°Ô °£´ÜÇÏÁö´Â ¾ÊÀ¸¹Ç·Î, °¢ »õ·Î¿î ÇÁ·§Æû¿¡¼­ ÇÁ·Î±×·¥ÀÌ µ¿ÀÛÇϵµ·Ï ÇÏ·Á¸é ¸î°¡Áö Á¶ÀÛÀÌ ¾Æ¸¶µµ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù. ÀÌ ¹®¼­´Â ³ªÁß¿¡ ¼ö¸¹Àº »ðÁúÀ» ÇØ¾ß ÇÏ´Â »óȲÀ» ¸¸³ª´Â ´ë½Å ¿Ã¹Ù¸£°Ô ½ÃÀÛÇÒ ¼ö Àֱ⸦ ¹Ù¶ó´Â ¸¶À½¿¡¼­, °¡Àå ÀÖÀ»¹ýÇÑ ¹®Á¦Á¡ÀÌ ¾î¶² °ÍÀÌ µÉ °ÍÀÎÁö¸¦ »ý°¢ÇØ º¸·Á´Â ½Ãµµ·Î ÀÛ¼ºµÈ °ÍÀÔ´Ï´Ù. À̵é Áß ¸î¸îÀº Allegro¿¡ °ü·ÃµÈ °ÍÀÌÁö¸¸, ´ëºÎºÐÀº ÀϹÝÀûÀÎ C °ü·Ã ¹®Á¦ÀÔ´Ï´Ù: µÎ°¡Áö °æ¿ì ¸ðµÎ¿¡ ´ëÇÏ¿©, Á¦°¡ ºüÆ®¸° ¾î¶°ÇÑ ´Ù¸¥ ¹®Á¦Á¡¿¡ ´ëÇÑ »ý°¢À» Á¦°Ô ¾Ë·Á ÁֽʽÿÀ!

  • µµ½º ¼Ò½º¸¦ ´Ù¸¥ Ç÷§Æû¿¡¼­ µ¿ÀÛÇϵµ·Ï Çϴµ¥ ÇÊ¿äÇÑ ´ëºÎºÐÀÇ ºÐ¸íÇÑ º¯È­´Â END_OF_MAIN()À» main() ÇÔ¼ö µÚ¿¡ ³Ö´Â °ÍÀÔ´Ï´Ù. ÀÌ ¸ÅÅ©·Î´Â µµ½º ¹öÀüÀÇ ¶óÀ̺귯¸®¿¡¼­´Â ¾Æ¹« µ¿ÀÛµµ ÇÏÁö ¾Ê´Â °ÍÀÌÁö¸¸, À©µµ¿ìÁî ¹öÀü¿¡¼­´Â Ç¥ÁØ main() ÇÔ¼ö¸¦ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ½ºÅ¸ÀÏÀÇ WinMain()À¸·Î ¹Ù²Ù¸ç, À¯´Ð½º Ç÷§Æû¿¡¼­´Â Allegro°¡ argv[0] ÆÄ¶ó¹ÌÅÍ °ªÀ» °¡Á®¿Àµµ·Ï ÇÏ´Â ¸¶¹ýÀ» ¼öÇàÇÕ´Ï´Ù (À̰ÍÀº config ÆÄÀÏÀ» ã´Âµ¥ ÇÊ¿äÇÕ´Ï´Ù).

  • main() ÇÔ¼öÀÇ Á¤È®ÇÑ ÇÁ·ÎÅäŸÀÔÀ» Á¦°øÇϽʽÿÀ. ANSI C´Â 'int main()'°ú 'int main(int argc, char *argv[])' µÎ°¡Áö ¸ðµÎ¸¦ Çã¿ëÇϸç, ¼º°øÀÏ °æ¿ì 0À» ¸®ÅÏÇϰí, ½ÇÆÐÀÎ °æ¿ì¿¡´Â 0ÀÌ ¾Æ´Ñ exit Äڵ带 ¸®ÅÏÇÕ´Ï´Ù. main¿¡¼­ ±×³É return¸¸À¸·Î Á¾·áÇϰųª ¾î¶°ÇÑ ¸®ÅÏ °ªµµ ¾øÀÌ ÇÔ¼ö°¡ ³¡³ªµµ·Ï ¼±¾ðÇÏ´Â °ÍÀº ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.

  • ¾î¶°ÇÑ ºñÇ¥ÁØ ¶óÀ̺귯¸® ÇÔ¼öµµ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. DirectX ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù¸é ºÐ¸íÈ÷ À©µµ¿ìÁî¿¡¼­¸¸ µ¿ÀÛÇÒ °ÍÀ̸ç, DPMI ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù¸é djgpp¿Í °°Àº DPMI ½Ã½ºÅÛ¿¡¼­¸¸ µ¿ÀÛÇÒ °ÍÀÔ´Ï´Ù. ±×·¯¹Ç·Î conio.h¿Í °°Àº Ç÷§Æû¿¡ ƯȭµÈ Çì´õ¸¦ »ç¿ëÇϰųª, GDI ÀÎÅÍÆäÀ̽º ÇÔ¼ö¿Í °°Àº AllegroÀÇ Æ¯Á¤ Ç÷§Æû Àü¿ë ºÎºÐÀ» »ç¿ëÇÏ´Â °ÍÀ» ÇÇÇØ¾ß ÇÕ´Ï´Ù. ANSI Ç¥ÁØ ÇÔ¼ö¿Í Allegro ¶óÀ̺귯¸® ÇÔ¼ö, ±×¸®°í Áö¿øÀ» ¿øÇÏ´Â ¸ðµç Ç÷§Æû¿¡¼­ »ç¿ë °¡´ÉÇÑ ´Ù¸¥ ¶óÀ̺귯¸®¸¸À» »ç¿ëÇϽʽÿÀ. ¿¹¸¦ µé¾î, rand() ÇÔ¼ö´Â ANSI¿¡¼­ libcÀÇ ÀϺηΠÁ¤ÀǵǾî ÀÖ´Â °ÍÀÌÁö¸¸, random()Àº ±×·¸Áö ¾ÊÀ¸¹Ç·Î, ÀÌ½Ä °¡´ÉÇÑ Äڵ忡¼­´Â random() ´ë½Å rand()¸¦ »ç¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù.

  • À§¿Í °ü·ÃÇÏ¿©: ¸î¸î Ç÷§Æû¿¡¼­´Â rand()´Â 16ºñÆ® °ª¸¸À» ¸®ÅÏÇϹǷÎ, ±× ÀÌ»óÀÇ ºñÆ®°¡ »ç¿ë °¡´ÉÇÑ °ªÀ» °¡Áö°í ÀÖ´Ù°í °¡Á¤ÇÏÁö ¸¶½Ê½Ã¿À (djgppÀÇ rand()´Â 32ºñÆ®ÀÇ °á°ú¸¦ ¸®ÅÏÇÏÁö¸¸, À̰Ϳ¡ ÀÇÁ¸ÇÏÁö´Â ¸¶½Ê½Ã¿À).

  • libcÀÇ °¡Àå ¾àÇÑ Ç¥ÁØÈ­ ÁßÀÇ Çϳª´Â µð·ºÅ丮¿¡ ÀúÀåµÈ ÆÄÀÏÀ» Àд ¹æ¹ýÀÔ´Ï´Ù. ´ëºÎºÐÀÇ µµ½º¿Í À©µµ¿ìÁî ÄÄÆÄÀÏ·¯´Â findfirst()¿Í findnext() ÇÔ¼ö¿Í °°Àº Á¾·ù¸¦ °¡Áö°í ÀÖÁö¸¸, È£ÃâÇÏ´Â ÇÔ¼ö¿Í ÆÄ¶ó¹ÌÅͰ¡ °°Áö´Â ¾Ê½À´Ï´Ù. Posix ½Ã½ºÅÛ (À¯´Ð½º, djgpp)¿¡´Â opendir()¿Í readdir() ÇÔ¼ö°¡ ÀÖÁö¸¸, À̵éÀº MSVC¿¡´Â ¾ø½À´Ï´Ù. ±×·¯¹Ç·Î ÀÌ·¯ÇÑ ÀÏÀ» ¾Æ¿¹ ÇÏÁö ¾Ê°Å³ª, ¸ðµç Ç÷§Æû¿¡¼­ Áö¿øµÇ´Â AllegroÀÇ for_each_file() ÇÔ¼ö¸¦ »ç¿ëÇϽʽÿÀ.

  • gcc ¹®¼­ÀÇ "C È®Àå (Extensions)" ÆäÀÌÁö¸¦ ÀÐ¾î º¸½Ê½Ã¿À. ¿©±â¿¡´Â a) ¸Å¿ì ÈǸ¢Çϸç, b) gcc À̿ܿ¡´Ì ÄÄÆÄÀÏ·¯¿¡¼­´Â Áö¿øµÇÁö ¾Ê´Â ¸¹Àº °ÍµéÀÌ ÀÖÀ¸¹Ç·Î, ÀÌ½Ä °¡´ÉÇÑ Äڵ带 ÀÛ¼ºÇÏ·Á¸é ºÒÇàÈ÷µµ ±×°ÍÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. __stdcall, __declspec µîÀÇ MSVC¿¡¼­ »ç¿ëÇÏ´Â °Íµéµµ »ç¿ëÇÏ¿©¼­´Â ¾ÊµË´Ï´Ù. ±×·¸Áö¸¸ À̰͵éÀº gcc°¡ ÇÒ ¼ö ÀÖ´Â ¸ðµç Àç¹Ì ÀÖ´Â ÀÏµé °°ÀÌ ¸Å·ÂÀûÀÌÁö´Â ¾Ê½À´Ï´Ù :-)

  • ¸ðµç ÄÄÆÄÀÏ·¯°¡ ÀζóÀÎÀ» Áö¿øÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î, C ÇÔ¼ö¸¦ ÀζóÀÎÀ¸·Î ¼±¾ðÇÏÁö ¸¶½Ê½Ã¿À. ¼º´É ÃÖÀûÈ­¸¦ À§ÇØ ÀζóÀÎÀ» »ç¿ëÇÏ°í ½Í´Ù¸é AllegroÀÇ INLINE ¸ÅÅ©·Î¸¦ ´ë½Å »ç¿ëÇϽʽÿÀ. À̰ÍÀº ÀζóÀÎÀ» Áö¿øÇÏ´Â ÄÄÆÄÀÏ·¯¿¡ ´ëÈ÷¼­´Â inlineÀ¸·Î Á¤ÀǵǸç, Ư¼ö ¹®ÀÚ¸¦ ÁÁ¾ÆÇÏ´Â MSVC¿Í °°Àº ¹Ùº¸°°Àº ÄÄÆÄÀÏ·¯¿¡ ´ëÇØ¼­´Â __inlineÀ¸·Î, ¶Ç ÀüÇô ÀζóÀÎÀ» »ç¿ëÇÒ ¼ö ¾ø´Â ÄÄÆÄÀÏ·¯¿¡ ´ëÇØ¼­´Â ¹«½ÃÇϵµ·Ï Á¤Àǵ˴ϴÙ. ÀζóÀÎ ÇÔ¼ö¸¦ Çì´õ ÆÄÀÏ¿¡¼­ ¼±¾ðÇÏ·Á¸é ¸Å¿ì ÁÖÀÇÇÏ¿©¾ß ÇÕ´Ï´Ù. Allegro´Â ¸ðµç ÄÄÆÄÀÏ·¯¿¡ ´ëÇØ¼­ AL_INLINE() ¸ÅÅ©·Î¿Í inline.c ¶óÀ̺귯¸® ¼Ò½º ÆÄÀÏÀÇ Á¶ÇÕÀ¸·Î À̰ÍÀ» ó¸®ÇÏÁö¸¸, À̰ÍÀº ÁöÀúºÐÇÑ ÀÛ¾÷ÀÌ¸ç ¸ðµç ÃÖÀûÈ­¿Í µð¹ö±× ºôµå¿¡¼­ µ¿ÀÛÇϵµ·Ï ÇÏ´Â °ÍÀº ½±Áö ¾Ê½À´Ï´Ù. ±×·¯¹Ç·Î °¡´ÉÇÑÇÑ ÀÌ·± ÀÛ¾÷Àº ÇÇÇÏ´Â °ÍÀÌ ÁÁ´Ù°í ¸»¾¸µå¸®°í ½Í½À´Ï´Ù. ±¸Áö »ç¿ëÇÏ°í ½Í´Ù¸é Allegro¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ inline.c¿¡ ´ëÇ×ÇÏ´Â ÀÚ½ÅÀÇ ÆÄÀÏÀ» ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡ÇÏ¿©¾ß ÇÒ °ÍÀ̸ç, ¸ðµç Ãß°¡µÇ´Â ÀζóÀÎ ÇÔ¼öÀÇ Á¤Àû º¹»çº»À» »ý¼ºÇϵµ·Ï Çϸ鼭 allegro.hÀÇ ÀζóÀÎ ÇÔ¼öÀÇ Á¤Àû º¹»çº» (ÀÌ¹Ì inline.c¿¡¼­ »ý¼ºµÇµµ·Ï µÇ¾î ÀÖ´Â °Í)Àº »ý¼ºÇÏÁö ¾Êµµ·Ï ÇÏ´Â Á¤¸® ÀÛ¾÷À» ¾î¶»°Ôµç ÇØ ÁÖ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù. inline.c¿Í °ü·ÃµÈ ÀÛ¾÷À» ÇÏÁö ¾ÊÀ» ¼ö´Â ÀÖÁö¸¸, ÀÌ °æ¿ì¿¡´Â ÃÖÀûÈ­¸¦ ÇÏÁö ¾Ê´Â µð¹ö±× ºôµå³ª, ÀζóÀÎ ÇÔ¼ö¸¦ Áö¿øÇÏÁö ¾Ê´Â Watcom°ú °°Àº ÄÄÆÄÀÏ·¯¿¡¼­´Â ½ÇÆÐÇÒ °æ¿ì°¡ ¸¹À» °ÍÀÔ´Ï´Ù.

  • ÀζóÀÎ ¾î¼Àºí·¯¸¦ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À! (À̰ÍÀº ¸Å¿ì ¸í¹éÇÕ´Ï´Ù). ¹Ýµå½Ã ¾î¼Àºí¸®¾î·Î ÀÛ¼ºÇÏ¿©¾ß ÇÑ´Ù¸é, C·Î ÇÁ·ÎÅäŸÀÔ ¹öÀüÀ» ¸ÕÀú ¸¸µé°í ³ª¼­ ÃÖÀûÈ­µÈ ¾î¼Àºí¸®¾î ¹öÀüÀ» ½ÃÀÛÇϱâ Àü¿¡ ÁÖ¼®¹®À¸·Î ¸¸µå½Ê½Ã¿À. ÀÌ·¸°Ô Çϸé, ³ªÁß¿¡ ´Ù¸¥ Ç÷§Æû¿¡¼­ µ¿ÀÛÇϵµ·Ï ÇÏ°í ½ÍÀº °æ¿ì¿¡, ¾î¼Àºí¸®¾î ºÎºÐÀ» ÁÖ¼®¹®À¸·Î ¹­°í, ¿ø·¡ÀÇ C ¹öÀüÀ» º¹±¸Çϸé, ¸ðµç °ÍÀ» ÀçÀÛ¼ºÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ¾î¼Àºí¸®¾î Äڵ带 C ¼Ò½º¿¡¼­ ÀζóÀÎÀ¸·Î ÀÛ¼ºÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ¿ÜºÎÀÇ .s ÆÄÀÏ·Î ÀÛ¼ºÇÏ¿© NASM µîÀ» ÀÌ¿ëÇϵµ·Ï ÇÑ´Ù¸é, º¸´Ù À̽ÄÇϱ⠽¬¿ö Áö´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¾ÆÁ÷ Ç÷§Æû »çÀÌÀÇ Â÷ÀÌÁ¡ÀÌ Á¸ÀçÇϰí ÀÖÁö¸¸ (¿¹¸¦ µé¾î, djgpp¿¡¼­´Â ½Éº¼ À̸§ ¾Õ¿¡ ¹ØÁÙÀÌ ºÙÁö¸¸ ¸®´ª½º¿¡¼­´Â ±×·¸Áö ¾Ê½À´Ï´Ù), ÀÌ·± ¹®Á¦Á¡Àº ¸î°¡Áö Àüó¸® ¸ÅÅ©·Î¸¦ »ç¿ëÇÏ¿© ÇØ°áµÉ ¼ö ÀÖ½À´Ï´Ù. ¿ÜºÎÀÇ ¾î¼Àºí¸®¾î ¼Ò½º ÆÄÀÏÀ» djgpp¿Í ÀÎÅÚ ¸®´ª½º, ÀÎÅÚ BeOS Ç÷§Æû¿¡¼­ °øÀ¯ÇÏ´Â °ÍÀº ¸Å¿ì °£´ÜÇÑ ÀÏÀ̸ç, Allegro´Â ½ÉÁö¾î °°Àº ¼Ò½º¸¦ MSVC¿Í Watcom¿¡¼­µµ »ç¿ëÇϵµ·Ï ÇÕ´Ï´Ù! À̰ÍÀº »õ·Î¿î ÄÄÆÄÀÏ·¯°¡ Àû¿ëµÉ ¶§¸¶´Ù ¸ðµÎ »õ·Î ÀÛ¼ºÇÏ¿©¾ß ÇÏ´Â ÀζóÀÎ ¾î¼Àºí·¯¿¡ ºñÇØ ¸Å¿ì ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù. ÇÏÁö¸¸ ÀÎÅÚÀÇ ¾î¼Àºí¸®¾î´Â PPC, MIPS, Alpha ÇÁ·Î¼¼¼­¿¡¼­´Â ¿Ã¹Ù¸£°Ô µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀ̹ǷΠÁøÁ¤À¸·Î ÀÌ½Ä °¡´ÉÇϱ⿡´Â ¾ÆÁ÷ ¸Å¿ì ºÎÁ·ÇÑ °ÍÀÓ¿¡´Â Ʋ¸² ¾ø½À´Ï´Ù :-)

  • C++·Î ÀÛ¼ºÇÏ´Â °æ¿ì¿¡´Â Á¶½ÉÇÏ¿©¾ß ÇÕ´Ï´Ù. ¸ðµç ÄÄÆÄÀÏ·¯°¡ ¾ÆÁ÷±îÁö Àüü ¾ð¾î ½ºÆåÀ» Áö¿øÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î, ƯÈ÷ »õ·Î¿î ¾ð¾î Ư¼º°ú °ü·ÃµÈ ³»¿ë¿¡ ´ëÇÏ¿© ÁÖÀÇÇϽʽÿÀ. À̸§ ¿µ¿ª°ú ¿¹¿Ü 󸮴 ƯÈ÷ ¹®Á¦°¡ ¸¹Àº °ÍÀÌÁö¸¸, ÅÛÇø®Æ® ÀνºÅϽºµµ ¾î¶² ½Ã½ºÅÛ¿¡¼­´Â ´Ù¸£°Ô µ¿ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ½Ã°£ÀÌ Áö³ª¸é ÀÌ·¯ÇÑ ¹®Á¦µéÀÌ Á¡Â÷ ÇØ°áµÉ °ÍÀ̰í, 2³â Àüº¸´Ù ÇöÀç°¡ ÈξÀ ´ú ¾î»öÇØ Á³Áö¸¸, C++ÀÇ ¿ø·¡ Çٽɸ¸À» »ç¿ëÇÑ´Ù¸é (Ŭ·¡½º, »ó¼Ó, °¡»ó ÇÔ¼ö µî) ´õ¿í À̽ļºÀÌ ³ô¾ÆÁú °ÍÀÔ´Ï´Ù.

  • ÄÄÆÄÀÏ·¯ÀÇ ¾ö°ÝÇÑ °æ°í ¸ðµå(strict warning mode)¸¦ ÄÑ°í ³ª¿À´Â ¸ðµç ¸Þ½ÃÁö¸¦ »ìÆì º¸µµ·Ï ÇϽʽÿÀ. Á¾Á¾ ÇϳªÀÇ Ç÷§Æû¿¡¼­ÀÇ °æ°í°¡ ´Ù¸¥ Ç÷§Æû¿¡¼­ ¿¡·¯°¡ µÇ´Â °æ¿ì°¡ ÀÖÀ¸¸ç, À̰ÍÀ» ÇØ°áÇß´Ù°í ÇÏ¿©µµ ÄÄÆÄÀÏ·¯ °æ°í´Â Àǽɽº·¯¿î ÄÚµåÀÇ ½ÅÈ£À̹ǷΠÇ×»ó Á¤Á¤µÉ °¡Ä¡°¡ ÀÖ½À´Ï´Ù.

  • µð¹ö±ë ¹öÀüÀÇ Allegro ¶óÀ̺귯¸®´Â ¹®Á¦ÀÇ ¼ÒÁö°¡ ÀÖ´Â ºÎºÐ¿¡ ´ëÇÑ °æ°í¸¦ Á¦°øÇÏ´Â ¸î°¡Áö Ãß°¡ Á¡°Ë ±â´ÉÀ» Æ÷ÇÔÇϰí ÀÖÀ¸¹Ç·Î, µð¹ö±ë ¹öÀüÀÇ ¶óÀ̺귯¸®¸¦ ¸µÅ©ÇϽʽÿÀ. ÇÏÁö¸¸ µð¹ö±ë ¹öÀüÀº ¸Å¿ì ´À¸®¹Ç·Î ÃÖÁ¾ ÇÁ·Î±×·¥À» °ø°³Çϱâ Àü¿¡ ÃÖÀûÈ­µÈ ¶óÀ̺귯¸®·Î ±³Ã¼ÇÏ´Â °ÍÀ» ÀØÁö´Â ¸¶½Ê½Ã¿À.

  • ¸î°¡Áö ÄÄÆÄÀÏ·¯¿¡¼­´Â char º¯¼ö°¡ ºÎÈ£°¡ ÀÖ´Â °ªÀ̸ç, ¾î¶² ÄÄÆÄÀÏ·¯¿¡¼­´Â ºÎÈ£ ¾ø´Â °ªÀÌ µË´Ï´Ù. À̰Ϳ¡ ´ëÇØ ´Ù·ç·Á¸é (Áï, ¼öÇÐ °è»êÀ» Çϰųª 1¹ÙÀÌÆ®¿¡ À½¼ö °ªÀ» ÀúÀåÇÏ·Á¸é), º¯¼öÇüÀ» signed char³ª unsigned char·Î Ç×»ó ¸í½ÃÇÏ¿© ÁÖ¾î¾ß ÇÕ´Ï´Ù. short, int, long º¯¼ö´Â ´Ù¸£°Ô ÁöÁ¤ÇÏÁö ¾Ê´Â ÀÌ»ó ºÎÈ£ ÀÖ´Â °ªÀÌ µÇ¹Ç·Î, ±×³É »ç¿ëÇÏ¿©µµ ¹®Á¦°¡ ¾ø½À´Ï´Ù.

  • ½ºÅÃÀÌ °¡»ó ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ¿© µ¿ÀûÀ¸·Î È®ÀåµÇ´Â À¯´Ð½º¿Í´Â ´Þ¸®, µµ½º ÄÄÆÄÀÏ·¯ (À©µµ¿ìÁî¿ëµµ ¸¶Âù°¡ÁöÀÏ °ÍÀ¸·Î »ý°¢ÇÏÁö¸¸)´Â Á¦ÇÑµÈ ½ºÅà »çÀÌÁ °®°í ÀÖÀ½À» ±â¾ïÇϽʽÿÀ. ±×·¯¹Ç·Î ½ºÅÿ¡ Ä¿´Ù¶õ Áö¿ª ¹è¿­À» ¼±¾ðÇÏÁö ¸¶½Ê½Ã¿À: ¸®´ª½º¿¡¼­´Â µ¿ÀÛÇϰÚÁö¸¸ ´Ù¸¦ °÷¿¡¼­´Â ±×·¸Áö ¾Ê½À´Ï´Ù.

  • À©µµ¿ìÁî¿¡¼­ µµ½º ÇÁ·Î±×·¥À» °³¹ßÁßÀÎ °æ¿ì, ÀÚÁÖ ±ú²ýÇÑ µµ½º ¸ðµå¿¡¼­ CWSDPMI¸¦ DPMI ¼­¹ö·Î »ç¿ëÇÏ¿© µ¿ÀÛÇϴ°¡¸¦ Å×½ºÆ®ÇÏ¿©¾ß ÇÕ´Ï´Ù. À̰ÍÀº CWSDPMI°¡ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® DPMI ±¸Çö¿¡¼­ ºüÆ®¸° ¸î°¡Áö DPMI 1.0 ÇÔ¼ö¸¦ Áö¿øÇϸç, À̰ÍÀÌ djgpp°¡ NULL Æ÷ÀÎÅÍ ÂüÁ¶¸¦ Á¦°ÅÇÏ·Á´Â °æ¿ì¿¡ ¸Þ¸ð¸® ¾ï¼¼½º ¿¡·¯¸¦ À¯¹ßÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. À©µµ¿ìÁî¿¡¼­ ÇÁ·Î±×·¥ÀÌ µ¿ÀÛÇÏÁö¸¸ CWSDPMI¿¡¼­´Â µ¿ÀÛÇÏÁö ¾Ê´Â´Ù¸é, ºÐ¸í ¸î°¡Áö Æ÷ÀÎÅÍ ¹ö±×°¡ ÀÖÀ» °ÍÀ̸ç, Â÷ÈÄ¿¡ ´õ¿í ÁÁÁö ¾ÊÀº »óȲÀ» ¸¸µé ¼ö ÀÖÀ¸¸ç, ´Ù¸¥ Ç÷§ÆûÀ¸·Î Äڵ带 À̽ĽÃų ¶§ ³¡¾ø´Â È¥¶õÀ» À¯¹ßÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ¹Ýµå½Ã °íÃÄ ÁÖ¾î¾ß ÇÕ´Ï´Ù.

  • ÄÄÆÄÀÏ·¯°¡ ±¸Á¶Ã¼¸¦ ¸Þ¸ð¸®¿¡ ¹èÄ¡ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ °¡Á¤À» ÇÏÁö ¸¶½Ê½Ã¿À. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ °æ¿ì:
       typedef struct MYSTRUCT
       {
          char a;
          short b;
          int c;
       };
    
    sizeof(MYSTRUCT)°¡ 7ÀÌ µÉ °ÍÀ¸·Î ¿¹»óÇÒ ¼ö ÀÖ°ÚÁö¸¸, ½ÇÁ¦·Î ´ëºÎºÐÀÇ ÀÎÅÚ ÄÄÆÄÀÏ·¯´Â 8¹ÙÀÌÆ®·Î ¸¸µé °ÍÀÔ´Ï´Ù. ¶ÇÇÑ 12¹ÙÀÌÆ®ÀÇ ¿µ¿ªÀ» Â÷ÁöÇÏ°Ô µÇ´Â °æ¿ìµµ ¸¹À¸¸ç, ¹Ì·¡ÀÇ 64ºñÆ® Ç÷§ÆûÀº int º¯¼ö¸¦ ¿¹»óÇÏ´Â °Íº¸´Ù µÎ¹è·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ÀÌ¿Í °°Àº º¯µ¿ °¡´ÉÇÑ »çÇ×À» »ç¿ëÇÏ´Â ÄÚµåÀÇ »ç¿ëÀº ÇÇÇϵµ·Ï ÇÏ¿©¾ß Çϸç, µ¥ÀÌÅÍ ±¸Á¶Ã¼¸¦ À§ÇÑ °ø°£À» ÇÒ´çÇÒ ¶§¿¡ ¹Ýµå½Ã sizeof()¸¦ »ç¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù.

  • fread()³ª pack_fread() ÇÔ¼ö¸¦ ´ÜÀÏ ¹ÙÀÌÆ® ´ÜÀ§ÀÇ µ¥ÀÌÅÍ ½ºÆ¼¸²ÀÌ ¾Æ´Ñ ´Ù¸¥ °ÍÀ» ·ÎµùÇϴµ¥ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. ¸¶Âù°¡Áö·Î fwrite()³ª pack_fwrite()¸¦ ´ÜÀÏ ¹ÙÀÌÆ® µ¥ÀÌÅÍ ÀÌ¿ÜÀÇ °ÍÀ» ÀúÀåÇϴµ¥ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. ±×·¸Áö ¾ÊÀ» °æ¿ì, ÀúÀåµÈ ÆÄÀÏÀº ÄÄÆÄÀÏ·¯ÀÇ ¸Þ¸ð¸® ±¸Á¶Ã¼ »ý¼º ¹æ½Ä¿¡ µû¶ó ¹Ù²î°Ô µÉ °ÍÀ̸ç, ÇÁ·Î¼¼¼­ÀÇ ¿£µð¾È ¹æ½ÄÀÌ ´Ù¸¥ ½Ã½ºÅÛ¿¡ ´ëÇÏ¿© À̽ÄÀÌ µÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ¹ÙÀ̳ʸ® ÆÄÀÏÀ» ÀÌ½Ä °¡´ÉÇÑ ¹æ½ÄÀ¸·Î ÀÐÀ¸·Á¸é, °¢ 16ºñÆ®, 32ºñÆ® °ªÀ» Â÷·Ê·Î pack_igetw()¿Í pack_igetl() (µð½ºÅ© ÆÄÀÏ Æ÷¸ËÀÇ ¿£µð¾È ¹æ½Ä¿¡ µû¶ó¼­´Â pack_mgetw()¿Í pack_mgetl())À» »ç¿ëÇÏ¿© Àü´ÞÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. AllegroÀÇ src/bmp.c ÆÄÀÏÀº ¿Ã¹Ù¸£°Ô ÀÌ ÀÏÀ» ¼öÇàÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ´Â ¾ÆÁÖ ÁÁÀº ¿¹ÀÔ´Ï´Ù.

  • AllegroÀÇ dat2s À¯Æ¿¸®Æ¼´Â asm ¼Ò½º ÆÄÀÏÀ» »ý¼º½ÃÄÑ ÀüÇô ´Ù¸¥ asm ¹®¹ýÀ» »ç¿ëÇÏ´Â Ç÷§Æû¿¡¼­´Â µ¿ÀÛÇÏÁö ¾Êµµ·Ï ÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌ½Ä °¡´ÉÇÑ Äڵ忡¼­´Â »ç¿ëÇÏ´Â °ÍÀ» ÇÇÇÏ¿©¾ß ÇÕ´Ï´Ù (C ÄÚµå Ãâ·ÂÀ̶ó¸é ÈξÀ ´õ À̽ļºÀÌ ³ôÀ» °ÍÀÌÁö¸¸, gcc³ª MSVC ¸ðµÎ ÃʱâÈ­µÈ Ä¿´Ù¶õ ¹è¿­À» Æ÷ÇÔÇÏ´Â C ¼Ò½º¸¦ ÄÄÆÄÀÏÇÒ ¼ö ¾øÀ¸¹Ç·Î, ½ÇÁ¦·Î´Â ¹Ýµå½Ã ±×·¸Áö¸¸Àº ¾Ê½À´Ï´Ù). ÀÌ»óÇϰԵµ exedat À¯Æ¿¸®Æ¼´Â ´Ù¸¥ Ç÷§Æûµé¿¡¼­ ÈξÀ ´õ ½Å·Ú¼ºÀÖ°Ô µ¿ÀÛÇÏ´Â °ÍÀ¸·Î º¸À̹ǷÎ, µ¥ÀÌÅÍ ¸®¼Ò½º¸¦ ½ÇÇà ÆÄÀÏ¿¡ ÇÕÄ¡´Â °æ¿ì ù¹øÂ° À̽ÄÀ» À§ÇÑ È£ÃâÀÌ µÉ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ À̽ļºÀÌ °¡Àå Áß¿äÇÑ °æ¿ì¶ó¸é, °¡Àå ¾ÈÀüÇÑ ¹æ¹ýÀº ÀÌµé ¸ðµÎ¸¦ »ç¿ëÇÏÁö ¾Ê°í ¿ÜºÎ ÆÄÀÏ¿¡¼­ µ¥ÀÌÅ͸¦ Àеµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù.

  • µµ½º¿¡¼­ ÆÄÀÏ À̸§Àº 8.3 Çü½ÄÀ̸ç, ´ë¼Ò¹®ÀÚ ±¸º°ÀÌ ¾ø½À´Ï´Ù. À©µµ¿ìÁî¿¡¼­´Â ´õ ±ä ÆÄÀÏÀ̸§À» »ç¿ëÇÏ¸ç ´ë¼Ò¹®ÀÚ°¡ À¯ÁöµÇµµ·Ï ±â¾ïµÇÁö¸¸ ´ë¼Ò¹®ÀÚ°¡ ´Ù¸£°Ô ÀνĵÇÁö´Â ¾ÊÀ¸¹Ç·Î, "MyFile"Àº "myfILe"°ú °°Àº °ÍÀÔ´Ï´Ù. À¯´Ð½º¿¡¼­´Â ±ä ÆÄÀÏ À̸§À» »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, ´ë¼Ò¹®ÀÚµµ ±¸º°ÇÏ¿© »ç¿ëÇϹǷÎ, "MyFile"°ú "myfILe"Àº ¿ÏÀüÈ÷ ´Ù¸¥ °ÍÀÔ´Ï´Ù. À̽ļºÀÌ À¯ÁöµÇ±â¸¦ ¹Ù¶õ´Ù¸é 8.3 Æ÷¸ËÀÇ ¼Ò¹®ÀÚ À̸§¸¸À» »ç¿ëÇϰí, Á¤±Ô ¾ËÆÄºª ¹®ÀÚ ÀÌ¿ÜÀÇ °ÍÀº »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. ÀÌ·¯ÇÑ À̸§Àº ¾î´À °÷¿¡¼­³ª µ¿ÀÛµÉ °ÍÀÓÀ» È®½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.

  • µµ½º¿Í À©µµ¿ìÁî´Â '\'¸¦ ÆÄÀÏ ÆÐ½ºÀÇ ±¸ºÐÀÚ·Î »ç¿ëÇÏÁö¸¸, '/'µµ ÀνÄÇÕ´Ï´Ù. À¯´Ð½º´Â ¿ÀÁ÷ '/'¸¸À» »ç¿ëÇϹǷÎ, À̽ļºÀ» º¸ÀåÇÏ·Á¸é Ç×»ó '/'¸¦ »ç¿ëÇÏ¿©¾ß ÇÒ °ÍÀÔ´Ï´Ù.

  • ÆÄÀÏ À̸§À» Á¶ÀÛÇÏ´Â °æ¿ì, ´Ù¸¥ ½Ã½ºÅÛ¿¡¼­´Â ¿ÏÀüÈ÷ ´Ù¸¥ Àǹ̰¡ µÉ ¼öµµ ÀÖÀ¸¹Ç·Î, Á¶½ÉÇÏ¿©¾ß ÇÕ´Ï´Ù. Allegro´Â ÀÌ·¯ÇÑ ÀÛ¾÷À» À§ÇØ ´Ù¸¥ Ç÷§Æû¿¡¼­ÀÇ ¾à°£ÀÇ Â÷ÀÌ¿¡ ¿µÇâ¹ÞÁö ¾Ê´Â fix_filename_case(), fix_filename_path()¿Í °°Àº ¸î°¡Áö ÇÔ¼ö¸¦ Á¦°øÇÕ´Ï´Ù.

  • ´ëºÎºÐÀÇ µµ½º¿Í À©µµ¿ìÁî ÄÄÆÄÀÏ·¯´Â ¿ÍÀϵåÄ«µå Ä¿¸Çµå¶óÀÎ Àμö¸¦ ÇÁ·Î±×·¥¿¡ ±×´ë·Î Àü´ÞÇÒ °ÍÀÌÁö¸¸, À¯´Ð½º¿¡¼­´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ±â Á¯¿¡ ¼Ð¿¡ ÀÇÇØ ¿ÍÀϵåÄ«µå°¡ µ¶¸³Àû ÆÄÀÏÀÇ ¸®½ºÆ®·Î È®ÀåµË´Ï´Ù. djgpp¿¡¼­´Â __crt0_glob_function()À¸·Î ¿ÍÀϵåÄ«µå ÀÚµ¿ È®Àå ±â´ÉÀ» ¿À¹ö¶óÀ̵åÇÏÁö ¾Ê´Â´Ù¸é, À¯´Ð½º ¼ÐÀÇ ±â´ÉÀ» ¿¡¹Ä·¹ÀÌÆ®ÇÕ´Ï´Ù. ÀÌ½Ä °¡´ÉÇÑ ÇÁ·Î±×·¥Àº ¹Ýµå½Ã ¿ÍÀϵåÄ«µå Àμö°¡ È®ÀåµÇ¾î Àü´ÞµÇ°Å³ª ±×´ë·Î Àü´ÞµÇ´Â °Í¿¡ °ü°è ¾øÀÌ µ¿ÀÛÇÏ¿©¾ß ÇϹǷÎ, µÎ°¡Áö °æ¿ì ¸ðµÎ¿¡ ´ëºñÇÏ¿© ¼³°èµÇ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, dat À¯Æ¿¸®Æ¼´Â À¯´Ð½º ¼Ð ¹æ½ÄÀÇ ÆÄÀÏ ¸®½ºÆ®¸¦ Àü´Þ¹ÞÀ» ¼ö ÀÖµµ·Ï ±¸¼ºµÇ¾úÁö¸¸, ³»ºÎÀûÀ¸·Î for_each_file()À» °¢ Àμö¿¡ ´ëÇÏ¿© È£ÃâÇÏ¿© ¿ÍÀϵåÄ«µå°¡ ±×´ë·Î Àü´ÞµÈ °æ¿ì¿¡µµ È®ÀåÀÌ ÀϾµµ·Ï ÇÕ´Ï´Ù.

  • µµ½º¿Í À©µµ¿ìÁî¿¡¼­´Â ÇÁ·Î±×·¥ÀÌ ÇϳªÀÇ µð·ºÅ丮¿¡ ¼³Ä¡µÇ´Â °æÇâÀÌ ÀÖÁö¸¸, À¯´Ð½º¿¡¼­´Â ´ÙÁß »ç¿ëÀÚ È¯°æÀ» ÀνÄÇÏ¸ç ÆÄÀÏ ±¸Á¶ Ç¥ÁØ(FHS)À» µû¸£´Â ÇÁ·Î±×·¥À» ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ¼±È£ÇÒ °ÍÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº http://www.pathname.com/fhs/¿¡¼­ Àо ¼ö ÀÖÁö¸¸, ´ÙÀ½°ú °°ÀÌ ¿ä¾àÇÒ ¼ö ÀÖ½À´Ï´Ù:

    °¡Àå Áß¿äÇÑ °ÍÀº, Àбâ Àü¿ë µ¥ÀÌÅÍ, Àü¿ª °¡º¯ µ¥ÀÌÅÍ, »ç¿ëÀÚ °ü·Ã µ¥ÀÌÅ͸¦ ±¸ºÐÇÏ´Â °ÍÀÔ´Ï´Ù. ´©±º°¡°¡ ´ç½ÅÀÇ °ÔÀÓÀ» ´Ù¿î·ÎµåÇÏ¿© ¾ÐÃàÀ» Ç®°í ÄÄÆÄÀÏÇÏ¿© ½ÇÇà½ÃŲ´Ù°í °¡Á¤ÇÏ´Â °æ¿ì, ±×°ÍÀÌ ¼³Ä¡µÈ µð·ºÅ丮¸¦ °ÔÀÓÀÌ ÀüÇô ¼öÁ¤ÇÏÁö ¾Ê¾Æ, µð·ºÅ丮°¡ Àбâ Àü¿ëÀ¸·Î ¸¶¿îÆ®µÉ ¼ö ÀÖ´Ù¸é ¹®Á¦°¡ ¾ø½À´Ï´Ù. ÇÏÀ̽ºÄÚ¾î Å×À̺í°ú °°Àº °¡º¯ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ·Á¸é, À̰ÍÀ» /var/games µð·ºÅ丮¿¡ ³ÖÀ¸½Ê½Ã¿À (¶Ç´Â ¸¹Àº ÆÄÀÏÀ» ÀúÀå½ÃŰ´Â °ÍÀÌ ÇÊ¿äÇÑ °æ¿ì /var/games/mygame ¼­ºêµð·ºÅ丮¸¦ »ý¼º½ÃŰ°í µ¥ÀÌÅ͸¦ ±×°÷¿¡ ÀúÀåÇϽʽÿÀ). °°Àº ½Ã½ºÅÛ¿¡ ¸¹Àº »ç¿ëÀÚ°¡ ÀÖÀ» ¼ö ÀÖÀ¸¸ç, °°Àº ÀúÀåµÈ Á¤º¸¸¦ °øÀ¯ÇÒ ¼öµµ ÀÖÀ½À» ÀØÁö ¸¶½Ê½Ã¿À! ÇöÀç »ç¿ëÀÚ¿¡ ÇÑÁ¤µÇ´Â ¾î¶² °ÍÀ̵ç (°ÔÀÓ ÆÄÀÏ ÀúÀåÀ̳ª ÄÁÆ®·Ñ·¯ ¼³Á¤ µî) HOME ȯ°æ º¯¼ö¸¦ Àоî ãÀ» ¼ö ÀÖ´Â (¿¹: char *mydir = getenv("HOME")) »ç¿ëÀÚÀÇ È¨ µð·ºÅ丮¿¡ ÀúÀåÇÏ¿©¾ß ÇÕ´Ï´Ù. ¿ª½Ã, ¸¹Àº ÆÄÀÏÀ» ÀúÀåÇÒ Çʿ䰡 ÀÖ´Ù¸é, ¼­ºêµð·ºÅ丮¸¦ Á÷Á¢ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

    ´ÙÁß »ç¿ëÀÚ È¯°æ¿¡¼­ °ÔÀÓÀÌ µ¿ÀÛÇϵµ·Î°í Çϱ⿡´Â À̰ÍÀ¸·Î ÃæºÐÇÏÁö¸¸, Á¤¸»·Î ¾Æ¸§´Ù¿î ¼³Á¤À» ¿øÇÑ´Ù¸é (¿¹¸¦ µé¾î, Á¤±Ô ÄÄÆÄÀÏ ±ÔÄ¢°ú ÇÔ²² "make install"À» Á¦°øÇÏ·Á¸é), ´ÙÀ½ÀÇ Àå¼Ò¸¦ ¾Ë°í ÀÖ¾î¾ß ÇÕ´Ï´Ù:

    ´ëºÎºÐÀÇ ¹ÙÀ̳ʸ®´Â /usr/local/bin¿¡ ÀúÀåµÇÁö¸¸, °ÔÀÓÀº /usr/local/games¿¡ ÀúÀåµÇ¾î¾ß ÇÕ´Ï´Ù. ÀÌ µð·ºÅ丮´Â ÇöÀç ½Ã½ºÅÛ¿¡¼­ »ç¿ëÀÚ¿¡ ÀÇÇØ Á÷Á¢ ½ÇÇà½Ãų ¼ö ÀÖ´Â ½ÇÇàÆÄÀÏ ÀÚü¸¸À» À§ÇÑ °÷ÀÔ´Ï´Ù.

    °øÀ¯ ¶óÀ̺귯¸®¿Í ´Ù¸¥ ½ÇÇà ÄÚµå´Â /usr/local/lib¿¡ ÀúÀåµË´Ï´Ù. ÀÌ µð·ºÅ丮ÀÇ ³»¿ëÀº ¿ª½Ã ÇϳªÀÇ ½Ã½ºÅÛ¿¡ ´ëÇÑ °ÍÀÌÁö¸¸, »ç¿ëÀÚ´Â À̰ÍÀ» Á÷Á¢ ½ÇÇà½ÃŰÁö´Â ¾Ê½À´Ï´Ù (¿¹¸¦ µé¾î, Allegro °øÀ¯ ¶óÀ̺귯¸®´Â À̰÷¿¡ ÀúÀåµË´Ï´Ù).

    ½ÇÇàÆÄÀÏÀÌ ¾Æ´Ñ ¸®¼Ò½º´Â /usr/local/share/¿¡ ÀúÀåµÇ°Å³ª, °ÔÀÓ¿¡ ´ëÇÏ¿©´Â, /usr/local/share/games/ ÀúÀåµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮´Â ¾î¶°ÇÑ Å¸ÀÔÀÇ ÄÄÇ»ÅÍ¿¡¼­ °ÔÀÓÀÌ ½ÇÇàµÇ¾îµµ µ¿ÀÏÇÏ°Ô À¯ÁöµÇ´Â Á¤º¸°¡ ÀúÀåµÇ´Â °ÍÀÔ´Ï´Ù. ±×·¯¹Ç·Î i386 ½Ã½ºÅÛ°ú Alpha ¹Ú½º, PPC ½Ã½ºÅÛÀÌ È¥¿ëµÇ´Â ³×Æ®¿öÅ©¿¡¼­ »ç¿ëµÇ´Â °æ¿ì, °°Àº µ¥ÀÌÅ͸¦ ¸ðµç Çϵå¿þ¾î¿¡¼­ ³×Æ®¿öÅ©¸¦ ÅëÇØ ¸¶¿îÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. Çϳª ÀÌ»óÀÇ ÆÄÀÏÀ» ÀúÀåÇÏ¿©¾ß ÇÑ´Ù¸é ¼­ºêµð·ºÅ丮¸¦ ¸¸µé¾î ±×°÷¿¡ ¸ðµÎ ÀúÀåÇϽʽÿÀ.

  • ƯÁ¤ µå¶óÀ̹ö À̸§À» ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. ¿¹¸¦ µé¾î, GFX_VESA2LÀº À©µµ¿ìÁî ¹öÀü¿¡´Â ¾øÀ¸¸ç, MIDI_WIN32´Â ¸®´ª½º¿¡¼­´Â »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ¸Å¿ì Ưº°ÇÑ È¯°æ (¿¹¸¦ µé¾î, ¼Â¾÷ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â °æ¿ì :-)À» Á¦¿ÜÇϰí´Â Ç×»ó ÀÚµ¿ °ËÃâ ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÏ¿©¾ß Çϸç, »ç¿ëÀÚ°¡ ¼Â¾÷ ÇÁ·Î±×·¥À» »ç¿ëÇϰųª ¼³Á¤ ÆÄÀÏÀ» ¼öÁ¤ÇÏ¿© ÀÚµ¿ °ËÃâÀ» ¿À¹ö¶óÀ̵åÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. À̽ļº °ü·ÃµÈ ³»¿ëÀ» Á¦Ãĵδõ¶óµµ, µå¶óÀ̹ö ¼±ÅÃÀ» ÇϵåÄÚµùÇÏ´Â °ÍÀº ¸ðµç »ç¶÷ÀÌ µ¿ÀÏÇÑ Çϵå¿þ¾î¸¦ »ç¿ëÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î ÁÁÁö ¾ÊÀº »ý°¢ÀÔ´Ï´Ù. ƯÁ¤ ±×·¡ÇÈ µå¶óÀ̹ö°¡ ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡¼­ °¡Àå Àß µ¿ÀÛÇÑ´Ù°í ÇÏ´õ¶óµµ ´Ù¸¥ »ç¶÷ÀÇ ½Ã½ºÅÛ¿¡¼­´Â µ¿ÀÛÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù.

  • ƯÁ¤ Çϵå¿þ¾î µå¶óÀ̹ö¿¡ ÀÇÁ¸Çϴ Ưº°ÇÑ Äڵ带 ÀÛ¼ºÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì¿¡´Â ÇöÀç Ç÷¡Æû¿¡¼­ »ç¿ë °¡´ÉÇѰ¡¸¦ Å×½ºÆ®ÇÏ´Â Àü󸮸¦ »ç¿ëÇϽʽÿÀ. ¿¹¸¦ µé¾î, ¸ðµå-X ±×·¡ÇÈ ¸ðµå¿Í ´Ù¸¥ ±×·¡ÇÈ ¸ðµå¿¡¼­ ¼­·Î ´Ù¸¥ ÀÏÀ» ÇÏ´Â ·çƾÀ» ÀÛ¼ºÇÏ°í ½Í´Ù¸é, ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù:
       #ifdef GFX_MODEX
          if (gfx_driver->id == GFX_MODEX) {
    	 /* ¸ðµå-X ±×·¡ÇÈ ¸ðµå¸¦ À§ÇÑ ÀÛ¾÷À» ÇϽÿÀ */
          }
          else
       #endif
          {
    	 /* ÀϹÝÀûÀÎ ±×·¡ÇÈ ¸ðµå¸¦ À§ÇÑ ÀÛ¾÷À» ÇϽÿÀ */
          }
    
    ¸ðµå-X µå¶óÀ̹ö°¡ ÇöÀç Ç÷§Æû¿¡¼­ Áö¿øµÇÁö ¾Ê´Â °æ¿ì, ÀÌ ÄÚµå´Â ¸ðµå-X ·çƾÀ» ÄÄÆÄÀÏÇÏÁö ¾Êµµ·Ï ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀº ¸ðµå-X°¡ Áö¿øµÇ°Å³ª Áö¿øµÇÁö ¾ÊÀ» ¼ö ÀÖ´Â ¸®´ª½º¿Í °°Àº ½Ã½ºÅÛ¿¡¼­ ¼³Á¤ ½ºÅ©¸³Æ®ÀÇ ¿É¼Ç¿¡ µû¶ó ÀûÀÀµÉ °ÍÀ̹ǷÎ, Ç÷§Æû ÀÚü¸¦ üũÇÏ´Â °Íº¸´Ù ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù.

  • 320x200, 640x480, 800x600°ú °°Àº Ç¥ÁØ ½ºÅ©¸° ÇØ»óµµ¸¸À» »ç¿ëÇϽʽÿÀ (512x384, 640x400°ú °°ÀÌ ¸ðµç Çϵå¿þ¾î¿¡¼­ Áö¿øÇÏÁö´Â ¾Ê´Â ¸ðµå´Â »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À). ÃÖÀûÈ­µÈ À̽ļºÀ» À§Çؼ­´Â, ÇϳªÀÇ ÇØ»óµµ°¡ µ¿ÀÛÇÏÁö ¾ÊÀ» °Í¿¡ ´ëºñÇÏ¿©, ¼­·Î ´Ù¸¥ µÎ °³ÀÇ ÇØ»óµµ¸¦ Áö¿øÇϵµ·Ï ÁغñÇϽʽÿÀ.

  • ÇÁ·Î±×·¥¿¡¼­ ÇÏÀÌÄ÷¯³ª Æ®·çÄ÷¯ ¸ðµå¸¦ »ç¿ëÇÏ´Â °æ¿ì (Áï, 8ºñÆ® Ä÷¯ ¸ðµå ÀÌ»óÀÇ ¾î¶² °ÍÀ̳ª), °¡´ÉÇÑ ¸ðµç ÇÏÀÌÄ÷¯¿Í Æ®·çÄ÷¯ ¸ðµå¸¦ Áö¿øÇÏ¿©¾ß ÇÕ´Ï´Ù. ¸ðµç ½Ã½ºÅÛÀÌ ¸ðµç Ä÷¯ ¸ðµå¸¦ Áö¿øÇÏ´Â °ÍÀº ¾Æ´ÏÁö¸¸, Allegro´Â ´ÙÁß Ä÷¯ ¸ðµå¸¦ »ç¿ëÇÏ´Â °ÍÀ» ´Ü¼øÇÏ°Ô ÇϹǷÎ, Àû¾îµµ 15, 16, 24, 32ºñÆ® Ä÷¯ ÁßÀÇ Çϳª°¡ °¡´ÉÇÒ °ÍÀ¸·Î È®½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù (ÀúÇØ»óµµ ¸ðµåÀÇ ¿¹¿Ü: ¸¹Àº µµ½º µå¶óÀ̹ö´Â 640x480º¸´Ù ³·Àº ÇØ»óµµ¿¡¼­´Â 8ºñÆ® Ä÷¯¸¸À» Áö¿øÇÕ´Ï´Ù).

  • ÆäÀÌÁö Çø®Çΰú Æ®¸®Çà ¹öÆÛ¸µÀº ¸Å¿ì ÈǸ¢ÇÑ °ÍÀ̸ç, ȸ¸é¿¡ º¸ÀÌÁö ¾Ê´Â vram¿¡ ÀúÀåµÈ ±×·¡ÇÈÀÇ Çϵå¿þ¾î °¡¼Ó ºí¸®ÆÃµµ ¸Å¿ì ÁÁ½À´Ï´Ù. ÇÏÁö¸¸ ÀÌ ¹æ¹ýµéÀº ¸Þ¸ð¸® ºñÆ®¸Ê¿¡ ±×·Á¼­ ´Ü¼øÈ÷ ±× °á°ú¸¦ ½ºÅ©¸°¿¡ »Ñ¸®´Â °Íº¸´Ù À̽ļºÀÌ ¸Å¿ì ¶³¾îÁý´Ï´Ù. º¸´Ù ÃÖÀûÈ­µÈ ¹æ½ÄÀ» »ç¿ëÇÏ°í ½ÍÀº °æ¿ì¿¡´Â, Allegro µ¥¸ð °ÔÀÓ°ú exupdate ¿¹Á¦ ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇÑ °Í°ú °°ÀÌ, ´Ü¼øÇÑ ´õºí ¹öÆÛ¸µÀ» ÇÔ²² Áö¿øµÇ´Â ¿É¼ÇÀ¸·Î ±¸ÇöÇÒ °ÍÀ» Á¦¾ÈÇÕ´Ï´Ù.

  • ±×·¡ÇÈ ¸ðµå·Î ÀüȯÀº ÇÏÁö¸¸ ƯÁ¤ÇÑ ¸ðµå·Î ÇÑÁ¤ÇÏÁö ¾Ê´Â °æ¿ì¿¡´Â (¿¹¸¦ µé¾î, ½ÇÁ¦ »ç¿ëÇÒ ÇØ»óµµ¸¦ ¼±ÅÃÇϱâ À§ÇÑ ´ÙÀ̾ó·Î±× ¹Ú½º·Ñ Ç¥½ÃÇϱâ À§ÇØ), GFX_SAFE µå¶óÀ̹ö¸¦ »ç¿ëÇϽʽÿÀ. GFX_SAFE ¸ðµå¸¦ ¿ä±¸Çϸé Allegro´Â ÇöÀç ½Ã½ºÅÛ¿¡¼­ Áö¿øµÇ´Â ¾î¶°ÇÑ ¸ðµåÀÌ´ø °Ë»öÀ» ½ÃµµÇϸç, ¾î¶°ÇÑ ¸ðµåµµ ãÁö ¸øÇÑ °æ¿ì¿¡´Â (¹Ù¶ó°Ç´ë ¼³¸íÀûÀÎ :-) ¿¡·¯ ¸Þ½ÃÁö¿Í ÇÔ²² ÇÁ·Î±×·¥À» Á¾·áÇÒ °ÍÀ̹ǷÎ, ¿¡·¯¸¦ ½º½º·Î °Ë»çÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

  • ¸ðµç Ç÷§ÆûÀÌ AllegroÀÇ ¿ÜºÎ¿¡¼­ ¾î¶°ÇÑ µ¶¸³ µ¿ÀÛÀ» Çϵµ·Ï µÇ¾î ÀÖÁö ¾ÊÀ½À» ±â¾ïÇϽʽÿÀ. ¿¹¸¦ µé¾î, À©µµ¿ìÁî ÇÁ·Î±×·¥Àº ÇϳªÀÇ À©µµ¿ì¸¦ ¿­±â Àü¿¡´Â Ãâ·ÂÀ» »ý¼ºÇϰųª Űº¸µå ÀÔ·ÂÀ» ÀÐÀ» ¼ö ¾øÀ¸¸ç, ¸¶Âù°¡Áö·Î X ÇÁ·Î±×·¥ÀÇ stdoutÀº GUI ÀÎÅÍÆäÀ̽º ³»ºÎ¿¡¼­ »ç¿ëµÈ °æ¿ì º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î Allegro ÀÔ·Â ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ±×·¡ÇÈ ¸ðµå¸¦ ¼³Á¤ÇØ ÁÖ¾î¾ß Çϸç, printf()¸¦ È£ÃâÇÏÁö ¸»°í ±×·¡ÇÈ ¸ðµå ½ºÅ©¸°¿¡ ¸ðµç Ãâ·ÂÀ» ±¸ÇöÇÏ¿©¾ß ÇÕ´Ï´Ù. ±×·¡ÇÈ ¸ðµå°¡ ¾Æ´Ñ °æ¿ì¿¡ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÒ Àý´ëÀûÀÎ Çʿ䰡 ÀÖ´Ù¸é, allegro_message() ÇÔ¼ö¸¦ »ç¿ëÇϽʽÿÀ. À̰ÍÀº ¾î¶² Ç÷§Æû¿¡¼­´Â printf()·Î ±¸ÇöµÇ¸ç, ´Ù¸¥ Ç÷§Æû¿¡¼­´Â ¸Þ½ÃÁö ¹Ú½º·Î ±¸ÇöµË´Ï´Ù.

  • vsync() ÇÔ¼ö´Â À§ÇèÇϹǷΠÁß¿äÇÑ ºÎºÐ¿¡¼­´Â »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. ¸î°¡Áö Ç÷§Æû (¿¹: ¸®´ª½º fbcon)Àº ÀÌ ±â´ÉÀ» ÀüÇô Áö¿øÇÏÁö ¾ÊÀ¸¸ç, ´Ù¸¥ Ç÷§Æû (¿¹: ´Ù¾çÇÑ ºÎÀûÀýÇÏ°Ô ÀÛ¼ºµÈ µµ½º VESA µå¶óÀ̹öµé)Àº ¿Ã¹Ù¸£Áö ¸øÇÏ°Ô Áö¿øÇÕ´Ï´Ù. ¶ÇÇÑ À̰ÍÀÌ ÀǵµµÈ ´ë·Î µ¿ÀÛÇÏ´Â °æ¿ì¿¡µµ ¸®Æ®·¹À̽º ¼Óµµ´Â ±×·¡ÇÈ Çϵå¿þ¾î¿Í »ç¿ëµÇ´Â µð½ºÇ÷¹ÀÌ ¸ðµå¿¡ µû¶ó ´Þ¶óÁö¹Ç·Î, °ÔÀÓ ¼Óµµ¸¦ Á¦¾îÇÏ´Â ÁÁÀº ¹æ¹ýÀº ¾Æ´Õ´Ï´Ù. ¿øÇÑ´Ù¸é ±×¸®±â¸¦ ¸ð´ÏÅÍ¿Í µ¿±â½Ã۱â À§ÇØ À̰ÍÀ» »ç¿ëÇϽʽÿÀ. ÇÏÁö¸¸ ¸î¸î ½Ã½ºÅÛ¿¡¼­´Â È£Ãâ Áï½Ã ¸®ÅÏµÇ¾î ¹ö¸®´Â °Í¿¡ ´ëºñÇÏ¿©¾ß ÇÕ´Ï´Ù. ¹ö±× ÀÖ´Â VESA ±¸Çö¿¡¼­ ½ÇÁ¦·Î µ¿ÀÛÇÏÁö ¾ÊÀ¸¸é¼­µµ ±×·¸Áö ¾ÊÀº °Íó·³ º¸ÀÌ°Ô µÇ´Â °æ¿ì°¡ ¸Å¿ì ¸¹À¸¹Ç·Î, ºÒÇàÈ÷µµ ÀÌ È£ÃâÀÌ ¿Ã¹Ù¸£°Ô µ¿ÀÛÇÏ´ÂÁö ½±°Ô °Ë»çÇÒ ¹æ¹ýÀº ¾ø½À´Ï´Ù.

  • À©µµ¿ìÁî¿¡¼­ ¸ðµç ºñµð¿À ¸Þ¸ð¸®¿Í ½Ã½ºÅÛ ºñÆ®¸ÊÀº ±×¸®±â Àü¿¡ ¹Ì¸® ȹµæµÇ¾îÁ®¾ß Çϸç, ÀÛ¾÷À» ¸¶Ä¡ÀÚ¸¶ÀÚ µÇµ¹·Á ÁÖ¾î¾ß ÇÕ´Ï´Ù (ÇϳªÀÇ ºñÆ®¸ÊÀÌ Àá°ÜÁ® ÀÖ´Â °æ¿ì¿¡ ±×·¡ÇÈ °ü·Ã ÇÔ¼ö°¡ ¾Æ´Ñ ´Ù¸¥ ÇÔ¼öµéÀ» È£ÃâÇÒ ¼ö ¾ø±â ¶§¹®ÀÔ´Ï´Ù). À̰ÍÀ» ½º½º·Î ȹµæÇÏÁö ¾Ê´Â´Ù¸é, Allegro´Â ±×¸®±â ÇÔ¼ö ³»ºÎ¿¡¼­ ÀÚµ¿À¸·Î ÇØÁÖ°Ô µÇ¾î ÀÖÀ¸¹Ç·Î, ¸¹Àº ±×¸®±â ÀÛ¾÷À» ¿¬¼ÓÀûÀ¸·Î ÇàÇÏ´Â °æ¿ì¿¡´Â ºñÈ¿À²ÀûÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, º° ¸ð¾çÀ» ±×¸®±â À§ÇØ 1000°³ÀÇ putpixel() È£ÃâÀ» ÇÑ´Ù¸é, acquire_bitmap()À» Àüü ±×¸®±â ÄÚµå ºí·°ÀÇ ½ÃÀÛ ºÎºÐ¿¡¼­ È£ÃâÇÏ¿© ¼Óµµ¸¦ Å©°Ô ³ôÀÏ ¼ö ÀÖÀ¸¸ç, ÀÌ °æ¿ì ±×¸®±â ·çƾ ¸¶Áö¸·¿¡´Â release_bitmap()À» È£ÃâÇÏ¿©¾ß ÇÕ´Ï´Ù.

  • À©µµ¿ìÁî¿¡¼­ ½ºÅ©¸° ¿ÀºêÁ§Æ®¿Í ºñµð¿À ºñÆ®¸Ê ¿ÀºêÁ§Æ®´Â »ç¿ëÀÚ°¡ ´ç½ÅÀÇ ÇÁ·Î±×·¥¿¡¼­ ´Ù¸¥ ÇÁ·Î±×·¥À¸·Î ÀüȯÇÒ ¶§¸¶´Ù ¸ðµç °ÍÀ» ÀÒ¾î¹ö¸®¹Ç·Î, ´Ù½Ã Á¦¾î±ÇÀÌ ³Ñ¾î¿Ã ¶§ ¸ðµç È­¸éÀ» ´Ù½Ã ±×¸®µµ·Ï ÁغñµÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù (Áï, Ç×»ó SWITCH_AMNESIA ¸ðµå¿¡¼­ ÀÛ¾÷ÇÕ´Ï´Ù). set_display_switch_mode()¸¦ È£ÃâÇÏ¿© ¸ðµå¸¦ º¯°æÇÏ·Á°í ÇÒ ¼ö ÀÖÁö¸¸, ÇöÀç ÀÌ È£ÃâÀº À©µµ¿ìÁî¿¡¼­´Â Ç×»ó ½ÇÆÐÇÒ °ÍÀÔ´Ï´Ù. À̰ÍÀº ¸Å¿ì ºÒÇàÇÑ °ÍÀÌÁö¸¸, DirectX µðÀÚÀÎ »óÀÇ °áÁ¡¿¡ ¿øÀÎÀÌ ÀÖÀ¸¹Ç·Î, ´Ù¸¥ °³¼±ÀÇ ¿©Áö°¡ ¾ø½À´Ï´Ù. ¾Ö´Ï¸ÞÀÌ¼Ç ½Ã½ºÅÛÀÌ Ç×»ó Àüü ½ºÅ©¸°À» ¸Å ÇÁ·¹ÀÓ¸¶´Ù ´Ù½Ã ±×¸®µµ·Ï µÇ¾î ÀÖ´Â °ÔÀÓ¿¡¼­´Â ¹®Á¦°¡ µÇÁö ¾ÊÁö¸¸, À̰ÍÀÌ ¹®Á¦°¡ µÈ´Ù¸é, set_display_switch_callback()À» SWITCH_IN À̺¥Æ®¸¦ ÈÄÅ·Çϵµ·Ï È£ÃâÇÏ¿© Ư¼öÇÑ ´Ù½Ã ±×¸®±â ·çƾÀÌ ÇÊ¿äÇÒ ¶§¸¶´Ù ½ÇÇàµÇµµ·Ï Çϰųª, »ç¿ëÀÚ¿¡°Ô °ÔÀÓÁß ÇÁ·Î±×·¥ÀÇ ÀüȯÀ» ÇÏÁö ¸»µµ·Ï À̾߱âÇÏ¿© ÀÌ ¹®Á¦¸¦ ¹«½ÃÇϵµ·Ï ÇÏ¿©µµ µÉ °ÍÀÔ´Ï´Ù :-)

  • ºñµð¿À ¸Þ¸ð¸®¿¡ Á÷Á¢ ¾²±â¸¦ ÀÌ¿ëÇÑ´Ù¸é, À̰ÍÀ» À§ÇØ »ç¿ëµÇ´Â old_farpokeb() ¸Þ¼­µå´Â ÀÌ½Ä °¡´ÉÇÏÁö ¾Ê´Â °ÍÀ̹ǷÎ, ¸Å¿ì Á¶½ÉÇÏ¿©¾ß ÇÕ´Ï´Ù (djgpp ÇÁ·Î±×·¥¿¡¼­´Â µ¿ÀÛÇÒ °ÍÀÔ´Ï´Ù). ¸Þ¸ð¸® ºñÆ®¸ÊÀ» Á÷Á¢ Á¶ÀÛÇϱâ À§ÇØ line Æ÷ÀÎÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ºñµð¿À ºñÆ®¸Ê¿¡ ´ëÇØ¼­´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷À» ¼öÇàÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù:
       // ±×¸®±â ÀÛ¾÷ÀÇ ¸Ç óÀ½¿¡¼­ bmp_select()¸¦ Çѹø È£Ãâ
       bmp_select(bmp);
    
       for (y=top; y<bottom; y++) {
          // °¢ °¡·Î ¶óÀθ¶´Ù bmp_write_line() È£Ãâ
          unsigned long address = bmp_write_line(bmp, y);
    
          for (x=left; x<right; x++) {
    	 // Çȼ¿ µ¥ÀÌÅ͸¦ ¾²±â À§ÇØ bmp_write*() ¸ÅÅ©·Î¸¦ »ç¿ë
    	 bmp_write8(address+x, color);
          }
       }
    
       // ±×¸®±â ÀÛ¾÷ÀÇ ¸Ç ¸¶Áö¸·¿¡ bmp_unwrite_line()À» Çѹø È£Ãâ
       bmp_unwrite_line(bmp);
    
    ±×·¸½À´Ï´Ù. À̰ÍÀº Á» ÁÁÁö ¾Ê¾Æ º¸ÀÔ´Ï´Ù¸¸, ÀÌµé ¸ÅÅ©·ÎÀÇ Àý¹ÝÀº ¾î¶² Ç÷§Æû¿¡ ´ëÇØ¼­´Â ´Ü¼øÈ÷ ¾Æ¹« µ¿ÀÛÀ» ÇÏÁö ¾Ê´Â °ÍÀ¸·Î º¯È¯µÉ °ÍÀ̸ç, ³ª¸ÓÁö ¹ÝÀº 1ºñÆ®ÀÇ Æ÷ÀÎÅÍ Á¶ÀÛÀ̳ª ÀζóÀÎ ¾î¼Àºí·¯·Î ¹Ù²î¹Ç·Î, ±×·¸°Ô ³ª»Û °ÍÀº ¾Æ´Õ´Ï´Ù. ±×¸®°í À̰ÍÀº ¾î´À Ç÷§ÆûÀ¸·Îµç ÀÌ½Ä °¡´ÉÇÑ ¹æ¹ýÀ¸·Î ¸Þ¸ð¸®¸¦ Á÷Á¢ ¾ï¼¼½ºÇÏ´Â ÀÛ¾÷À» ±¸ÇöÇÏ´Â À¯ÀÏÇÑ ¹æ¹ýÀÔ´Ï´Ù.

    ´õ ³ôÀº »ö»ó ºñÆ®¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â, bmp_write8()À» bmp_write15(), bmp_write16() µîÀ¸·Î ¹Ù²Ù¾î »ç¿ëÇϸç, ¸ñÀû ¾îµå·¹½º¿¡ xÃà °ªÀ» ´õÇÏ´Â °æ¿ì¿¡ ¾ó¸¶¸¦ °öÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. 15¿Í 16ºñÆ® ¸ðµå¿¡¼­´Â sizeof(short)¸¦ °öÇϸç, 24ºñÆ® ¸ðµå¿¡¼­´Â 3À», 32ºñÆ® ¸ðµå¿¡¼­´Â sizeof(long)À» °öÇÕ´Ï´Ù.

  • ÇöÀç Allegro°¡ Áö¿øÇÏ´Â ¸ðµç Ç÷§ÆûÀº ºñµ¿±â ÀÔ·Â, Áï, key[] ¾î·¹ÀÌ¿Í ¸¶¿ì½º À§Ä¡ º¯¼ö°¡ µ¥ÀÌÅͰ¡ ¹Ù²ð ¶§¸¶´Ù ÀÚµ¿À¸·Î ¾÷µ¥ÀÌÆ® µÇ´Â ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ¹Ì·¡¿¡ Áö¿øµÉ ¾î¶² Ç÷§Æû¿¡¼­´Â À̰ÍÀ» Áö¿øÇÏÁö ¾ÊÀ» ¼ö ÀÖÀ¸¸ç, ÀÌ °æ¿ì¿¡´Â Çϵå¿þ¾î ÀåÄ¡ÀÇ Á¤º¸¸¦ »óÅ º¯¼ö·Î °¡Á®¿Ã Çʿ䰡 ÀÖÀ» ¶§¸¶´Ù Æú¸µ ÇÔ¼ö (poll_mouse()¿Í poll_keyboard())¸¦ È£ÃâÇÏ¿©¾ß ÇÒ Çʿ䰡 ÀÖÀ» °ÍÀÔ´Ï´Ù (readkey()³ª get_mouse_mickeys()¿Í °°Àº µ¥ÀÌÅÍ Àбâ ÇÔ¼ö¸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â Æú¸µÀ» ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù). ¸ðµç Ç÷§Æû¿¡¼­ Æú¸µÀ» ÇÏÁö ¾Ê¾Æµµ µÉ °¡´É¼ºÀÌ ÀÖÀ¸¹Ç·Î, Æú¸µÀ» »ç¿ëÇÏ´Â ¼ö°í¸¦ ÇÒ °ÍÀΰ¡ ÇÏÁö ¾ÊÀ» °ÍÀΰ¡´Â ´ç½ÅÀÇ ¼±Åÿ¡ ´Þ·Á ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¸Å¿ì ¾ÈÀüÇÔÀ» Ãß±¸ÇÑ´Ù¸é »õ·Î¿î ÀÔ·ÂÀ» ¿ä±¸ÇÒ ¶§¸¶´Ù Æú¸µÀ» ÇÏ¿©¾ß ÇÒ °ÍÀÔ´Ï´Ù. Æú¸µÀ» ¿ä±¸ÇÏÁö ¾Ê´Â Ç÷§Æû¿¡¼­ ÀÌ·¯ÇÑ Á¾·ùÀÇ Äڵ带 Å×½ºÆ®ÇÏ´Â °ÍÀ» °£´ÜÇÏ°Ô Çϱâ À§ÇØ, ù¹øÂ° Æú¸µ ÇÔ¼öÀÇ È£Ãâ ÈÄ¿¡, Allegro´Â Ư¼öÇÑ Æú¸µ ¿¡¹Ä·¹ÀÌ¼Ç ¸ðµå·Î µé¾î°¡¼­, Æú¸µÀ» ÇÏÁö ¾Ê´Â °æ¿ì¿¡´Â ¾î¶°ÇÑ ÀԷµµ Á¦°øÇÏÁö ¾Êµµ·Ï µ¿ÀÛÇÒ °ÍÀÔ´Ï´Ù. ±×·¯¹Ç·Î Áß¿äÇÑ Àå¼Ò¿¡¼­ Æú¸µ È£ÃâÀ» ÇÏ´Â °ÍÀ» ÀØÁö ¾Êµµ·Ï ÇϽʽÿÀ.

  • µµ½º¿¡¼­ ÀÎÅÍ·´Æ® °ü·Ã ·çƾ (ŸÀÌ¸Ó Çڵ鷯, ¸¶¿ì½º À̵¿ Äݹé, ¹Ìµð À̺¥Æ® ÄÝ¹é µî)¿¡¼­ »ç¿ëµÇ´Â ¸ðµç ¸Þ¸ð¸®´Â Àá±×¾î ÁÖ¾î¾ß ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. º¯¼ö´Â LOCK_VARIABLE() ¸ÅÅ©·Î¸¦ »ç¿ëÇϸç, ÇÔ¼ö´Â END_OF_FINCTION()°ú LOCK_FUNCTION() ¸ÅÅ©·Î¸¦ »ç¿ëÇϰí, ÇÒ´çµÈ ¸Þ¸ð¸® ºí·ÏÀ» Àá±×·Á¸é LOCK_DATA() ¸ÅÅ©·Î¸¦ »ç¿ëÇÕ´Ï´Ù (¸ðµç ÀÎÅÍ·´Æ®ÀÇ ½ºÅÃÀº ÀÌ¹Ì Àá°ÜÁ® ÀÖÀ¸¹Ç·Î, Áö¿ª º¯¼ö´Â Àá±Û Çʿ䰡 ¾ø½À´Ï´Ù). ´Ù¸¥ Ç÷§Æû¿¡¼­´Â ÀÌ¿Í °°Àº ÀÛ¾÷À» ÇÏÁö ¾Ê¾Æµµ µÇÁö¸¸, µµ½º¿¡¼­ µ¿ÀÛ½Ã۵µ·Ï ÇÒ °æ¿ì¸¦ ´ëºñÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ¶ÇÇÑ ÀÎÅÍ·´Æ® ·çƾ¿¡¼­ ¶óÀ̺귯¸® ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀº ÇÇÇØ¾ß Çϸç (¶óÀ̺귯¸® ÇÔ¼ö¸¦ Àá±Û ¹æ¹ýÀÌ ¾øÀ¸¸ç, ¾î¶² °æ¿ì¿¡¶óµµ ±×°ÍÀÌ µ¿ÀÛÇÏÁö ¾Ê±â ½±±â ¶§¹®ÀÔ´Ï´Ù), ¾î¶°ÇÑ ºÎµ¿¼Ò¼öÁ¡ ¿¬»êµµ »ç¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù.

  • °íÁ¤µµ ŸÀ̸ӿ¡ ÀÇÁ¸ÇÏÁö ¸¶½Ê½Ã¿À. ¾î¶°ÇÑ Ç÷§Æû¿¡¼­µµ Àû¾îµµ 10 ms (1ÃÊÀÇ 1/100)ÀÇ Á¤È®µµ´Â ¹ÏÀ» ¼ö ÀÖÁö¸¸, ¾î¶² ½Ã½ºÅÛ¿¡¼­´Â ´õ ³ôÀº Á¤È®µµ°¡ °¡´ÉÇÏ´Ù ÇÏ¿©µµ, ´Ù¸¥ ½Ã½ºÅÛ¿¡¼­´Â ±×·¸Áö ¾Ê½À´Ï´Ù. ÇöÀç Ç÷§Æû¿¡¼­ Áö¿øÇÏ´Â °Íº¸´Ù ºü¸¥ ŸÀ̸Ӹ¦ ¼³Ä¡ÇÑ´Ù¸é, ¿ä±¸µÈ ¼ÓµµÀÇ Æò±ÕÀº À¯ÁöµÉ °ÍÀÌÁö¸¸, °¢ ½Ã½ºÅÛ Å¸ÀÌ¸Ó ´ÜÀ§½Ã°£¿¡ ¸ðµÎ ¹¶ÃÄ È£ÃâµÉ ¼ö ÀÖÀ¸¹Ç·Î, ½ÇÁ¦·Î´Â ±×´ÙÁö À¯¿ëÇÏÁö ¾Ê½À´Ï´Ù.


No ePatents ¾î¶² ºê¶ó¿ìÀú¿¡¼­µµ º¼ ¼ö ÀÖÀ½ Valid HTML 4.0!

À¥¸¶½ºÅÍ¿¡°Ô ¿¬¶ôÇÏ·Á¸é ¸¶Áö¸· ¼öÁ¤ÀÏ: 2002³â 8¿ù 22ÀÏ 12:35 (UTC).