Handmade Hero»Episode Guide
Enforcing a Video Frame Rate
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
1:40Discussion: Why we need to have an enforced video frame rate
1:40Discussion: Why we need to have an enforced video frame rate
1:40Discussion: Why we need to have an enforced video frame rate
5:27Drawing and explaining the frame computation and displaying timeline
5:27Drawing and explaining the frame computation and displaying timeline
5:27Drawing and explaining the frame computation and displaying timeline
10:35Explaining Variable Frame Rate Monitors
10:35Explaining Variable Frame Rate Monitors
10:35Explaining Variable Frame Rate Monitors
18:00Casey's Game Loop Design Overview
18:00Casey's Game Loop Design Overview
18:00Casey's Game Loop Design Overview
20:15The two audio choices we can use
20:15The two audio choices we can use
20:15The two audio choices we can use
25:23Multiple Monitor discussion
25:23Multiple Monitor discussion
25:23Multiple Monitor discussion
32:10Start implementing the enforced video frame rate
32:10Start implementing the enforced video frame rate
32:10Start implementing the enforced video frame rate
36:20Looping to ensure we are within the targetSecondsPerFrame
36:20Looping to ensure we are within the targetSecondsPerFrame
36:20Looping to ensure we are within the targetSecondsPerFrame
38:40Debugging: no input
38:40Debugging: no input
38:40Debugging: no input
40:41Compressing/Refactoring Clocking stats
40:41Compressing/Refactoring Clocking stats
40:41Compressing/Refactoring Clocking stats
49:05Implementing sleep to not melt our CPU
49:05Implementing sleep to not melt our CPU
49:05Implementing sleep to not melt our CPU
53:20Setting the Windows scheduler granularity with timeBeginPeriod()
53:20Setting the Windows scheduler granularity with timeBeginPeriod()
53:20Setting the Windows scheduler granularity with timeBeginPeriod()
1:00:30Q&A
🗩
1:00:30Q&A
🗩
1:00:30Q&A
🗩
1:01:08Question: If we are locking the frame rate. Would that not mean that someone with a lower end computer, would have a slower game speed to others
1:01:08Question: If we are locking the frame rate. Would that not mean that someone with a lower end computer, would have a slower game speed to others
1:01:08Question: If we are locking the frame rate. Would that not mean that someone with a lower end computer, would have a slower game speed to others
1:02:41Question: Even if you could get the refresh rate of the monitor, how do you sync with it on the vertical blink
1:02:41Question: Even if you could get the refresh rate of the monitor, how do you sync with it on the vertical blink
1:02:41Question: Even if you could get the refresh rate of the monitor, how do you sync with it on the vertical blink
1:03:52Question: Doesn't the sleep function go in the surrounding IF instead of the WHILE loop
1:03:52Question: Doesn't the sleep function go in the surrounding IF instead of the WHILE loop
1:03:52Question: Doesn't the sleep function go in the surrounding IF instead of the WHILE loop
1:05:47Question: Does Win32FillSoundBuffer need to come after the vsync loop
1:05:47Question: Does Win32FillSoundBuffer need to come after the vsync loop
1:05:47Question: Does Win32FillSoundBuffer need to come after the vsync loop
1:06:54Question: Check DWM.GetComposition if AERO is on
1:06:54Question: Check DWM.GetComposition if AERO is on
1:06:54Question: Check DWM.GetComposition if AERO is on
1:07:13Question: Could you explain the advantages or disadvantages to handling update and render on different threads
1:07:13Question: Could you explain the advantages or disadvantages to handling update and render on different threads
1:07:13Question: Could you explain the advantages or disadvantages to handling update and render on different threads
1:09:26Question: How would you adjust your memory management to work on devices with limited memory
1:09:26Question: How would you adjust your memory management to work on devices with limited memory
1:09:26Question: How would you adjust your memory management to work on devices with limited memory
1:09:42Question: Won't we miss frame rate due to the sleep
1:09:42Question: Won't we miss frame rate due to the sleep
1:09:42Question: Won't we miss frame rate due to the sleep
1:12:58Question: Can you fix the physics animation frame rate without fixing the missing frame issue
1:12:58Question: Can you fix the physics animation frame rate without fixing the missing frame issue
1:12:58Question: Can you fix the physics animation frame rate without fixing the missing frame issue
1:16:10Question: Why are we handling sound and video differently
1:16:10Question: Why are we handling sound and video differently
1:16:10Question: Why are we handling sound and video differently
1:16:27Question: Check if DDraw works on windows 8
1:16:27Question: Check if DDraw works on windows 8
1:16:27Question: Check if DDraw works on windows 8
1:16:52Question: Wouldn't you want to fill the screen buffer before you hit the flip point, so it can grab the screen at the flip point
1:16:52Question: Wouldn't you want to fill the screen buffer before you hit the flip point, so it can grab the screen at the flip point
1:16:52Question: Wouldn't you want to fill the screen buffer before you hit the flip point, so it can grab the screen at the flip point
1:18:03Question: Isn't DWORD an Interger
1:18:03Question: Isn't DWORD an Interger
1:18:03Question: Isn't DWORD an Interger
1:18:41Question: What do you think about having a fixed physics time unconnected to the drawn frame time
1:18:41Question: What do you think about having a fixed physics time unconnected to the drawn frame time
1:18:41Question: What do you think about having a fixed physics time unconnected to the drawn frame time
1:20:00Question: Any time you compute a world update should that not just set something that says if we get there early then wait.
1:20:00Question: Any time you compute a world update should that not just set something that says if we get there early then wait.
1:20:00Question: Any time you compute a world update should that not just set something that says if we get there early then wait.