微机unix直接视频图形程序设计论文

微机unix直接视频图形程序设计论文

ID:27074277

大小:56.00 KB

页数:5页

时间:2018-12-01

微机unix直接视频图形程序设计论文_第1页
微机unix直接视频图形程序设计论文_第2页
微机unix直接视频图形程序设计论文_第3页
微机unix直接视频图形程序设计论文_第4页
微机unix直接视频图形程序设计论文_第5页
资源描述:

《微机unix直接视频图形程序设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、微机UNIX直接视频图形程序设计论文微机UNIX直接视频图形程序设计吴建林UNIX操作系统提供了X-APCONS,NULL)所有实现基本图素的操作都将针对scrnmem进行,scrnmem就是EGA/VGA相应的四个位平面的重叠地址,有关EGA/VGA的结构可参阅2。3.实现基本图素DOS操作系统下,对EGA/VGA的各种视频I/O寄存器进行操作是很方便的,可以直接使用汇编语言in和out指令进行读写。然而,UNIX操作系统下,对物理硬件的访问都是由UNIX系统核心和设备驱动程序管理的,要访问EGA/VGA的各种I/O寄存器

2、,必须获得对其访问的特权,为了实现这种功能要求,可以使用下列ioctl系统调用方式:ioctl(0,VGA-IOPRIVL,1)获取VGA的各种I/O寄存器的访问特权ioctl(0,EGA-IOPRIVL,1)获取EGA的各种I/O寄存器的访问特权UNIX操作系统基本上是采用C语言编写的,只是在低层的系统内核方面才使用低级的汇编语言,遵循这一原则,对EGA/VGA的I/O寄存器的访问可以采用汇编语言,而实现图形系统的基本图素则采用C语言。如果用户的UNIX系统中已有inb()和outb()函数(嵌入在/usr/include

3、/sys/inline.h中),则可以直接使用它们完成对各种I/O寄存器的读写,否则,必须编写下列低级汇编语言例程:/*向一端口输出一字节*//*从一端口输入一字节*/voidoutb(intport,.freelpushedx-asmmovedx,port-asmmoval,value-asmoutdx,al-asmpopedx}ucharinb(intport){-asmpushedx-asmmovedx,port-asminal,dx-asmpopedx}基本图素一般包括:设置颜色,对调色板的操作,画点、线、弧、矩形、

4、圆、椭圆、多边形、画扇形、饼图,任意图形填充,多边形填充,保存屏幕,恢复屏幕等,这些操作均可用C语言实现,细节问题可参阅2。4.关闭图形系统退出图形系统之前必须恢复EGA/VGA各I/O寄存器的值,并将显示模式恢复到进入图形模式之前的模式。采用下列ioctl调用实现:ioctl(0,MODESODES标准终端编制VT的程序和相应的信号处理例程。/*设置虚拟终端*/voidsetvirtualterm(void){structvt-modevtmode;signal(SIGUSR1,release-disp);//releas

5、e-disp为放弃VT的信号处理例程signal(SIGUSR2,acquire-disp);//acquire-disp为接受VT的信号处理例程vtmode.mode=VT_PROCESS;//设置进程控制方式vtmode.relsig=SIGUSR1;vtmode.acqsig=SIGUSR2;if(ioctl(0,VT-SETMODE,vtmode)==-1)exit(1);//出错即终止此进程}/*放弃VT的信号处理例程*/voidrelease-disp(void){signal(SIGUSR1,release-d

6、isp);保存整个图形屏幕于内部缓冲区videobuf中;ioctl(0),MODESAPCONS,NULL);//重新获取图形缓冲区的物理地址从videobuf中恢复整个图形屏幕,并释放videobuf;ioctl(0,VT-RELDISP,VT-ACKACQ);//VT-ACKACQ表明接受VT}在微机UNIX操作系统下,针对EGA/VGA进行直接视频程序设计,独立开发一个图形程序包,不仅小巧方便,而且可以重用以前在DOS下开发的图形应用程序。笔者在SCOUNIX系统下开发了一个小的低层图形软件包,许多以前的DOS图形应

7、用程序都可以移植到UNIX系统下来。另外,本文介绍的程序在使用前还应包含下列文件,即:#includestdio.h#includesys/types.h#includesys/console.h#includesys/vtkd.h#includetermio.h#includesys/signal.h分配空间时还应加上#includemalloc.h

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。