微机UNIX直接视频图形程序设计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
  操作系统提供了-图形窗口系统和图形用户界面,这些系统不仅昂贵、庞大,而且不便于移植以前开发的图形应用程序。   本文介绍利用微机内部硬件控制,针对图形适配器,进行直接视频图形程序设计。   对于比较熟悉-体系结构和视频程序设计知识的程序员来说,更喜欢后者,因为能有效地利用硬件特性,加快图形处理速度。   进行图形程序设计时,还须考虑视频接口的一个重要特性——虚拟终端功能,因为它允许控制几个独立的图形应用窗口,允许多个应用程序在同一个终端上进行切换。   本文提供针对标准终端对虚拟终端进行有效管理的手段。   微机直接视频图形程序设计有两种方法,一种是利用设备驱动程序见参考文献1,另一种是针对标准终端进行编程,本文介绍后者。   一、图形程序设计1检测视频适配器视频显示器是由视频适配器硬件控制的,视频适配器决定了图形方式下显示图形的分辨率及可能的颜色[2]。   利用系统调用中的-命令可以检测到当前的视频适配器,即0,-,返回-1时表示出错,即没有相应的视频适配器硬件,如果检测到卡则返回值为,如果检测到卡则返回值为,……。   2初始化图形系统初始化图形必须完成下列任务。   1获取当前的视频显示方式的-命令用来判断当前适配器的显示方式,即0,-,它返回显示方式的值,这些值在包含文件中均有定义,如-640480为适配器设置成640480分辨率彩色图形模式。   2设置图形模式直接将图形模式值放入中的命令项即可设置相应的图形模式,如0,-640480,将适配器设置成640480分辨率的彩色图形模式。   3获取图形模式下视频缓冲区物理地址利用的命令可以实现此功能,即*;=*0,,所有实现基本图素的操作都将针对进行,就是相应的四个位平面的重叠地址,有关的结构可参阅[2]。   3实现基本图素操作系统下,对的各种视频寄存器进行操作是很方便的,可以直接使用汇编语言和指令进行读写。   然而,操作系统下,对物理硬件的访问都是由系统核心和设备驱动程序管理的,要访问的各种寄存器,必须获得对其访问的特权,为了实现这种功能要求,可以使用下列系统调用方式0,-,1获取的各种寄存器的访问特权0,-,1获取的各种寄存器的访问特权操作系统基本上是采用语言编写的,只是在低层的系统内核方面才使用低级的汇编语言,遵循这一原则,对的寄存器的访问可以采用汇编语言,而实现图形系统的基本图素则采用语言。   如果用户的系统中已有和函数嵌入在中,则可以直接使用它们完成对各种寄存器的读写,否则,必须编写下列低级汇编语言例程*向一端口输出一字节**从一端口输入一字节*,{--,-,-,-}{--,-,-}基本图素一般包括设置颜色,对调色板的操作,画点、线、弧、矩形、圆、椭圆、多边形、画扇形、饼图,任意图形填充,多边形填充,保存屏幕,恢复屏幕等,这些操作均可用语言实现,细节问题可参阅[2]。   4关闭图形系统退出图形系统之前必须恢复各寄存器的值,并将显示模式恢复到进入图形模式之前的模式。   采用下列调用实现0,|,是进入图形方式之前获取的方式,系统中,获取的方式和设置的方式之间的关系为设置方式值=获取方式值|二、虚拟终端的使用虚拟终端,简称加强了系统386的接口功能,它不仅允许单个用户开发一个图形应用软件,而且允许多用户、多道程序在同一个物理终端上运行,在开始一个用户的应用程序之前不必停止另一个应用程序,而且各个用户之间可以互相切换。   虚拟终端有两种操作方式[1],一种是自动操作方式-,这是默认情况,比较简单,应用程序并不了解终端用户接受或放弃当前的请求,这意味着被切换掉的进程的任何输入输出都可能丢失。   另一   种方式是进程控制方式-,该方式支持应用程序与其它正在使用的进程之间同步,应用程序可以负责接受或放弃使用。   [1]中介绍了以进程方式控制的过程,并以设备驱动程序方式介绍了接受和放弃对控制的信号处理例程。   本文给出针对标准终端编制的程序和相应的信号处理例程。   *设置虚拟终端*{-;1,-;-为放弃的信号处理例程2,-;-为接受的信号处理例程=_;设置进程控制方式=1;=2;0,-,==-11;出错即终止此进程}*放弃的信号处理例程*-{1,-;保存整个图形屏幕于内部缓冲区中;0,|,;为进入图形模式之前的显示方式0,-,-;-表明同意放弃,如果此项为0,则表示拒绝放弃}*接受的信号处理例程*-{2,-;0,,;为应用程序所处的图形模式=*0,,;重新获取图形缓冲区的物理地址从中恢复整个图形屏幕,并释放;0,-,-;-表明接受}在微机操作系统下,针对进行直接视频程序设计,独立开发一个图形程序包,不仅小巧方便,而且可以重用以前在下开发的图形应用程序。   笔者在系统下开发了一个小的低层图形软件包,许多以前的图形应用程序都可以移植到系统下来。   

文档评论(0)

tangtianxu1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档