FreeBSD终端环境下图形编程初探

2009-05-13 02:04:12来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


一、终端环境下图形函数库的选择:

在C标准中,由于平台的差异太大,所以在标准中并没有提供相关的图形接口,所以在进行图形编程时,依赖于具体的函数库,Dos环境下,典型的图形编程函数库是Borland在“Turbo c"中提供的图形函数库。在Linux环境下,比较而言使用较多的是“SVGALIB”,FreeBSD对这个函数库进行了移植,可以应用在FreeBSD的终端环境下。

在FreeBSD中,SVGALIB目前的版本是1.4.3。

主网站:
http://www.svgalib.org

二、SVGALIB的安装:

我安装的方式是采用pkg_add安装方式,在graphics这个ports中也提供了从源代码的安装方式。

软件包文件结构:

默认安装下,软件包的可执行程序都安装在:

/usr/local/bin

头文件安装在:

/usr/local/include

库文件安装在:

/usr/local/lib

这个软件包还提供了一些帮助文档,都是以man手册的方式安装在系统中。资料比较全面。

三、SVGALIB的前景:

这个图形软件包目前一直在开发中,开发版本已经是1.9.x

四、如何使用这个库进行FreeBSD终端环境下的图形编程:

http://www.svgalib.org/jay/beginners_guide/beginners_guide.html

在这个网页中提供了两个小程序用来测试和介绍这个库的使用。

程序1:svgaexam01.c

#include
#include

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

   sleep(5);
   vga_setmode(TEXT);
   return EXIT_SUCCESS;
}

这是一个非常简单的使用SVGALIB库进行终端环境下编程的例子!有以下几个要点:

1、#include,包含函数和一些数据结构定义的声明
2、vga_init(),进行初始化
3、vga_setmode(),设置显示模式
4、vga_setmode(TEXT),恢复


程序2:svgaexam02.c

#include
#include
#include
GraphicsContext *physicalscreen;
GraphicsContext *virtualscreen;

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

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

   gl_setcontext(virtualscreen);
   y = 0;
   c = 0;
   gl_setpalettecolor(c, 100, 0, 0);
   c++;
   for (i = 0; i
   return EXIT_SUCCESS;
}


这个程序要复杂一些,但是基本的步骤和程序1是类似的。


五、编译运行:

由于使用了第三方的库,所以在编译的时候需要指定装载SVGALIB,而且由于这个软件包主要是安装在/usr/local目录中,在命令行中要指定头文件和库文件的搜索路径

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:freebsd6.0 make world实施步骤(转)

下一篇:FreeBSD中文处理的一点儿想法