Hello,
I search for help on the forums and wiki. (Queries: vsync, vsync half, vsync skip frames, vsync skip) and could not find my answer. I'd appreciate any help.
Does Love 2D have a VSync option for half-refresh rate or skip a certain number of frames? And if so, what is the syntax for it?
I'd like VSync to be locked at 30FPS for 60Hz monitors (Skip 1 / Half) and also 30FPS for 120Hz monitors. (Skip 3 / Quarter).
This doesn't pertain to any project (I don't have any yet!), but is just more of a curiosity. I don't think that I'll ever really make anything in this engine that requires such drastic FPS handling, but I'm just curious if it exists.
Thanks, Community.
VSync - Half Refresh / Skip Frames
Forum rules
Before you make a thread asking for help, read this.
Before you make a thread asking for help, read this.
-
- Prole
- Posts: 1
- Joined: Sat Jul 07, 2018 12:53 am
Re: VSync - Half Refresh / Skip Frames
There's no command for setting FPS directly, this should work for your usage though:
Code: Select all
function love.load()
min_dt = 1/30 --fps
next_time = love.timer.getTime()
end
function love.update(dt)
next_time = next_time + min_dt
--rest of function here
end
function love.draw()
--rest of function here
local cur_time = love.timer.getTime()
if next_time <= cur_time then
next_time = cur_time
return
end
love.timer.sleep(next_time - cur_time)
end
Re: VSync - Half Refresh / Skip Frames
Oh dear, there are much better ways than using love.sleep.
VSync ensures that stuff is drawn whenever the video card is ready.
You can't just use love.sleep and expect that everything will work fine.
Not sure why you want to do that, but it will drop the frame rate in half for you.
Note that love.update needs to be adjusted too, since you don't need to run any code if nothing changes on the screen.
VSync ensures that stuff is drawn whenever the video card is ready.
You can't just use love.sleep and expect that everything will work fine.
No. You can draw to canvas each odd frame and then redraw the previously rendered canvas each even frame.Does Love 2D have a VSync option for half-refresh rate or skip a certain number of frames? And if so, what is the syntax for it?
Not sure why you want to do that, but it will drop the frame rate in half for you.
Note that love.update needs to be adjusted too, since you don't need to run any code if nothing changes on the screen.
- zorg
- Party member
- Posts: 3465
- Joined: Thu Dec 13, 2012 2:55 pm
- Location: Absurdistan, Hungary
- Contact:
Re: VSync - Half Refresh / Skip Frames
If you are going to double-cross the game loop, at least have the decency to look at love.run and edit that too, since with the above code only, you're doing timing based on that code AND the one in the default love.run.milk wrote: ↑Sat Jul 07, 2018 4:36 am There's no command for setting FPS directly, this should work for your usage though:
Code: Select all
[i]no[/i]
Also, 11.0 did add that kind of vsync options to conf.lua, or more specifically, to love.window.setMode and its ilk (also updateMode):
"Changed the 'vsync' field of love.window.setMode and t.window in love.conf. It's now an integer with 0 disabling vsync."
any integer above 0 means that many divisions to the current screen's refresh rate.
Me and my stuff True Neutral Aspirant. Why, yes, i do indeed enjoy sarcastically correcting others when they make the most blatant of spelling mistakes. No bullying or trolling the innocent tho.
Re: VSync - Half Refresh / Skip Frames
I also wonder why you would limit people that have paid for a high refresh rate monitor to 30 fps
- zorg
- Party member
- Posts: 3465
- Joined: Thu Dec 13, 2012 2:55 pm
- Location: Absurdistan, Hungary
- Contact:
Re: VSync - Half Refresh / Skip Frames
BTW, there's still such a thing as decoupling the input/update or tickrate from the framerate itself, through various ways, some better than others.
Me and my stuff True Neutral Aspirant. Why, yes, i do indeed enjoy sarcastically correcting others when they make the most blatant of spelling mistakes. No bullying or trolling the innocent tho.
Who is online
Users browsing this forum: Amazon [Bot], Bing [Bot], Google [Bot] and 4 guests