- 相關(guān)推薦
可移植的256色圖形用戶界面的設(shè)計(jì)
摘 要 該文從軟件可移植性的角度指出設(shè)計(jì)256色圖形用戶界面時(shí)應(yīng)當(dāng)注意的問題,在對SuperVGA產(chǎn)品進(jìn)行分析的基礎(chǔ)上,提出了基于表格驅(qū)動(dòng)的程序設(shè)計(jì)思想,并給出了范例。
隨著各種超級(jí)VGA的出現(xiàn),同時(shí)具有高分辨率和豐富色彩的圖形用戶界面已經(jīng)成為程序員和用戶共同追求的目標(biāo)。然而由于各制造商提供的VGA產(chǎn)品之間的差異,使得高分辨率256色圖形界面的兼容性受到影響,常常會(huì)出現(xiàn)這樣的情況:在一個(gè)顯示系統(tǒng)下運(yùn)行良好的程序,在另一種顯示系統(tǒng)下變得面目全非,甚至根本不顯示。這表明程序員對程序的可移植性重視不夠,或?qū)Ω鞣N顯示設(shè)備缺乏足夠的了解。
軟件的可移植性是指軟件產(chǎn)品從一個(gè)硬件/軟件環(huán)境轉(zhuǎn)移到另一個(gè)硬件/軟件環(huán)境的難易與繁簡程度。它從軟件對新環(huán)境的適應(yīng)性這一方面,反映了軟件的質(zhì)量。為了提高軟件的可移植性,應(yīng)盡量使軟件與具體的設(shè)備無關(guān),即提高軟件的設(shè)備獨(dú)立性。對于256色圖形界面而言,就是要使程序不依賴于某種特定的顯示器。例如,程序員沒有任何理由假定用戶使用的是TVGA。為此,程序員必須提供顯示卡的常規(guī)檢測例程,并能根據(jù)檢測的結(jié)果決定圖形算法的具體實(shí)現(xiàn)。
提高軟件設(shè)備獨(dú)立性的方法有很多,表格驅(qū)動(dòng)就是其中一種。所謂表格,就是根據(jù)需要設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)。表格中的數(shù)據(jù)由檢測例程填寫。表格中包含哪些欄目,應(yīng)在對各制造商提供的SuperVGA產(chǎn)品足夠了解的基礎(chǔ)上取舍,欄目應(yīng)體現(xiàn)各產(chǎn)品之間的差異。
一、SuperVGA編程綜述
SuperVGA產(chǎn)品在體系結(jié)構(gòu)上和標(biāo)準(zhǔn)的IBM VGA有所不同。但編程思想基本上是一樣的,這些編程方法已有許多文章介紹,這里不再重復(fù)。
影響256色圖形界面可移植性的主要障礙來自各制造商提供的VGA產(chǎn)品的下面幾點(diǎn)差異。
1.顯示模式的定義不同。如5DH對TVGA而言,代表640×480
×256色模式,對PVGA而言卻代
表1024×768×16色模式。因此,直接用這種模式號(hào)初始化顯示系統(tǒng)是不可取的。和顯示模式密切相關(guān)的是水平分辨率和垂直分辨率。盡管各VGA的256色顯示模式定義迥異,但大都支持如下幾種流行的分辨率,現(xiàn)用統(tǒng)一的模式號(hào)定義見附表。
@@10A06500.GIF;附表@@
不同分辨率之間的區(qū)別,體現(xiàn)在編程上就是同一屏幕坐標(biāo)映射到顯存的地址不同,但映射機(jī)理卻是一樣的。具體地說,坐標(biāo)(x,y)對應(yīng)顯存的偏移地址(相對于A000)為Addr=-vga-width*y x
2.分頁機(jī)制不同。SuperVGA使用256K、512K或1M
的顯示存儲(chǔ)器結(jié)構(gòu)。為了使處理器可通過一個(gè)64K主窗口來存取這樣大的顯示存儲(chǔ)器,SuperVGA有一個(gè)存儲(chǔ)器分頁機(jī)制,使得只將顯示存儲(chǔ)器的一部分映射到處理器的地址空間。值得注意的是,不同的VGA產(chǎn)品,其頁的大小不同,頁起始地址的粒度也是可變的。具體的頁選擇算法請查閱制造商提供的資料。
不同的顯示模式,顯示一屏圖像所需的頁數(shù)是不同的。
除了可移植性外,效率也是一個(gè)不可忽視的因素。圖形系統(tǒng)的核心部分應(yīng)使用匯編語言編程。這不僅是因?yàn)閰R編語言的效率高,而且還因?yàn)閰R編語言子程序的可再用性和可協(xié)用性也很好。核心部分應(yīng)十分重視下面幾點(diǎn):(1)減少不必要的頁邊界檢查次數(shù);(2)只有在必要時(shí)才進(jìn)行頁選擇;(3)選擇高效的機(jī)器指令,F(xiàn)舉例說明。程序1是圖像顯示系統(tǒng)中常用的函數(shù),其功能是將解包后的圖像數(shù)據(jù)送到顯存。為便于閱讀同時(shí)給出了C語言調(diào)用原型。程序在傳送每一行數(shù)據(jù)時(shí),提前預(yù)測是否會(huì)遇到頁邊界,如果沒有,直接傳送;如果有,則將數(shù)據(jù)分成兩部分,分別傳送,中間插入頁選擇。所有的傳送均用字操作代替字節(jié)操作。頁
[1] [2] [3] [4]
【可移植的256色圖形用戶界面的設(shè)計(jì)】相關(guān)文章:
以用戶為中心的設(shè)計(jì)04-30
淺議傳統(tǒng)圖形對現(xiàn)代圖形設(shè)計(jì)的影響04-29
網(wǎng)站UI設(shè)計(jì)與用戶體驗(yàn)的關(guān)系論文04-29
移植04-29
圖形的旋轉(zhuǎn)教案設(shè)計(jì)01-29
圖形設(shè)計(jì)教學(xué)的實(shí)踐與創(chuàng)新05-01
《對稱圖形》教案設(shè)計(jì)04-24
圖形設(shè)計(jì)課程的思考與構(gòu)想04-29
用戶04-29