FreeBSD终端环境下图形编程初探
2009-05-13 02:04:12来源:未知 阅读 ()
一、终端环境下图形函数库的选择:
在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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- OpenBSD环境下安装PHP加速软件eAccelerator的方法[原创] 2009-05-13
- OpenBSD环境下安装Zend Optimizer的通用万能方法![原创] 2009-05-13
- 嵌入式开发专题:C语言嵌入式系统编程修炼(转) 2009-05-13
- (转载)FreeBSD如何搭建iPhone程序开发环境 2009-05-13
- FreeBSD 7.0下安装和启动Gnome/KDE图形桌面 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash