📄 00000006.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: reden (Offer 快快来啊 ~!), 信区: Linux <BR>标 题: Linux程式设计入门 - SVGALIB <BR>发信站: BBS 水木清华站 (Thu Apr 1 19:59:52 1999) <BR> <BR>Linux程式设计入门 - SVGALIB <BR> <BR> <BR> <BR> SvgaLib是Linux Console下的VGA驱动函数库。虽然它的品质还是有点低,支援 <BR> <BR> 的萤幕卡种类不算太多,但是有许多的游戏及程式都是用它来做开发,可以算 <BR> <BR> 是非官方的标准了。如果您准备要在Console下撰写图形功能的程式,目前来说 <BR> <BR> SVGALIB是您唯一的选择。目前使用SVGALIB的程式有许多,中文终端机使用 <BR> <BR> SVGALIB的就有a4c.tty/yact/bcs16。 <BR> <BR> <BR> 这里我只讲一些简单的使用方法,如启动vga及mouse的使用。要有效地、高阶 <BR> <BR> 的运用,技巧复杂很多,例如a4c.tty就另外往上架一层Star Window <BR> <BR> Manager,来管理一个小型视窗系统。 <BR> <BR> <BR> <BR> vga <BR> <BR> <BR> <BR> <BR> vgamouse <BR> <BR> <BR> <BR> <BR> <BR> <BR> int vga_setmode(int mode); <BR> <BR> int vga_hasmode(int mode); <BR> <BR> int vga_setpalette(int index, int red, int green, int blue); <BR> <BR> int vga_getpalette(int index, int *red, int *green, int *blue); <BR> <BR> int vga_setcolor(int color); <BR> <BR> int vga_drawpixel(int x, int y); <BR> <BR> int vga_drawline(int x1, int y1, int x2, int y2); <BR> <BR> int vga_getpixel(int x, int y); <BR> <BR> vga_modeinfo *vga_getmodeinfo(int mode); <BR> <BR> <BR> unsigned char *graph_mem; <BR> <BR> unsigned char *vga_getgraphmem(void); <BR> <BR> <BR> void vga_setpage(int p); <BR> <BR> void vga_setreadpage(int p); <BR> <BR> void vga_setreadpage(int p); <BR> <BR> void vga_setwritepage(int p); <BR> <BR> void vga_setdisplaystart(int a); <BR> <BR> void vga_waitretrace(void); <BR> <BR> int vga_init(void); <BR> <BR> int vga_setrgbcolor(int r, int g, int b); <BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> #define TEXT 0 /* Compatible with VGAlib v1.2 */ <BR> <BR> #define G320x200x16 1 <BR> <BR> #define G640x200x16 2 <BR> <BR> #define G640x350x16 3 <BR> <BR> #define G640x480x16 4 <BR> <BR> #define G320x200x256 5 <BR> <BR> #define G320x240x256 6 <BR> <BR> #define G320x400x256 7 <BR> <BR> #define G360x480x256 8 <BR> <BR> #define G640x480x2 9 <BR> <BR> <BR> #define G640x480x256 10 <BR> <BR> #define G800x600x256 11 <BR> <BR> #define G1024x768x256 12 <BR> <BR> <BR> #define G1280x1024x256 13 /* Additional modes. */ <BR> <BR> <BR> #define G320x200x32K 14 <BR> <BR> #define G320x200x64K 15 <BR> <BR> #define G320x200x16M 16 <BR> <BR> #define G640x480x32K 17 <BR> <BR> #define G640x480x64K 18 <BR> <BR> #define G640x480x16M 19 <BR> <BR> #define G800x600x32K 20 <BR> <BR> #define G800x600x64K 21 <BR> <BR> #define G800x600x16M 22 <BR> <BR> #define G1024x768x32K 23 <BR> <BR> #define G1024x768x64K 24 <BR> <BR> #define G1024x768x16M 25 <BR> <BR> #define G1280x1024x32K 26 <BR> <BR> #define G1280x1024x64K 27 <BR> <BR> #define G1280x1024x16M 28 <BR> <BR> <BR> #define G800x600x16 29 <BR> <BR> #define G1024x768x16 30 <BR> <BR> #define G1280x1024x16 31 <BR> <BR> <BR> #define G720x348x2 32 /* Hercules emulation mode */ <BR> <BR> <BR> #define G320x200x16M32 33 /* 32-bit per pixel modes. */ <BR> <BR> #define G640x480x16M32 34 <BR> <BR> #define G800x600x16M32 35 <BR> <BR> #define G1024x768x16M32 36 <BR> <BR> #define G1280x1024x16M32 37 <BR> <BR> <BR> /* additional resolutions */ <BR> <BR> #define G1152x864x16 38 <BR> <BR> #define G1152x864x256 39 <BR> <BR> #define G1152x864x32K 40 <BR> <BR> #define G1152x864x64K 41 <BR> <BR> #define G1152x864x16M 42 <BR> <BR> #define G1152x864x16M32 43 <BR> <BR> <BR> #define G1600x1200x16 44 <BR> <BR> #define G1600x1200x256 45 <BR> <BR> #define G1600x1200x32K 46 <BR> <BR> #define G1600x1200x64K 47 <BR> <BR> #define G1600x1200x16M 48 <BR> <BR> #define G1600x1200x16M32 49 <BR> <BR> <BR> typedef struct { <BR> <BR> int width; <BR> <BR> int height; <BR> <BR> int bytesperpixel; <BR> <BR> int colors; <BR> <BR> int linewidth; /* scanline width in bytes */ <BR> <BR> int maxlogicalwidth; /* maximum logical scanline width */ <BR> <BR> int startaddressrange; /* changeable bits set */ <BR> <BR> int maxpixels; /* video memory / bytesperpixel */ <BR> <BR> int haveblit; /* mask of blit functions available */ <BR> <BR> int flags; /* other flags */ <BR> <BR> <BR> <BR> /* Extended fields: */ <BR> <BR> <BR> <BR> int chiptype; /* Chiptype detected */ <BR> <BR> int memory; /* videomemory in KB */ <BR> <BR> int linewidth_unit; /* Use only a multiple of this as <BR> <BR> parameter for set_displaystart */ <BR> <BR> char *linear_aperture; /* points to mmap secondary mem aperture <BR> <BR> of car <BR> <BR> int aperture_size; /* size of aperture in KB if <BR> <BR> size>=videomemory. <BR> <BR> void (*set_aperture_page) (int page); <BR> <BR> /* if aperture_size<videomemory select a memory page */ <BR> <BR> void *extensions; /* points to copy of eeprom for mach32 */ <BR> <BR> /* depends from actual driver/chiptype.. etc. */ <BR> <BR> } vga_modeinfo; <BR> <BR> <BR> <BR> <BR> OK STATION, Webmaster, Brian Lin <BR> <BR> <BR> <BR> <BR>-- <BR>在江湖中,只要拿起了刀,就是一场无涯的梦。 <BR> <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 159.226.21.168] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -