如何获得屏幕刷新率?
问题描述:
这甚至有可能吗?由于我注意到v-sync在我的笔记本电脑上不起作用,所以我正在“手动”构建FPS限制器,现在我想使用用户设置到他的屏幕上的FPS限制。如何获得屏幕刷新率?
编辑:我的意思是显示器的hz率。
EDIT3:继承人我得到使用的代码(我觉得...什么不对劲的地方?):
DEVMODE lpDevMode;
memset(&lpDevMode, 0, sizeof(DEVMODE));
lpDevMode.dmSize = sizeof(DEVMODE);
lpDevMode.dmDriverExtra = 0;
if(EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &lpDevMode) == 0){
framerate_limit = 60; // default value if cannot retrieve from user settings.
}
点播,这里是我的垂直同步启用代码jay.lee要求:
PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = NULL; // global
...
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC) wglGetProcAddress("wglSwapIntervalEXT");
v_sync_enabled = 0;
if(wglSwapIntervalEXT != NULL){
if(wglSwapIntervalEXT(1) != FALSE){
v_sync_enabled = 1;
}
}
答
The Win32 EnumDisplaySettings
function可能是你在找什么。刷新率保存在lpDevMode->dmDisplayFrequency
。
+0
看起来像它的工作,谢谢! – Newbie 2010-11-06 00:12:18
您的意思是显示器的Hz频率,而不是您的绘图循环? – 2010-11-05 22:47:59
监视器我的意思是。 – Newbie 2010-11-05 23:05:13
只是好奇,你怎么试图启用vsync? – 2010-11-05 23:28:19