Code archives/Graphics/RefreshRate
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
Returns the current monitor refresh rate. | |||||
; RefreshRate() ; Returns the current monitor refresh rate. ; By Geert Jan Alsem ; http://geertjan.vze.com ; ; Updated version of a crappy RefreshRate() function I once wrote. ; Actually, this one is a bit strange too. Basicly it measures how ; long a VWait takes 100 times. However, it only uses the last 20 ; times to calculate the result. Now the strange thing is that if ; I remove the seemingly useless first 80 runs, the function ; doesn't work as well as it does now. Apparently it needs to warm ; up first... or something... ; ; Anyway, it's a pretty useless function anyway. Just use ; WaitTimer if you want to make a game run at the same speed on ; any refresh rate. Function RefreshRate() Repeat rr_timer = MilliSecs() VWait rr_timer = MilliSecs() - rr_timer If rr_count > 79 Then rr_total# = rr_total# + 1000 / Float(rr_timer) rr_count = rr_count + 1 Until rr_count = 100 Return rr_total#/20 End Function |
Comments
| ||
This is a good Function, I like how it works. perfect for my current program I'm writing. Do you mind if I suggest this small edit? We know how many times we want the Function to run, so why not For instead of Repeat. Then we can lose a line. For rr_count=0 To 100 rr_timer = MilliSecs() VWait rr_timer = MilliSecs() - rr_timer If rr_count > 80 Then rr_total# = rr_total# + 1000 / Float(rr_timer) Next Return rr_total#/20 |
| ||
This doesn't work for me as VWait does nothing, i.e. does not wait. |
| ||
It looks like VWait is like Vertical Sync. My FPS is limited to 60 when I set this on. Also, the screen tearing is fixed when enabled.. |
| ||
VWait does work. It is the difference between my program registering 60 FPS (VWait) and 2147483648 FPS (No VWait). Honestly, the between the values is the VWait instruction. |
| ||
RustyKristi wrote: It looks like VWait is like Vertical Sync. It does not even look like ... It is ... Actually you can find it in the Docs: VWait [frames] Parameters [frames] = optional number of frames to wait. Default is 1 frame. Description VWait will cause the CPU to wait for the next (or specified number of) vertical blank event on the monitor |
| ||
Personally I would have done it differently....simply had a timed pause of 1 or 2 seconds and count the number of times vwait runs....then average it. |
Code Archives Forum