欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Linux圖形領(lǐng)域的基礎設施

Linux 圖形領(lǐng)域的基礎設施收藏

Linux 圖形領(lǐng)域的基礎設施

本小節首先向讀者描述 Linux 圖形領(lǐng)域中常見(jiàn)的基礎設施。之所以稱(chēng)為基礎設施,是因為這些系統(或者函數庫),一般作為其他高級圖形或者圖形應用程序的基本函數庫。這些系統(或者函數庫)包括:X Window、SVGALib、FrameBuffer 等等。

1.1 X Window

提起 Linux 上的圖形,許多人首先想到的是 X Window。這一系統是目前類(lèi) UNIX 系統中處于控制地位的桌面圖形系統。無(wú)疑,XWindow 作為一個(gè)圖形環(huán)境是成功的,它上面運行著(zhù)包括 CAD建模工具和辦公套件在內的大量應用程序。但必須看到的是,由于 X Window在體系接口上的原因,限制了其對游戲、多媒體的支持能力。用戶(hù)在 X Window 上運行 VCD播放器,或者運行一些大型的三維游戲時(shí),經(jīng)常會(huì )發(fā)現同樣的硬件配置,卻不能獲得和 Windows 操作系統一樣的圖形效果?D?D即使使用了加速的X Server,其效果也不能令人滿(mǎn)意。另外,大型的應用程序(比如 Mozilla 瀏覽器)在 X Window上運行時(shí)的響應能力,也相當不能令人滿(mǎn)意。當然,這里有 Linux 內核在進(jìn)程調度上的問(wèn)題,也有 X Window 的原因。

X Window 為了滿(mǎn)足對游戲、多媒體等應用對圖形加速能力的要求,提供了 DGA(直接圖形訪(fǎng)問(wèn))擴展,通過(guò)該擴展,應用程序可以在全屏模式下直接訪(fǎng)問(wèn)顯示卡的幀緩沖區,并能夠提供對某些加速功能的支持。

Tiny-X是XServer在嵌入式系統的小巧實(shí)現,它由Xfree86 Core Team 的Keith Packard開(kāi)發(fā)。它的目標是運行于小內存系統環(huán)境。典型的運行于X86 CPU 上的Tiny-X Server 尺寸接近(小于)1MB。

1.2 SVGALib

SVGALib 是 Linux 系統中最早出現的非 X 圖形支持庫。這個(gè)庫從最初對標準 VGA 兼容芯片的支持開(kāi)始,一直發(fā)展到對老式SVGA 芯片的支持以及對現今流行的高級視頻芯片的支持。它為用戶(hù)提供了在控制臺上進(jìn)行圖形編程的接口,使用戶(hù)可以在 PC兼容系統上方便地獲得圖形支持。但該系統有如下不足:

  1. 接口雜亂。SVGALib 從最初的 vgalib 發(fā)展而來(lái),保留了老系統的許多接口,而這些接口卻不能良好地迎合新顯示芯片的圖形能力。
  2. 未能較好地隱藏硬件細節。許多操作,不能自動(dòng)使用顯示芯片的加速能力支持。
  3. 可移植性差。SVGALib 目前只能運行在 x86 平臺上,對其他平臺的支持能力較差(Alpha 平臺除外)。
  4. 發(fā)展緩慢,有被其他圖形庫取代的可能。SVGALib 作為一個(gè)老的圖形支持庫,目前的應用范圍越來(lái)越小,尤其在 Linux 內核增加了 FrameBuffer 驅動(dòng)支持之后,有逐漸被其他圖形庫替代的跡象。
  5. 對 應用的支持能力較差。SVAGLib 作為一個(gè)圖形庫,對高級圖形功能的支持,比如直線(xiàn)和曲線(xiàn)等等,卻不能令人滿(mǎn)意。盡管 SVGALib 有許多缺點(diǎn),但 SVGALib 經(jīng)常被其他圖形庫用來(lái)初始化特定芯片的顯示模式,并獲得映射到進(jìn)程地址空間的線(xiàn)性顯示內存首地址(即幀緩沖區),而其他的接口卻很少用到。另 外,SVGALib 中所包含的諸如鍵盤(pán)、鼠標和游戲桿的接口,也很少被其他應用程序所使用。

因此,SVGALib 的使用越來(lái)越少,筆者也不建議用戶(hù)使用這個(gè)圖形庫。當然,如果用戶(hù)的顯示卡只支持標準 VGA 模式,則 SVGALib 還是比較好的選擇。

1.3 FrameBuffer

FrameBuffer 是出現在 2.2.xx內核當中的一種驅動(dòng)程序接口。這種接口將顯示設備抽象為幀緩沖區。用戶(hù)可以將它看成是顯示內存的一個(gè)映像,將其映射到進(jìn)程地址空間之后,就可以直接進(jìn)行讀寫(xiě)操作,而寫(xiě)操作可以立即反應在屏幕上。該驅動(dòng)程序的設備文件一般是 /dev/fb0、/dev/fb1 等等。比如,假設現在的顯示模式是1024x768-8 位色,則可以通過(guò)如下的命令清空屏幕:

$ dd if=/dev/zero of=/dev/fb0 bs=1024 count=768

在應用程序中,一般通過(guò)將 FrameBuffer 設備映射到進(jìn)程地址空間的方式使用,比如下面的程序就打開(kāi) /dev/fb0 設備,并通過(guò)mmap 系統調用進(jìn)行地址映射,隨后用 memset 將屏幕清空(這里假設顯示模式是 1024x768-8 位色模式,線(xiàn)性?xún)却婺J剑?/p>

int fb;
unsigned char* fb_mem;
fb = open ("/dev/fb0", O_RDWR);
fb_mem = mmap (NULL, 1024*768, PROT_READ|PROT_WRITE,MAP_SHARED,fb,0);
memset (fb_mem, 0, 1024*768);

FrameBuffer 設備還提供了若干 ioctl 命令,通過(guò)這些命令,可以獲得顯示設備的一些固定信息(比如顯示內存大?。?、與顯示模式相關(guān)的可變信息(比如分辨率、象素結構、每掃描線(xiàn)的字節寬度),以及偽彩色模式下的調色板信息等等。

通過(guò) FrameBuffer設備,還可以獲得當前內核所支持的加速顯示卡的類(lèi)型(通過(guò)固定信息得到),這種類(lèi)型通常是和特定顯示芯片相關(guān)的。比如目前最新的內核(2.4.9)中,就包含有對 S3、Matrox、nVidia、3Dfx 等等流行顯示芯片的加速支持。在獲得了加速芯片類(lèi)型之后,應用程序就可以將 PCI設備的內存I/O(memio)映射到進(jìn)程的地址空間。這些 memio一般是用來(lái)控制顯示卡的寄存器,通過(guò)對這些寄存器的操作,應用程序就可以控制特定顯卡的加速功能。

PCI設備可以將自己的控制寄存器映射到物理內存空間,而后,對這些控制寄存器的訪(fǎng)問(wèn),給變成了對物理內存的訪(fǎng)問(wèn)。因此,這些寄存器又被稱(chēng)為"memio"。一旦被映射到物理內存,Linux 的普通進(jìn)程就可以通過(guò) mmap 將這些內存 I/O 映射到進(jìn)程地址空間,這樣就可以直接訪(fǎng)問(wèn)這些寄存器了。

當然,因為不同的顯示芯片具有不同的加速能力,對memio的使用和定義也各自不同,這時(shí),就需要針對加速芯片的不同類(lèi)型來(lái)編寫(xiě)實(shí)現不同的加速功能。比如大多數芯片都提供了對矩形填充的硬件加速支持,但不同的芯片實(shí)現方式不同,這時(shí),就需要針對不同的芯片類(lèi)型編寫(xiě)不同的用來(lái)完成填充矩形的函數。

說(shuō)到這里,讀者可能已經(jīng)意識到 FrameBuffer只是一個(gè)提供顯示內存和顯示芯片寄存器從物理內存映射到進(jìn)程地址空間中的設備。所以,對于應用程序而言,如果希望在 FrameBuffer之上進(jìn)行圖形編程,還需要完成其他許多工作。舉個(gè)例子來(lái)講,FrameBuffer就像一張畫(huà)布,使用什么樣子的畫(huà)筆,如何畫(huà)畫(huà),還需要你自己動(dòng)手完成。

1.4 LibGGI

LibGGI 試圖建立一個(gè)一般性的圖形接口,而這個(gè)抽象接口連同相關(guān)的輸入(鼠標、鍵盤(pán)、游戲桿等)抽象接口一起,可以方便地運行在 XWindow、SVGALib、FrameBuffer 等等之上。建立在 LibGGI之上的應用程序,不經(jīng)重新編譯,就可以在上述這些底層圖形接口上運行。但不知何故,LibGGI 的發(fā)展幾乎停滯。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Android圖形系統分析與移植
怎樣寫(xiě) Linux LCD 驅動(dòng)程序
FrameBuffer 原理
framebuffer 簡(jiǎn)介
關(guān)于framebuffer
Samung LCD接口原理
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久