複製鏈接
請複製以下鏈接發送給好友

幀緩存

鎖定
緩衝存儲器(Frame Buffer),簡稱幀緩存或顯存,它是屏幕所顯示畫面的一個直接映象,又稱為位映射圖(Bit Map)或光柵。幀緩存的每一存儲單元對應屏幕上的一個像素,整個幀緩存對應一幀圖像。
中文名
幀緩存
外文名
Frame Buffer
別    名
位映射圖(Bit Map)或光柵
顯存(簡稱)

目錄

幀緩存定義

一個支持OpenGL渲染的窗口 (即幀緩存) 可能包含以下的組合:
· 至多4個顏色緩存
· 一個深度緩存
· 一個模板緩存
· 一個積累緩存
· 一個多重採樣緩存

幀緩存詳細介紹

幀緩衝 [1]  (framebuffer)是Linux為顯示設備提供的一個接口,把顯存抽象後的一種設備,他允許上層應用程序在圖形模式下直接對顯示緩衝區進行讀寫操作。這種操作是抽象的,統一的。用户不必關心物理顯存的位置、換頁機制等等具體細節。這些都是由Framebuffer設備驅動來完成的。
幀緩衝驅動的應用廣泛,在linux的桌面系統中,Xwindow服務器就是利用幀緩衝進行窗口的繪製。尤其是通過幀緩衝可顯示漢字點陣,成為Linux漢化的唯一可行方案。
Linux FrameBuffer 本質上只是提供了對圖形設備的硬件抽象,在開發者看來,FrameBuffer 是一塊顯示緩存,往顯示緩存中寫入特定格式的數據就意味着向屏幕輸出內容。所以説FrameBuffer就是一塊白板。例如對於初始化為16 位色的FrameBuffer 來説, FrameBuffer中的兩個字節代表屏幕上一個點,從上到下,從左至右,屏幕位置與內存地址是順序的線性關係。
幀緩存可以在系統存儲器(內存)的任意位置,視頻控制器通過訪問幀緩存來刷新屏幕。 幀緩存也叫刷新緩存 Frame buffer 或 refresh buffer, 這裏的幀(frame)是指整個屏幕範圍。
幀緩存有個地址,是在內存裏。我們通過不停的向frame buffer中寫入數據, 顯示控制器就自動的從frame buffer中取數據並顯示出來。全部的圖形都共享內存中同一個幀緩存。
CPU指定顯示控制器工作,則顯示控制器根據CPU的控制到指定的地方去取數據 和 指令, 目前的數據一般是從顯存裏取,如果顯存裏存不下,則從內存裏取, 內存也放不下,則從硬盤裏取,當然也不是內存放不下,而是為了節省內存的話,可以放在硬盤裏,然後通過指令控制顯示控制器去取。幀緩存 Frame Buffer,裏面存儲的東西是一幀一幀的, 顯卡會不停的刷新Frame Buffer, 這每一幀如果不捕獲的話, 則會被丟棄,也就是説是實時的。這每一幀不管是保存在內存還是顯存裏,都是一個顯性的信息,這每一幀假設是800x600的分辨率, 則保存的是800x600個像素點,和顏色值。
參考資料