opengl 開啟和關閉垂直同步方法

2021-06-16 07:13:22 字數 1852 閱讀 6616

垂直同步是涉及到顯示卡和顯示器的乙個概念。

當開啟了垂直同步,顯示卡在渲染完成一幀影象之後,顯示卡需要等待垂直同步訊號的到來,

否則無法繪製下一幀。

啟用垂直同步,將限制畫面更新率和顯示器一樣,也就是限制了fps(幀率)。

有關資料(沒有完全證實):

在nvidia系列的顯示卡,垂直同步預設是啟用的;

在ati 

系列的顯示卡,垂直同步預設是不啟用的;

在opengl中設定垂直同步開關的**如下:

typedef bool (apientry *pfnwglswapintervalfarproc)( int );

pfnwglswapintervalfarproc wglswapintervalext = 0;

wglswapintervalext = (pfnwglswapintervalfarproc)wglgetprocaddress("wglswapintervalext");

wglswapintervalext(1);//開啟垂直分布,限制幀率

wglswapintervalext(0);//關閉垂直分布,充分發揮顯示卡的渲染能力

關閉opengl預設的

垂直同步機制,讓你的fps飛起來

2010-01-23 19:06

opengl預設情況下,swapbuffers是和螢幕重新整理率同步的,所以你設定的顯示器重新整理率是60的話,你的opengl程式的fps只有在60幀。包括nehe的例子程式都是如此,如果要關閉垂直同步功能,需要使用opengl的擴充套件介面。貼上**。

typedef void (apientry *pfnwglextswapcontrolproc) (int);

typedef int (*pfnwglextgetswapintervalproc) (void);

pfnwglextswapcontrolproc wglswapintervalext = null;

pfnwglextgetswapintervalproc wglgetswapintervalext = null;

// 初始化函式指標介面

bool initvsync()

return false;

}

// 判斷當前狀態是否為垂直同步

bool isvsyncenabled()

// 開啟和關閉垂直同步

void setvsyncstate(bool enable)

使用方法:

bool isok = initvsync();

if (isok)

這樣在初始化的地方使用這些**可以關閉垂直同步功能,這樣fps可以變的很高。

注意: 需要加入下面的這些**才能正常編譯。

// 包含windows的標頭檔案

#include

// 包含opengl需要用到的標頭檔案(完整的vs編輯器中會自帶這些檔案)

#include

#include

#include

// 設定鏈結時的庫檔案

#pragma comment(lib, "opengl32.lib")

#pragma comment(lib, "glu32.lib")

#pragma comment(lib, "glaux.lib")

開啟和關閉Oracle Flashback

1 開啟flashback 關閉資料庫 sql shutdown immediate 啟動到mount方式 sql startup mount 如果歸檔沒有開啟,開啟歸檔 因為flashback依賴media recovery,所以在開啟flashback之前必須先啟用歸檔 sql alter da...

python selelnium開啟和關閉瀏覽器

第一次寫自動化指令碼,用下面 練練手。此 是在pycharm1下編寫 from selenium import webdriver 初始化乙個火狐瀏覽器例項 driver webdriver.firefox 最大化瀏覽器 driver.maximize window 通過get 方法,開啟乙個url...

selinux 開啟和關閉

對於新手來說,linux的selinux困擾了一大批學員,開啟後,導致檔案許可權修改不了等問題,下面就是關閉設定setlinux的方法 檢視selinux狀態 1 usr sbin sestatus v 如果selinux status引數為enabled即為開啟狀態 selinux status ...