版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)UNI視頻圖形程序設(shè)計(jì)
unix操作系統(tǒng)提供了x-window圖形窗口系統(tǒng)和openlook圖形用戶界面,這些系統(tǒng)不僅昂貴、龐大,而且不便于移植以前開發(fā)的dos圖形應(yīng)用程序。本文介紹利用微機(jī)內(nèi)部硬件控制,針對(duì)ega/vga圖形適配器,進(jìn)行直接視頻圖形程序設(shè)計(jì)。對(duì)于比較熟悉pc-at體系結(jié)構(gòu)和視頻程序設(shè)計(jì)知識(shí)的程序員來說,更喜歡后者,因?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)程序,另一種是針對(duì)ibm標(biāo)準(zhǔn)終端進(jìn)行編程,本文介紹后者。
一、圖形程序設(shè)計(jì)
1.檢測(cè)視頻適配器
視頻顯示器是由視頻適配器硬件控制的,視頻適配器決定了圖形方式下顯示圖形的分辨率及可能的顏色[2]。利用系統(tǒng)調(diào)用ioctl中的cons-current命令可以檢測(cè)到當(dāng)前的視頻適配器,即:
ioctl
返回-1時(shí)表示出錯(cuò),即沒有相應(yīng)的視頻適配器硬件,如果檢測(cè)到vga卡則返回值為vga,如果檢測(cè)到ega卡則返回值為ega,……。
2.初始化圖形系統(tǒng)
初始化圖形必須完成下列任務(wù)。
獲取當(dāng)前的視頻顯示方式
ioctl的cons-get命令用來判斷當(dāng)前適配器的顯示方式,即:
ioctl
它返回顯示方式的值,這些值在包含文件中均有定義,如:sw-vag640x480c為vga適配器設(shè)置成640x480分辨率彩色圖形模式。
設(shè)置圖形模式
直接將圖形模式值放入ioctl中的命令項(xiàng)即可設(shè)置相應(yīng)的圖形模式,如ioctl
將vga適配器設(shè)置成640x480分辨率的彩色圖形模式。
獲取圖形模式下視頻緩沖區(qū)物理地址
利用ioctl的mapcons命令可以實(shí)現(xiàn)此功能,即:
char*scrnmem;
scrnmem=ioctl
所有實(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)行讀寫。然而,unix操作系統(tǒng)下,對(duì)物理硬件的訪問都是由unix系統(tǒng)核心和設(shè)備驅(qū)動(dòng)程序管理的,要訪問ega/vga的各種i/o寄存器,必須獲得對(duì)其訪問的特權(quán),為了實(shí)現(xiàn)這種功能要求,可以使用下列ioctl系統(tǒng)調(diào)用方式:
ioctl獲取vga的各種i/o寄存器的訪問特權(quán)
ioctl獲取ega的各種i/o寄存器的訪問特權(quán)
unix操作系統(tǒng)基本上是采用c語(yǔ)言編寫的,只是在低層的系統(tǒng)內(nèi)核方面才使用低級(jí)的匯編語(yǔ)言,遵循這一原則,對(duì)ega/vga的i/o寄存器的訪問可以采用匯編語(yǔ)言,而實(shí)現(xiàn)圖形系統(tǒng)的基本圖素則采用c語(yǔ)言。
如果用戶的unix系統(tǒng)中已有inb和outb函數(shù),則可以直接使用它們完成對(duì)各種i/o寄存器的讀寫,否則,必須編寫下列低級(jí)匯編語(yǔ)言例程:
/*向一端口輸出一字節(jié)*/
/*從一端口輸入一字節(jié)*/
voidoutb
{
-asmpushedx
-asmmovedx,port
-asmmoval,value
-asmoutdx,al
-asmpopedx
}
ucharinb
{
-asmpushedx
-asmmovedx,port
-asminal,dx
-asmpopedx
}
基本圖素一般包括:設(shè)置顏色,對(duì)調(diào)色板的操作,畫點(diǎn)、線、弧、矩形、圓、橢圓、多邊形、畫扇形、餅圖,任意圖形填充,多邊形填充,保存屏幕,恢復(fù)屏幕等,這些操作均可用c語(yǔ)言實(shí)現(xiàn),細(xì)節(jié)問題可參閱[2]。
4.關(guān)閉圖形系統(tǒng)
退出圖形系統(tǒng)之前必須恢復(fù)ega/vga各i/o寄存器的值,并將顯示模式恢復(fù)到進(jìn)入圖形模式之前的模式。采用下列ioctl調(diào)用實(shí)現(xiàn):
ioctl
oldmode是進(jìn)入圖形方式之前獲取的方式,unix系統(tǒng)中,獲取的方式和設(shè)置的方式之間的關(guān)系為:
設(shè)置方式值=獲取方式值|modeswitch
二、虛擬終端的使用
虛擬終端加強(qiáng)了unix系統(tǒng)v/386的接口功能,它不僅允許單個(gè)用戶開發(fā)一個(gè)圖形應(yīng)用軟件,而且允許多用戶、多道程序在同一個(gè)物理終端上運(yùn)行,在開始一個(gè)用戶的應(yīng)用程序之前不必停止另一個(gè)應(yīng)用程序,而且各個(gè)用戶之間可以互相切換。
虛擬終端有兩種操作方式[1],一種是自動(dòng)操作方式,這是默認(rèn)情況,比較簡(jiǎn)單,應(yīng)用程序并不了解終端用戶接受或放棄當(dāng)前vt的請(qǐng)求,這意味著被切換掉的進(jìn)程的任何輸入輸出都可能丟失。另一種方式是進(jìn)程控制方式,該方式支持應(yīng)用程序與其它正在使用vt的進(jìn)程之間同步,應(yīng)用程序可以負(fù)責(zé)接受或放棄使用vt。
[1]中介紹了以進(jìn)程方式控制vt的過程,并以設(shè)備驅(qū)動(dòng)程序方式介紹了接受和放棄對(duì)vt控制的信號(hào)處理例程。本文給出針對(duì)ibm標(biāo)準(zhǔn)終端編制vt的程序和相應(yīng)的信號(hào)處理例程。
/*設(shè)置虛擬終端*/
voidsetvirtualter
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年大數(shù)據(jù)中心機(jī)房建設(shè)工程合同
- 2024年廣告媒體采購(gòu)發(fā)布合同
- 2024城市公園環(huán)境衛(wèi)生承包協(xié)議
- 2024年工程貸款協(xié)議模板助力項(xiàng)目發(fā)展
- 2024年危險(xiǎn)品運(yùn)輸合同范本
- 2024年應(yīng)急通信系統(tǒng)設(shè)備采購(gòu)及安裝合同
- 2024年工程質(zhì)量檢測(cè)居間合同
- 2024年雙方共同投資建立教育咨詢公司的合同
- 挑食偏食課件教學(xué)課件
- 2024婚姻關(guān)系解除后債務(wù)清償合同
- 河北省石家莊市長(zhǎng)安區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期期中英語(yǔ)試卷
- 品牌經(jīng)理招聘筆試題及解答(某大型國(guó)企)2025年
- 多能互補(bǔ)規(guī)劃
- 珍愛生命主題班會(huì)
- 《網(wǎng)絡(luò)數(shù)據(jù)安全管理?xiàng)l例》課件
- 消除“艾梅乙”醫(yī)療歧視-從我做起
- 2024年時(shí)事政治試題(帶答案)
- 第7課《回憶我的母親》課件-2024-2025學(xué)年統(tǒng)編版語(yǔ)文八年級(jí)上冊(cè)
- 八年級(jí)歷史上冊(cè)(部編版)第六單元中華民族的抗日戰(zhàn)爭(zhēng)(大單元教學(xué)設(shè)計(jì))
- 公司研發(fā)項(xiàng)目審核管理制度
- 《詩(shī)意的色彩》課件 2024-2025學(xué)年人美版(2024)初中美術(shù)七年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論