雙緩衝和單快取的區別

2021-07-22 04:59:07 字數 490 閱讀 2244

雙緩衝和單快取的區別

編碼時遇到glutinitdisplaymode(unsigned int mode) ;函式,主要作用是設定初始顯示模式,其中有兩個可用形參不甚理解。分別為glut_single,glut_double。其中glut_single指定單快取視窗,glut_double指定雙快取視窗。

這裡必須要搞明白雙快取視窗和單快取視窗的區別。

單快取視窗:實際上就是將所有的繪圖指令在視窗上執行,就是直接在視窗上繪圖,這樣的繪圖效率是比較慢的,如果使用單緩衝,而電腦比較慢,你回到螢幕的閃爍。

雙快取視窗:實際上的繪圖指令是在乙個緩衝區完成,這裡的繪圖非常的快,在繪圖指令完成之後,再通過交換指令把完成的圖形立即顯示在螢幕上,這就避免了出現繪圖的不完整,同時效率很高。

如何使用呢?

一般用opengl繪圖都是用雙緩衝,單緩衝一般只用於顯示單獨的一副非動態的影象。

單緩衝和雙緩衝的時間計算

在塊裝置輸入資料的過程中,首先把磁碟資料送到緩衝區,花費的時間為ts,簡記為ts過程 然後把作業系統緩衝區的資料送到使用者區,花費的時間為tm,簡記為tm過程 最後使用者程序對這批資料進行計算,花費的時間為tc。簡記為tc過程 當tc過程與tm過程操作同一塊緩衝區時,這兩個操作不能並行 讀寫鎖 ts...

緩衝和快取的區別

緩衝 buffer 緩衝的作用就是協調上下層之間的效能差異。通過緩衝區的緩衝,當上層元件效能優於下層元件的時候,緩衝可以有效減少上層元件對下層元件的等待時間。基於這樣的結構,上層元件不需要等待下層元件完全接收全部資料,即可返回進行其他操作,加快了上層元件的處理速度,從而提公升整個系統的效能。快取也是...

雙緩衝和後備緩衝

前面的例子都是,直接在主表面上繪東西。對於動畫,直接在主表面上繪,會產生很嚴重的閃爍。解決的辦法是採用雙緩衝或後備緩衝。雙緩衝 在離屏緩衝中繪製影象,然後將其拷貝到顯示表面。見下面 先把資料放到double buffer,最後再拷貝到主表面上。下面sleep 300 睡眠了0.3秒這麼長的時間是為了...