1,
glutSwapBuffers(); 是基于console的,應(yīng)為我是win32程序所以應(yīng)該用ms自帶的SwapBuffers(hdc);
2,
glutSwapBuff*ers執(zhí)行雙緩沖交換的時(shí)候,就隱形的執(zhí)行了一次刷新操作,就不用使用glFlush,如果兩個(gè)都使用了,會(huì)降低渲染幀率。
3,
OpenGL在繪圖上下文 Rendering Context (HGLRC)上繪圖。
程序運(yùn)行過程中,可以有多個(gè) DC,但只能有一個(gè)HGLRC。因此當(dāng)一個(gè) DC 畫完圖后,要立即釋放HGLRC,以便其它的 DC 也使用。
SwapBuffer:把HGLRC 上的繪制結(jié)果刷給HDC;
glFlush:將GL命令隊(duì)列中的命令發(fā)送給顯卡并清空命令隊(duì)列,發(fā)送完立即返回;
glFinish:將GL命令隊(duì)列中的命令發(fā)送給顯卡并清空命令隊(duì)列,顯卡完成這些命令(也就是畫完了)后返回。
在繪圖命令比較冗長的情況下,可以分段調(diào)用glFlush以清空命令隊(duì)列并讓顯卡開始先執(zhí)行這些命令,最后調(diào)用glFinish來同步。
然后調(diào)用wglSwapBuffer/glutSwapBuffers調(diào)換前后緩存。
4,
*SwapBuffer命令只是把前臺(tái)和后臺(tái)的緩沖區(qū)指針交換一下而已也就是把前臺(tái)的內(nèi)容變成后臺(tái)緩沖的內(nèi)容,
把后臺(tái)的緩沖內(nèi)容換到了前臺(tái)這個(gè)函數(shù)它本身并不對(duì)換過來的成為了后臺(tái)的buffer做清理工作,所以每幀都glClear一次,然后再繪制,而后再SwapBuffers。
網(wǎng)站標(biāo)題:Opengl_7_*SwapBuffers-創(chuàng)新互聯(lián)
文章分享:http://chinadenli.net/article26/ioojg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、用戶體驗(yàn)、建站公司、品牌網(wǎng)站制作、微信小程序、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容