¸®´ª½ºÆ÷Ä¿½º 1998³â 11¿ùÈ£: ½¬¿î ±×·¡ÇÈ: SVGAlib Ãʺ¸°¡À̵å Home Map Index Search News Archives Links About LF
[Top Bar]
[Bottom Bar]
[Photo of the Author]
Jay Link
±Û¾´ÀÌ ¼Ò°³:

ÇÊÀÚ¿¡°Ô ÆíÁö¾²±â

½¬¿î ±×·¡ÇÈ: SVGAlib Ãʺ¸°¡À̵å

[Ilustration]

¸®´ª½º½Ã½ºÅÛ¿¡¼­ °£´ÜÇÑ ±×·¡ÇÈÆÐÅ°Áö¸¦ ã°í ÀÖ½À´Ï±î? ¸¸¾à ±×·¸´Ù¸é ´õ º¼ ÇÊ¿äµµ ¾ø½À´Ï´Ù. SVGAlib´Â °£´ÜÇÑ ±×·¡ÇÈ ÀÀ¿ëÇÁ·Î±×·¥À» ¸¸µå´Â °£´ÜÇÑ ¹æ¹ý°ú XÀ©µµ¿ì ½Ã½ºÅÛÀÇ ÀåȲÇÑ ºÎºÐÀ» ¾ø¾ÖÁÝ´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ C¿¡¼­ ±âº»ÀûÀÎ ÇÁ·Î±×·¡¹Ö ¼öÁØÀ̶ó¸é SVGAlib¸¦»ç¿ëÇϼ¼¿ä.


ÀÎÅͳÝÀͽºÇ÷ξ¼­ °¡Àå ÀÌ»óÇÏ°Ô º¸ÀÔ´Ï´Ù.(³Ý½ºÄÉÀÌÇÁ 4.5ÀÌ»ó¹öÁ¯À» »ç¿ëÇϼ¼¿ä.)

SVGAlib´Â ¹«¾ùÀΰ¡

SVGAlib´Â ¸®´ª½º¸¦ À§ÇÑ Àú¼öÁØÀÇ ±×·¡ÇÈ ¶óÀ̺귯¸®ÀÌ´Ù. ±×·¡ÇÈÀÇ Áö¿øÀ» Á¦°øÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó CÇÁ·Î±×·¡¹ÖÀÇ ±â´ÉÀ» È®Àå½ÃÄÑÁÖ´Â °ÍÀÌ´Ù.

¹°·Ð C·Î Â¥¿©Áø ±×·¡ÇÈ ÇÁ·Î±×·¥Àº ¾ÆÁÖ ¸¹´Ù.

±×·¸´Ù. ±×·¯³ª ±×·± ÇÁ·Î±×·¥µéÀº ¿ÜºÎ ¶óÀ̺귯¸® ÇÔ¼öµé¿¡ ÀÇÁ¸ÇÑ´Ù. C ÀÚü·Î´Â ´ÜÁö ÅؽºÆ®¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸ðµç ±×·¡ÇÈ °ü·Ã ÇÔ¼öµéÀº ½Ã½ºÅÛ¿¡ ÀÇÁ¸ÀûÀ̸ç Æ÷ÆÃÀÌ ºÒ°¡´ÉÇÏ°Ô µÇ´Â °ÍÀº À̶§¹®ÀÌ´Ù. ºÒÇàÇÏ°Ôµµ ÇÑ ¿î¿µÃ¼°è¸¦ À§ÇØ ¸¸µé¾îÁø ±×·¡ÇÈ ·çƾµéÀº ¸ðµÎ »õ·Î Á¦ÀÛµÇÁö ¾ÊÀ» °æ¿ì´Â ´Ù¸¥ ½Ã½ºÅÛ¿¡¼­ µ¿ÀÛÇÏÁö ¾ÊÀ»¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î óÀ½ºÎÅÍ DOS³ª Windows¿¡¼­ ¸¸µé¾îÁø ±×·¡ÇÈ ÇÔ¼öµéÀº ¸®´ª½º¿¡¼­´Â ¾µ¸ð¾ø´Â °ÍÀÌ´Ù.

¸®´ª½º»ó¿¡¼­ C·Î ±×·¡ÇÈ ÇÔ¼öµéÀ» Â¥±â À§Çؼ­, ¸®´ª½º¿¡ ¾Ë¸Â´Â ¿ÜºÎ ÇÔ¼öµéÀ» »ç¿ëÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. SVGAlib´Â ±×·¯ÇÑ ÇÔ¼öµéÀÇ ¸ðÀ½Áß ÇϳªÀÌ´Ù.

´ÜÁö SVGAlib´Â C ÇÁ·Î±×·¥¿¡ ÀÇÇØ È£ÃâµÇ¾îÁö´Â ¹ÙÀ̳ʸ® C ÇÔ¼öµéÀÌ´Ù.

SVGAlib´Â X Windows½Ã½ºÅÛ°ú ¾î¶»°Ô ´Ù¸¥°¡?

X À©µµ¿ì ½Ã½ºÅÛ(XFree86)Àº ½ÇÁ¦·Î ¼­¹öÀÌ´Ù. ÀÌ ¼­¹ö´Â X»óÀÇ ¾î¶² ÀÀ¿ë ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â °Íµéº¸´Ù ¿ì¼±ÀûÀ¸·Î ½ÃÀ۵ȴÙ. ´õ±º´Ù³ª X ¼­¹ö´Â ´ç¿¬È÷ ½Ã½ºÅÛ¿¡ ÁýÁßÀûÀ̾ (¿¹¸¦ µé¸é X´Â ¿©·¯ºÐÀÇ ÀÚ¿øÀ» °è¼Ó ¿ä±¸ÇÒ ¼öµµ ÀÖ´Ù.) »ç¿ëÀÚ°¡ °¡»ó Å͹̳Î(ALT 1-6)À» ÀÌ¿ëÇÏÁö ¸øÇÏ°Ô ÇÒ°ÍÀÌ´Ù.

±×·¯³ª SVGAlib´Â X À©µµ¿ì¸¦ ½ÇÇàÇÏ´Â °Íó·³ ½ÇÇàÀÌÀü¿¡ ´Ù¸¥°ÍÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù. SVGAlib´Â ´ÜÁö C ÇÁ·Î±×·¥¿¡ ÀÇÇØ È£ÃâµÇ´Â ´Ù¸¥ ¸ðµç ¶óÀ̺귯¸®µé(/lib°ú /usr/lib)°ú °°Àº ¹ÙÀ̳ʸ® C ¶óÀ̺귯¸®ÀÌ´Ù.°á±¹ SVGAlib´Â ÇϵîÀÇ Áغñ°¡ ÇÊ¿ä¾ø´Ù. ¸¸¾à SVGAlib°¡ ÀûÀýÈ÷ ÀνºÅçµÇ¾îÀÖ´Ù¸é º¸ÅëÀÇ À¯ÀúµéÀº ±× Á¸ÀçÁ¶Â÷µµ ¾ËÁö ¸øÇÒ °ÍÀÌ´Ù. °á°úÀûÀ¸·Î SVGAlib´Â °¢°¢ÀÇ °¡»óÅ͹̳ο¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê°í, Æò»ó½Ãó·³ ´Ù¾çÇÑ ¾îÇø®ÄÉÀ̼ÇÀ» ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ÇϳªÀÇ Å͹̳ο¡¼­´Â ÅؽºÆ®¸¦ »ç¿ëÇÏ°í, ´Ù¸¥ Å͹̳ο¡¼­´Â ±×·¡ÇÈÀ» ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù.

´ÜÁ¡

X À©µµ¿ì ½Ã½ºÅÛÀº (´Ù¾çÇÑ Ç÷§Æû¿¡¼­ »ç¿ëµÇ¾îÁöµíÀÌ) ½Ã½ºÅÛ¿¡ µ¶¸³ÀûÀ̱⶧¹®¿¡ SVGAlib ·Î ¸¸µé¾îÁø °Íº¸´Ù X À©µµ¿ì¿ë ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÈξÀ ´õ ¸¹´Ù. ´ÜÁö ¸®´ª½º¸¸ÀÌ SVGAlib¸¦ »ç¿ëÇÑ´Ù. ¶ÇÇÑ À߸ø ¸¸µé¾îÁø SVGAlib ÀÀ¿ëÇÁ·Î±×·¥Àº ÄܼÖÀ» ÀÌ»óÇÏ°Ô ¸¸µé¾î¹ö·Á °á±¹ ÀçºÎÆÃÀ» Çؾ߸¸ ÇÒ ¼öµµ ÀÖ´Ù. °á±¹ SVGALIB·Î ¸¸µé¾îÁø ±×·¡ÇÈÀ» »ç¿ëÇÒ °æ¿ì µÎ°³ÀÇ Äֻܼ󿡼­ À̸®Àú¸® ¹Ù»ß ¿Ô´Ù°¬´ÙÇÏ¸é ¾ÈµÈ´Ù. ±×·¸Áö ¾ÊÀ¸¸é È­¸é¿¡ Ãæµ¹ÀÌ ÀϾ¼­ ´Ù½Ã ÀçºÎÆÃÀ» ÇؾßÇÒ °ÍÀÌ´Ù.

SVGAlib°¡ º¸¾È»ó À§ÇèÀÌ ÀÖ´Ù´Â °ÍÀº ¿¾³¯¸»ÀÌ´Ù. SVGAlib¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÌ setuid°¡ root°¡ µÇ¾î ½ÇÇàµÇÁö¸¸ ½ÇÇàµÈ ´ÙÀ½ °ð¹Ù·Î Ư±ÇÀ» Æ÷±âÇÏ°Ô µÈ´Ù. º¸¾È¿¡ ´ëÇؼ­´Â ½Å°æ¾µ ÇÊ¿ä°¡ ¾ø´Ù.

¿ä¾àÇؼ­, ¾Õ¼­ ¾ð±ÞÇÑ ¹®Á¦Á¡µéÀÌ ÀÖÀ½¿¡µµ ºÒ±¸ÇÏ°í SVGAlibÀÇ ¼Óµµ¿Í »ç¿ë»óÀÇ ¿ëÀ̼ºÀº ¸¹Àº »óȲ¿¡¼­ ¸Å·ÂÀûÀÌ´Ù. ƯÈ÷ È­¸é¿¡ ¸¶À½´ë·Î ±×·Áº¸°í½ÍÀ» °æ¿ì´Â ´õ¿í ±×·² °ÍÀÌ´Ù.

¿¹Á¦µé

SVGAlib¸¦ »ç¿ëÇϱâ À§ÇØ, C ÇÁ·Î±×·¥¿¡¼­ ´ÙÀ½À» ÂüÁ¶½ÃÄÑ¾ß ÇÑ´Ù. ´ÜÁö #include <vga.h>¸¦ Æ÷ÇÔÇÏ¸é µÈ´Ù. ¿©±â¿¡ °¡Àå ½¬¿î SVGAlib ÇÁ·Î±×·¥À» »ìÆ캸ÀÚ.: ´Ù¿î·Îµå

#include  <stdio.h>
#include  <vga.h>

int main(void) {
   vga_init();
   vga_setmode(5);
   vga_setcolor(4);
   vga_drawpixel(10,10);

   sleep(5);
   vga_setmode(0);
   exit(0);
}

ÀÌ ÇÁ·Î±×·¥Àº È­¸é»óÀÇ »¡°£ »ö Á¡À» ±×¸± °ÍÀÌ´Ù. 5ÃÊ ÈÄ¿¡ ÄܼÖÀ» ÅؽºÆ® ¸ðµå·Î ¹Ù²Û ´ÙÀ½, ÇÁ·Î±×·¥Àº Á¾·áµÈ´Ù.

À§¿¡ ±â¼úÇÑ ÇÁ·Î±×·¥ÀÇ Ã¹ ¹®ÀåÀÎ vga_init()¿¡ ÁÖ¸ñÇØ º¸ÀÚ. ÀÌ°ÍÀº root ±ÇÇÑÀÇ »óŸ¦ Æ÷±âÇÏ°í SVGAlib ¶óÀ̺귯¸®¸¦ ÃʱâÈ­ ½ÃŲ´Ù. µÎ¹ø° ¶óÀÎÀÎ vga_setmode(5)´Â È­¸éÀ» 320X200X256ÀÎ mode 5·Î ¼³Á¤ÇÑ´Ù. Áï È­¸éÀ» °¡·Î·Î´Â 320°³, ¼¼·Î·Î´Â 200°³ÀÇ Çȼ¿À» °¡Áö´Â 256Ä®¶ó¸¦ Áö¿øÇÏ´Â °ÝÀÚÇüÅ·Π¸¸µç´Ù. ÀÌ°ÍÀº vga_setmode(G320x200x256)°ú µ¿ÀÏÇÑ ±â´ÉÀ» ÇÑ´Ù. ´Ù¸¥ Ç¥Çöµéµµ °¡´ÉÇÏ´Ù. ´ÙÀ½ ¹®ÀåÀÎ vga_setcolor(4)´Â Çö »ö»óÀ» »¡°­À¸·Î ¸¸µç´Ù. 0¿¡¼­ 256±îÁö, ¾î¶² ¼ö·Îµµ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ ¸í·Éµé¿¡ ÀÇÇØ ´õ ¸¹Àº »ö»óµéµµ °¡´ÉÇÏÁö¸¸, ¿ì¸®´Â ÀÌ·¯ÇÑ ¿¹µéÀÇ ±âº»ÀûÀÎ »ö»ó¸¸À» »ç¿ëÇÑ´Ù. ¸¶Áö¸·À¸·Î ÁÂÇ¥ 10, 10¿¡ ÇÑ Á¡À» Ä¥Çغ¸ÀÚ. ±×°÷Àº È­¸é ¿ÞÂÊÀÇ °æ°è¼±ÀÇ ¿À¸¥ÂÊÀ¸·Î 11¹ø°°í ¾Æ·¡·Î 11°ÀÇ °ø°£ÀÌ µÈ´Ù. ÁÂÇ¥ÀÇ °ÝÀÚÁ¡Àº 0¿¡¼­ ½ÃÀÛÇϱ⠶§¹®¿¡ 11ÀÌ ¾Æ´Ï¶ó 10ÀÌ´Ù. ÁÂÇ¥ 0,0Àº ÁÂÃøÀÇ »ó´Ü¿¡ ÀÖ´Ù. vga_setmode(0)´Â ½ºÅ©¸°À» ÅؽºÆ® ¸ðµå·Î µ¹·ÁÁØ´Ù. vga_setmode(text)´Â vga_setmode(0)º¸´Ù´Â ´õ °³¼ºÀûÀÌ´Ù. ÇÁ·Î±×·¥ÀÇ ÈĹ̿¡ ÀÌ °úÁ¤À» Ç×»ó Çصδ °ÍÀÌ ÁÁ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ÇÁ·Î±×·¥ÀÌ ´Ù¸¥ »ç¿ëÀÚµéÀÇ Á¤»óÀûÀÎ »ç¿ëÀ» ¹æÇØÇÒ °ÍÀÌ´Ù.

ÀÌ Äڵ带 ÄÄÆÄÀÏÇϱâ À§ÇØ, ÀϹÝÀûÀÎ gccÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÏÀÚ. -lvga Ä¿¸Çµå¸¦ »ç¿ëÇÏ¿©, SVGAlib¸¦ ¸µÅ©½ÃÅ°´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. ¸¶Áö¸·À¸·Î, °¡Àå ÁÁÀº ¼öÁØÀÇ ÃÖÀûÈ­¸¦ À§ÇØ -O3Ä¿¸Çµå¸¦ »ç¿ëÇÏ±æ ¹Ù¶õ´Ù.:

gcc -O3 -o sample sample.c -lvga

±×¸®°í ³ª¼­, ·çÆ®ÀÇ ±ÇÇÑÀ» °¡ÁöÁö ¾Ê´Â °èÁ¤»ç¿ëÀڵ鵵 »ç¿ëÇÒ ¼ö ÀÖ°Ô ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» ³»¸°´Ù.:

chmod u+s

½ÇÇàÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù:

sample     <¶Ç´Â »ç¿ëÀÚ°¡ ºÙÀÎ À̸§>

SVGAlib ¸í·ÉÀÇ ¿Ïº®ÇÑ ÁýÇÕµéÀº SVGAlib ¸Å´º¾ó ÆäÀÌÁö·Î ¹®¼­È­µÇ¾î ÀÖ´Ù. ¿©±â¼­ ¸ðµç °ÍµéÀ» »ìÆ캸Áö´Â ¾Ê´Â´Ù. ±× ´ë½Å¿¡ ´õ¿í ºü¸¥ SVGAlib ÇÔ¼öµéÀÇ ÁýÇÕµéÀ» »ç¿ëÇÏ¿©, ¿ì¸®ÀÇ µÎ¹ø° ¿¹Á¦¸¦ ÀÛ¼ºÇغ¸·Á°í ÇÑ´Ù.: vgagl.

"man vgagl"À̶ó°í Ãĺ¸ÀÚ. ±×·¯¸é vgaglÀº "SVGAlib¸¦ ±âÃÊ·Î ÇÏ´Â ºü¸¥ ÇÁ·¹ÀÓ ¹öÆÛ ¼öÁØÀÇ ±×·¡ÇÈ ¶óÀ̺귯¸®ÀÌ´Ù."¶ó°í µÇ¾î ÀÖ´Ù. ±âº»ÀûÀ¸·Î »ç¿ëÀÚ¿¡°Ô ÇϳªÀÇ ¹®À常À¸·Îµµ Çü»óÀ» ±×¸±¼ö ÀÖÀ» Á¤µµÀÇ Á» ´õ ³ªÀº ±×·¡ÇÈ ÇÔ¼öµéÀ» Á¦°øÇÏ°Ô µÉ °ÍÀÌ´Ù.

¾Æ·¡´Â vgaglÀ» »ç¿ëÇÑ ÇÁ·Î±×·¥Àε¥, ¸î¸îÀÇ ÀνºÅç ÇÁ·Î±×·¥µéÀÌ »ç¿ëÇÏ´Â ÆĶõ ºûÀ» ³»´Â È­¸éÀ¸·Î ¸¸µé¾î ÁÙ °ÍÀÌ´Ù. ÀÌ°ÍÀº È­¸éÀÇ »ó´Ü¿¡¼­ ¹àÀº ÆĶû»öÀ¸·Î ½ÃÀ۵Ǿî, ¼­¼­È÷ ¾îµÎ¿öÁö¸é¼­ ¹ØÀ¸·Î ¿Å°ÜÁü°ú µ¿½Ã¿¡ ¾ø¾îÁú °ÍÀÌ´Ù. óÀ½ ÇÁ·Î±×·¥°ú ´Ù¸£°Ô µ¿ÀÛÇÏ´Â °ÍÁßÀÇ Çϳª°¡ º¸ÀÌÁö ¾Ê´Â "°¡»óÀÇ" È­¸é¿¡¼­ ±×·ÁÁÖ´Â ÀÛ¾÷À» ½ÇÇàÇÑ´Ù´Â °ÍÀÌ´Ù. ±×·¡¼­ ¸ðµç ÇàµéÀÌ ´Ù ±×·ÁÁö¸é, ÃÖÁ¾ÀûÀ¸·Î ¸¸µé¾îÁø ±×¸²µéÀ» ÇϳªÀÇ "¹°¸®ÀûÀÎ" È­¸é¿¡ ´Ü¹ø¿¡ ¿Å±â°Ô µÈ´Ù. ÀÌ·± °ÍµéÀº È­¸éÀÇ ¶³¸²À» ¹æÁöÇÏ°í »ç¿ëÀÚ°¡ ¸¸µç ¾îÇø®ÄÉÀ̼ǵéÀ» º¸´Ù ´õ Àü¹®°¡ÀûÀ¸·Î º¸ÀÌ°Ô ÇÑ´Ù. ³ª´Â °¡»óÀÇ È­¸éÀ̶õ "¹è¿ì"µéÀÌ °ø¿¬À» ÇÏ°í ÀÖ´Â µ¿¾È "ºÐÀå»ç"µéÀÌ ¿­½ÉÈ÷ ²Ù¹Ì°í ÀÖ´Â "ºÐÀå½Ç"°ú °°´Ù°í »ý°¢ÇÑ´Ù.

ÄÄÆÄÀÏÀ» ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.:

gcc -O3 -o gradient gradient.c -lvgagl -lvga

-lvgaglÀÌ -lvgaÀÇ ¾Õ¿¡ ¿Â´Ù´Â °ÍÀ» ÁÖ¸ñÇÏÀÚ. ±× ¶óÀ̺귯¸®¸¦ »ç¿ëÇϱâ À§ÇØ vgaglÀ» ÂüÁ¶ÇÏ·Á¸é ÀÌ·¸°Ô ÇÏ´Â °ÍÀº ÇʼöÀûÀÌ´Ù.chmod u+s¸¦ ±â¾ïÇÏÀÚ.

¿©±â¿¡ ¼Ò½ºÄڵ尡 ÀÖ´Ù: ´Ù¿î·Îµå

#include <stdio.h>
#include <stdlib.h>
#include <vga.h>
#include <vgagl.h>

GraphicsContext *physicalscreen;
GraphicsContext *virtualscreen;

int main(void) {
   int i,  j,  b,  y,  c;

   vga_init();
   vga_setmode(5);
   gl_setcontextvga(5);
   gl_setcontextvgavirtual(5);
   physicalscreen = gl_allocatecontext();
   gl_getcontext(physicalscreen);
   virtualscreen = gl_allocatecontext();
   gl_getcontext(virtualscreen);

   y = 0;
   c = 0;
   gl_setpalettecolor(c, 0, 0, 0);
   c++;
   for (i = 0; i < 64; i++) {
      b = 63 - i;
      gl_setpalettecolor(c, 0, 0, b);
      for (j = 0; j < 3; j++) {
         gl_hline(0, y, 319, c);
         y++;
      }
      c++;
   }
   gl_copyscreen(physicalscreen);

   getchar();
   gl_clearscreen(0);
   vga_setmode(0);
   exit(0);
}
          

Áö±Ý #include <vgagl.h>°¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù´Â °ÍÀ» ±â¾ïÇصÎÀÚ.

ÄÚµùÀº ±×·¡ÇÈ ÄÞÅؽºÆ®µéÀ» ¼³Á¤Çϴµ¥¼­ ½ÃÀ۵ȴÙ.:

GraphicsContext *physicalscreen
GraphicsContext *virtualscreen

±×¸®°í ³ª¼­ º¯¼öµéÀ» ¼±¾ðÇÏ°í È­¸é ¸ðµå¸¦ ¼ÂÆÃÇϱâ À§ÇØvga_setmode()¸¦ »ç¿ëÇÑ´Ù. ±×´ÙÀ½ ÄÜÅؽºÆ®µéÀ» º¯¼öµé·Î ÀúÀåÇÑ´Ù.¿ì¸®´Â ¾Õ¿¡¼­¿Í °°ÀÌ 5¹ø ¸ðµå(G320320x200x256)¸¦ »ç¿ëÇÑ´Ù.

¸ÕÀú º¸¿©Áö´Â "½ÇÁ¦"È­¸é°ú º¸¿©ÁöÁö ¾Ê´Â "°¡»ó"È­¸éÀ» ¸ðµÎ ÃʱâÈ­½Ãų ÇÊ¿ä°¡ ÀÖ´Ù. ±×¸®°í ¿ì¸®´Â ±× ´ÙÀ½ ÄÁÅؽºÆ®¸¦ º¯¼ö·Î ÀúÀåÇÑ´Ù.:

gl_setcontextvga(5)
gl_setcontextvgavirtual(5)
physicalscreen = gl_allocatecontext()
gl_getcontext(physicalscreen)
virtualscreen = gl_allocatecontext()
gl_getcontext(virtualscreen)

ÀÌÁ¦ °¡»óÈ­¸é¿¡ µ¿ÀÛ½ÃÅ°·Á ÇÑ´Ù´Â °ÍÀ» ¾Ë¸®·Á°í ÇÑ´Ù.: gl_setcontext(virtualscreen).

gl_setpalettecolor()´Â ÆĶõ»ö¿¡¼­ 64°¡ÁöÀÇ ¸í¾ÏÀ» Á¦°øÇÑ´Ù. °¢°¢ÀÇ ¸í¾Ïº°·Î 3°³ÀÇ ¶óÀÎÀ» ±×¸®·Á°í ÇÑ´Ù. ÀüüÀûÀ¸·Î´Â 192°³ÀÇ ¶óÀÎÀÌ µÈ´Ù. ³ª¸ÓÁö 8°³ÀÇ ¶óÀÎÀº °ËÁ¤»ö °è¿­ÀÌ µÉ °ÍÀ̹ǷΠ³ªÅ¸³ªÁö ¾ÊÀ» °ÍÀÌ´Ù.

ÀÌ °úÁ¤ÀÌ ³¡³ª¸é, °¡»óÀÇ È­¸é¾ÈÀÇ ³»¿ëµé(ÇöÀç ½ºÅ©¸°)À» gl_copyscreen(physicalscreen) ¸í·ÉÀ» ÀÌ¿ëÇÏ¿©, ½ÇÁ¦ È­¸éÀ¸·Î ¿Å±ä´Ù.

À̶§, »ç¿ëÀÚµé·Î ÇÏ¿©±Ý ¾ó¸¶µ¿¾È ±× ±×¸²µéÀ» º¸À̵µ·Ï ÇÒ °ÍÀΰ¡¸¦ °áÁ¤ÇÏ°Ô ÇÑ´Ù. getchar()´Â »ç¿ëÀÚÀÔ·ÂÀ» ±â´Ù¸°´Ù. ¾Æ¹«Å°³ª ÀÔ·ÂÀ» ¹Þ°Ô µÇ¸é gl_clearscreen(0)°ú vga_setmode(0)À» ÀÌ¿ëÇÏ¿© ºüÁ® ³ª¿À°Ô µÈ´Ù.

SVGAlib¸¦ »ç¿ëÇÑ ¸ðµç ÇÔ¼öµéÀÇ ÁýÇÕÀº "man svgalib"¿Í "man vgagl"¸¦ ÀÔ·ÂÇÏ¸é º¼ ¼ö ÀÖ´Ù. ¶ÇÇÑ °¢°¢ÀÇ ÇÔ¼öµéµµ ÇϳªÀÇ ¸Å´º¾ó ÆäÀÌÁö¸¦ °¡Áö°í ÀÖ´Ù. ¿©±â¿¡ ¼Ò°³ÇÑ °ÍÀ» ÀÐ°í³­ ÈÄ¿¡´Â, ºñ±³Àû ½±°Ô ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¼Ó¿¡ »õ·Î¿î ¸í·ÉÀ» »ðÀÔÇÒ¼ö ÀÖ°Ô µÉ °ÍÀÌ´Ù. ¶ÇÇÑ ¹è¿ü´ø ¹Ù¿Í °°ÀÌ, SVGAlib¿Í °°ÀÌ ¼³Ä¡µÇ¾î ÀÖ´Â ¿¹Á¦ ÇÁ·Î±×·¥µéÀ» °¡Áö°Ô µÉ °ÍÀÌ´Ù.

/libs/graphics³ª tsx-11.mit.eduÀÇ pub/linux/sources/libs¿¡¼­ SVGAlibÀÇ ÃֽŹöÁ¯À» ±¸ÇÒ ¼ö ÀÖ´Ù. ÀÌ ±â»ç¸¦ ¾²°í ÀÖ´Â µ¿¾ÈÀÇ ÀÌ ÇÁ·Î±×·¥ÀÇ ¹öÀüÀº 1.3.0ÀÌ´Ù.

¸¶Áö¸·À¸·Î ½½·¢¿þ¾î ¹èÆ÷º»Àº ÁÁ±ä ÇÏÁö¸¸, SVGAlib¸¦ À߸øµÈ µð·ºÅ丮¿¡ ¼³Ä¡Çϱ⵵ ÇÑ´Ù. Sunsite³ª MIT·ÎºÎÅÍ »õ·Î¿î SVGAlib¸¦ ¹Þ¾Æ¼­ ÀνºÅçÀ» ÇÏ¸é ±×·± Çö»óÀ» °íÄ¥ ¼ö ÀÖ´Ù.


1Â÷¹ø¿ª:Á¤¿µ´ë/2Â÷¹ø¿ª:ÀÌÁÖÈ£


º» À¥½ÎÀÌÆ®´Â Miguel Angel Sepulveda°¡ °ü¸®ÇÕ´Ï´Ù.
© Jay Link 1998
¸®´ª½ºÆ÷Ä¿½º 1998