日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转)gLFlush()和gLFinish()

發布時間:2024/1/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转)gLFlush()和gLFinish() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?筆者初使用OpenGL之時,所遇到的命令不能生效的問題:比如開始想用gLClearColor來設置背景色為紅色,結果執行后背景還是默認的黑色。后來查閱資料,才知道這與OpenGL的指令執行流程有關,要讓設置的繪制效果實現,需要用到glFlush()或glFinish()函數。

??????? OpenGL是用一條渲染管線線性處理命令的,它的繪圖機制是:先用 OpenGL 的繪圖上下文 Rendering Context (簡稱為 RC )把圖畫好,再把所繪結果通過 SwapBuffer() 函數傳給 Window 的 繪圖上下文 Device Context (簡記為 DC)。要注意的是,程序運行過程中,可以有多個 DC,但只能有一個 RC。因此當一個 DC 畫完圖后,要立即釋放 RC,以便其它的 DC 也使用。(轉自http://blog.sina.com.cn/s/blog_4e6f376d0100c0o2.html)

??????? 回到開頭那個問題,一般來說,我們提交給OpenGL的繪圖指令(比如設置背景色)并不是馬上送給圖形硬件執行,而是放到一個緩沖區里面,等待緩沖區滿了再將這些指令送給圖形硬件執行,所以只寫了短短的幾條設置背景色之類的指令是無法填滿緩沖區的,自然這些指令不能馬上執行以達到所需要的效果了。因此每次在寫完繪圖代碼需要讓其完成效果時我們需要在代碼后面添加glFlush()或gLFinish()函數:(1)gLFlush()作用是將緩沖區中的指令(無論是否為滿)立刻送給圖形硬件執行,發送完立即返回;(2)glFinish()作用也是將緩沖區中的指令(無論是否為滿)立刻送給圖形硬件執行,但是要等待圖形硬件執行完這些指令才返回。

轉載于:https://www.cnblogs.com/tiandsp/p/7440827.html

總結

以上是生活随笔為你收集整理的(转)gLFlush()和gLFinish()的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。