在线观看国产区-在线观看国产欧美-在线观看国产免费高清不卡-在线观看国产久青草-久久国产精品久久久久久-久久国产精品久久久

美章網(wǎng) 資料文庫(kù) 微機(jī)UNI視頻圖形程序設(shè)計(jì)范文

微機(jī)UNI視頻圖形程序設(shè)計(jì)范文

本站小編為你精心準(zhǔn)備了微機(jī)UNI視頻圖形程序設(shè)計(jì)參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫(xiě)作靈感。歡迎深入閱讀并收藏。

unix操作系統(tǒng)提供了x-window圖形窗口系統(tǒng)和openlook圖形用戶界面,這些系統(tǒng)不僅昂貴、龐大,而且不便于移植以前開(kāi)發(fā)的dos圖形應(yīng)用程序。本文介紹利用微機(jī)內(nèi)部硬件控制,針對(duì)ega/vga圖形適配器,進(jìn)行直接視頻圖形程序設(shè)計(jì)。對(duì)于比較熟悉pc-at體系結(jié)構(gòu)和視頻程序設(shè)計(jì)知識(shí)的程序員來(lái)說(shuō),更喜歡后者,因?yàn)槟苡行У乩糜布匦裕涌靾D形處理速度。

進(jìn)行圖形程序設(shè)計(jì)時(shí),還須考慮視頻接口的一個(gè)重要特性——虛擬終端功能,因?yàn)樗试S控制幾個(gè)獨(dú)立的圖形應(yīng)用窗口,允許多個(gè)應(yīng)用程序在同一個(gè)終端上進(jìn)行切換。本文提供針對(duì)ibm標(biāo)準(zhǔn)終端對(duì)虛擬終端進(jìn)行有效管理的手段。

微機(jī)unix直接視頻圖形程序設(shè)計(jì)有兩種方法,一種是利用設(shè)備驅(qū)動(dòng)程序(見(jiàn)參考文獻(xiàn)1),另一種是針對(duì)ibm標(biāo)準(zhǔn)終端進(jìn)行編程,本文介紹后者。

一、圖形程序設(shè)計(jì)

1.檢測(cè)視頻適配器

視頻顯示器是由視頻適配器硬件控制的,視頻適配器決定了圖形方式下顯示圖形的分辨率及可能的顏色[2]。利用系統(tǒng)調(diào)用ioctl中的cons-current命令可以檢測(cè)到當(dāng)前的視頻適配器,即:

ioctl(0,cons-current,null)

返回-1時(shí)表示出錯(cuò),即沒(méi)有相應(yīng)的視頻適配器硬件,如果檢測(cè)到vga卡則返回值為vga,如果檢測(cè)到ega卡則返回值為ega,……。

2.初始化圖形系統(tǒng)

初始化圖形必須完成下列任務(wù)。

(1)獲取當(dāng)前的視頻顯示方式

ioctl的cons-get命令用來(lái)判斷當(dāng)前適配器的顯示方式,即:

ioctl(0,cons-get,null)

它返回顯示方式的值,這些值在包含文件vtkd.h中均有定義,如:sw-vag640x480c為vga適配器設(shè)置成640x480分辨率彩色圖形模式。

(2)設(shè)置圖形模式

直接將圖形模式值放入ioctl中的命令項(xiàng)即可設(shè)置相應(yīng)的圖形模式,如ioctl(0,sw-vga640x480c,null)

將vga適配器設(shè)置成640x480分辨率的彩色圖形模式。

(3)獲取圖形模式下視頻緩沖區(qū)物理地址

利用ioctl的mapcons命令可以實(shí)現(xiàn)此功能,即:

char*scrnmem;

scrnmem=(char*)ioctl(0,mapcons,null)

所有實(shí)現(xiàn)基本圖素的操作都將針對(duì)scrnmem進(jìn)行,scrnmem就是ega/vga相應(yīng)的四個(gè)位平面的重疊地址,有關(guān)ega/vga的結(jié)構(gòu)可參閱[2]。

3.實(shí)現(xiàn)基本圖素

dos操作系統(tǒng)下,對(duì)ega/vga的各種視頻i/o寄存器進(jìn)行操作是很方便的,可以直接使用匯編語(yǔ)言in和out指令進(jìn)行讀寫(xiě)。然而,unix操作系統(tǒng)下,對(duì)物理硬件的訪問(wèn)都是由unix系統(tǒng)核心和設(shè)備驅(qū)動(dòng)程序管理的,要訪問(wèn)ega/vga的各種i/o寄存器,必須獲得對(duì)其訪問(wèn)的特權(quán),為了實(shí)現(xiàn)這種功能要求,可以使用下列ioctl系統(tǒng)調(diào)用方式:

ioctl(0,vga-ioprivl,1)獲取vga的各種i/o寄存器的訪問(wèn)特權(quán)

ioctl(0,ega-ioprivl,1)獲取ega的各種i/o寄存器的訪問(wèn)特權(quán)

unix操作系統(tǒng)基本上是采用c語(yǔ)言編寫(xiě)的,只是在低層的系統(tǒng)內(nèi)核方面才使用低級(jí)的匯編語(yǔ)言,遵循這一原則,對(duì)ega/vga的i/o寄存器的訪問(wèn)可以采用匯編語(yǔ)言,而實(shí)現(xiàn)圖形系統(tǒng)的基本圖素則采用c語(yǔ)言。

如果用戶的unix系統(tǒng)中已有inb()和outb()函數(shù)(嵌入在/usr/include/sys/inline.h中),則可以直接使用它們完成對(duì)各種i/o寄存器的讀寫(xiě),否則,必須編寫(xiě)下列低級(jí)匯編語(yǔ)言例程:

/*向一端口輸出一字節(jié)*/

/*從一端口輸入一字節(jié)*/

voidoutb(intport,ucharvalue)

{

-asmpushedx

-asmmovedx,port

-asmmoval,value

-asmoutdx,al

-asmpopedx

}

ucharinb(intport)

{

-asmpushedx

-asmmovedx,port

-asminal,dx

-asmpopedx

}

基本圖素一般包括:設(shè)置顏色,對(duì)調(diào)色板的操作,畫(huà)點(diǎn)、線、弧、矩形、圓、橢圓、多邊形、畫(huà)扇形、餅圖,任意圖形填充,多邊形填充,保存屏幕,恢復(fù)屏幕等,這些操作均可用c語(yǔ)言實(shí)現(xiàn),細(xì)節(jié)問(wèn)題可參閱[2]。

4.關(guān)閉圖形系統(tǒng)

退出圖形系統(tǒng)之前必須恢復(fù)ega/vga各i/o寄存器的值,并將顯示模式恢復(fù)到進(jìn)入圖形模式之前的模式。采用下列ioctl調(diào)用實(shí)現(xiàn):

ioctl(0,modeswitch|oldmode,null)

oldmode是進(jìn)入圖形方式之前獲取的方式,unix系統(tǒng)中,獲取的方式和設(shè)置的方式之間的關(guān)系為:

設(shè)置方式值=獲取方式值|modeswitch

二、虛擬終端的使用

虛擬終端(virtualterminal,簡(jiǎn)稱vt)加強(qiáng)了unix系統(tǒng)v/386的接口功能,它不僅允許單個(gè)用戶開(kāi)發(fā)一個(gè)圖形應(yīng)用軟件,而且允許多用戶、多道程序在同一個(gè)物理終端上運(yùn)行,在開(kāi)始一個(gè)用戶的應(yīng)用程序之前不必停止另一個(gè)應(yīng)用程序,而且各個(gè)用戶之間可以互相切換。

虛擬終端有兩種操作方式[1],一種是自動(dòng)操作方式(vt-auto),這是默認(rèn)情況,比較簡(jiǎn)單,應(yīng)用程序并不了解終端用戶接受或放棄當(dāng)前vt的請(qǐng)求,這意味著被切換掉的進(jìn)程的任何輸入輸出都可能丟失。另一種方式是進(jìn)程控制方式(vt-process),該方式支持應(yīng)用程序與其它正在使用vt的進(jìn)程之間同步,應(yīng)用程序可以負(fù)責(zé)接受或放棄使用vt。

[1]中介紹了以進(jìn)程方式控制vt的過(guò)程,并以設(shè)備驅(qū)動(dòng)程序方式介紹了接受和放棄對(duì)vt控制的信號(hào)處理例程。本文給出針對(duì)ibm標(biāo)準(zhǔn)終端編制vt的程序和相應(yīng)的信號(hào)處理例程。

/*設(shè)置虛擬終端*/

voidsetvirtualterm(void)

{

structvt-modevtmode;

signal(sigusr1,release-disp);//release-disp為放棄vt的信號(hào)處理例程

signal(sigusr2,acquire-disp);//acquire-disp為接受vt的信號(hào)處理例程

vtmode.mode

主站蜘蛛池模板: 深爱婷婷激情网 | 美女被羞羞的网站 | 激情六月天婷婷 | 久久综合九色综合欧洲 | 婷婷六月久久综合丁香可观看 | 亚洲高清无在码在线电影下载 | 在线免费视频国产 | 亚洲欧美精品一中文字幕 | 在线观看国产人视频免费中国 | 亚洲成在人线久久综合 | 亚洲色图男人天堂 | 亚洲女人天堂网 | 亚洲午夜小视频 | 一久久| 一级国产精品一级国产精品片 | 九九视频在线播放 | 黄色污网站在线观看 | 日日操网 | 校园春色男人天堂 | 伊人久久五月天综合网 | 久久er热这里只有精品23 | 五月天六月色 | 中国欧美日韩一区二区三区 | 国产亚洲精品国产 | 日韩成人在线观看视频 | 性欧美另类老妇高清 | 自拍偷拍首页 | 国产黄色小视频 | 久久久久久国产精品免费免费 | 最近中文字幕无吗高清免费视频 | 亚洲天堂网视频 | 亚洲水蜜桃久久综合网站 | 亚洲国产成人资源在线桃色 | 在线观看男女 | 日本不卡视频一区二区三区 | 中文字幕精品一区二区三区视频 | 国语黄色片 | 九热视频在线观看 | 中文字幕在线视频第一页 | 18pao国产成视频永久免费 | 羞羞免费网页登界面入口 |