Handmade Hero»Episode Guide
Adding Hover to the Debug Graphs
?
?

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)
0:15Recap and plan for today
0:15Recap and plan for today
0:15Recap and plan for today
1:22The game runs slow because every frame we're collating all events for the past 64 debug frames
1:22The game runs slow because every frame we're collating all events for the past 64 debug frames
1:22The game runs slow because every frame we're collating all events for the past 64 debug frames
2:10Decreasing the amount of debug frames we process from 64 to 8
2:10Decreasing the amount of debug frames we process from 64 to 8
2:10Decreasing the amount of debug frames we process from 64 to 8
4:01We want to extract more information from the debug display
4:01We want to extract more information from the debug display
4:01We want to extract more information from the debug display
6:20We want the debug display to show us information associated to any bar when we hover over it
6:20We want the debug display to show us information associated to any bar when we hover over it
6:20We want the debug display to show us information associated to any bar when we hover over it
6:45Passing the game input to the debug system so that it can access the mouse position
6:45Passing the game input to the debug system so that it can access the mouse position
6:45Passing the game input to the debug system so that it can access the mouse position
7:47Checking if the mouse position falls inside any given rectangle
7:47Checking if the mouse position falls inside any given rectangle
7:47Checking if the mouse position falls inside any given rectangle
10:05The information to display will come from a debug_record associated to the debug_frame_region
10:05The information to display will come from a debug_record associated to the debug_frame_region
10:05The information to display will come from a debug_record associated to the debug_frame_region
11:45Adding a debug record and a cycle count to debug_frame_region
11:45Adding a debug record and a cycle count to debug_frame_region
11:45Adding a debug record and a cycle count to debug_frame_region
13:23Building a rectangle to test if the mouse pointer falls inside
13:23Building a rectangle to test if the mouse pointer falls inside
13:23Building a rectangle to test if the mouse pointer falls inside
16:30Implementing a version of PushRect that takes a rectangle as its argument
16:30Implementing a version of PushRect that takes a rectangle as its argument
16:30Implementing a version of PushRect that takes a rectangle as its argument
17:44Testing. It runs but hovering doesn't work yet
17:44Testing. It runs but hovering doesn't work yet
17:44Testing. It runs but hovering doesn't work yet
18:26The mouse position is relative to Window' coordinate space, not to our rendering space
18:26The mouse position is relative to Window' coordinate space, not to our rendering space
18:26The mouse position is relative to Window' coordinate space, not to our rendering space
20:35Transforming mouse coordinates to the game space
20:35Transforming mouse coordinates to the game space
20:35Transforming mouse coordinates to the game space
22:30Hover works now
22:30Hover works now
22:30Hover works now
23:00Changing the position of the debug text on the screen
23:00Changing the position of the debug text on the screen
23:00Changing the position of the debug text on the screen
25:01Our ms/frame display shows 0 ms because we're computing it using the information from an unclosed frame
25:01Our ms/frame display shows 0 ms because we're computing it using the information from an unclosed frame
25:01Our ms/frame display shows 0 ms because we're computing it using the information from an unclosed frame
27:07We don't want the game layer to depend on Windows' representation of mouse position. The platform layer should transform it into the game's coordinate system
27:07We don't want the game layer to depend on Windows' representation of mouse position. The platform layer should transform it into the game's coordinate system
27:07We don't want the game layer to depend on Windows' representation of mouse position. The platform layer should transform it into the game's coordinate system
28:30Transforming the mouse position inside win32_handmade.cpp
28:30Transforming the mouse position inside win32_handmade.cpp
28:30Transforming the mouse position inside win32_handmade.cpp
30:30(Blackboard) If we want the leftmost and rightmost columns of our backbuffer to have the same absolute X, the (0,0) coordinate will fall on a pixel boundary
30:30(Blackboard) If we want the leftmost and rightmost columns of our backbuffer to have the same absolute X, the (0,0) coordinate will fall on a pixel boundary
30:30(Blackboard) If we want the leftmost and rightmost columns of our backbuffer to have the same absolute X, the (0,0) coordinate will fall on a pixel boundary
38:41Pausing collation
38:41Pausing collation
38:41Pausing collation
40:33Defining enumerands for mouse buttons
40:33Defining enumerands for mouse buttons
40:33Defining enumerands for mouse buttons
43:06Implementing WasPressed using the recorded HalfTransitionCount
43:06Implementing WasPressed using the recorded HalfTransitionCount
43:06Implementing WasPressed using the recorded HalfTransitionCount
45:06Testing. It does not work
45:06Testing. It does not work
45:06Testing. It does not work
45:21Cry about itα
45:21Cry about itα
45:21Cry about itα
46:58We're not clearing the mouse state!
46:58We're not clearing the mouse state!
46:58We're not clearing the mouse state!
48:45Clearing the half-transition count at the start of each frame
48:45Clearing the half-transition count at the start of each frame
48:45Clearing the half-transition count at the start of each frame
50:36See if we can write something that's not total garbageβ
50:36See if we can write something that's not total garbageβ
50:36See if we can write something that's not total garbageβ
52:17Testing. It works
52:17Testing. It works
52:17Testing. It works
53:07Q&A
🗩
53:07Q&A
🗩
53:07Q&A
🗩
53:31quartertron Put the Pig Hat on the Owl
🗪
53:31quartertron Put the Pig Hat on the Owl
🗪
53:31quartertron Put the Pig Hat on the Owl
🗪
53:45Sharlock93 You had four Owl of Shame moments
🗪
53:45Sharlock93 You had four Owl of Shame moments
🗪
53:45Sharlock93 You had four Owl of Shame moments
🗪
53:56insofaras Mouse code bugged for over 150 days, bring on the Owl
🗪
53:56insofaras Mouse code bugged for over 150 days, bring on the Owl
🗪
53:56insofaras Mouse code bugged for over 150 days, bring on the Owl
🗪
54:29Connor_Rentz Will almond milk make me smarter?
🗪
54:29Connor_Rentz Will almond milk make me smarter?
🗪
54:29Connor_Rentz Will almond milk make me smarter?
🗪
54:43Sharlock93 And on behalf of all the people here, we love you and you are awesome
🗪
54:43Sharlock93 And on behalf of all the people here, we love you and you are awesome
🗪
54:43Sharlock93 And on behalf of all the people here, we love you and you are awesome
🗪
55:26epigone00 I'm new here. Why constrain yourself to 1-hour segments? Isn't ramp-up time every day hard?
🗪
55:26epigone00 I'm new here. Why constrain yourself to 1-hour segments? Isn't ramp-up time every day hard?
🗪
55:26epigone00 I'm new here. Why constrain yourself to 1-hour segments? Isn't ramp-up time every day hard?
🗪
56:29tombsar How would you go about optimizing the debug rendering? It looks as though there is a lot of unnecessary work with EntityBasis calculation, etc.
🗪
56:29tombsar How would you go about optimizing the debug rendering? It looks as though there is a lot of unnecessary work with EntityBasis calculation, etc.
🗪
56:29tombsar How would you go about optimizing the debug rendering? It looks as though there is a lot of unnecessary work with EntityBasis calculation, etc.
🗪
57:42build.bat: -O2 some of that up
57:42build.bat: -O2 some of that up
57:42build.bat: -O2 some of that up
58:57JamesWidman You've trained everyone to listen for whether you pronounce the letter "t", or its allophone, the glottal stop, when you say the word "buttons"
🗪
58:57JamesWidman You've trained everyone to listen for whether you pronounce the letter "t", or its allophone, the glottal stop, when you say the word "buttons"
🗪
58:57JamesWidman You've trained everyone to listen for whether you pronounce the letter "t", or its allophone, the glottal stop, when you say the word "buttons"
🗪
59:23ChronalDragon Shoot, wasn't paying attention and I used the mouse code in another program. What was broken about it?
🗪
59:23ChronalDragon Shoot, wasn't paying attention and I used the mouse code in another program. What was broken about it?
🗪
59:23ChronalDragon Shoot, wasn't paying attention and I used the mouse code in another program. What was broken about it?
🗪
59:42JamesWidman At some point, would it make sense to pause and re-display the frame that is currently moused-over?
🗪
59:42JamesWidman At some point, would it make sense to pause and re-display the frame that is currently moused-over?
🗪
59:42JamesWidman At some point, would it make sense to pause and re-display the frame that is currently moused-over?
🗪
1:00:28Sharlock93 By the way, I'm from iraq, and it's 4am right now. Can you some time do early stream? I don't mind not sleeping until 4am, but in 2-3 weeks university starts and it would be awesome if you bring back early hours
🗪
1:00:28Sharlock93 By the way, I'm from iraq, and it's 4am right now. Can you some time do early stream? I don't mind not sleeping until 4am, but in 2-3 weeks university starts and it would be awesome if you bring back early hours
🗪
1:00:28Sharlock93 By the way, I'm from iraq, and it's 4am right now. Can you some time do early stream? I don't mind not sleeping until 4am, but in 2-3 weeks university starts and it would be awesome if you bring back early hours
🗪
1:00:59quartertron I think you only render "top level" debug timed functions etc. Are you planning on "drilling down?"
🗪
1:00:59quartertron I think you only render "top level" debug timed functions etc. Are you planning on "drilling down?"
🗪
1:00:59quartertron I think you only render "top level" debug timed functions etc. Are you planning on "drilling down?"
🗪
1:01:12fierydrake What is the other long bar? Some kind of frame wait? Should it be that long?
🗪
1:01:12fierydrake What is the other long bar? Some kind of frame wait? Should it be that long?
🗪
1:01:12fierydrake What is the other long bar? Some kind of frame wait? Should it be that long?
🗪
1:01:22d1srupt0r Are you an indie developer and / or is this your professional job? If not, what is your day job?
🗪
1:01:22d1srupt0r Are you an indie developer and / or is this your professional job? If not, what is your day job?
🗪
1:01:22d1srupt0r Are you an indie developer and / or is this your professional job? If not, what is your day job?
🗪
1:01:47tombsar I forget if the white line is 33ms or 16ms. Could you add a green line for 60Hz, orange for 30, and red for 10, or something?
🗪
1:01:47tombsar I forget if the white line is 33ms or 16ms. Could you add a green line for 60Hz, orange for 30, and red for 10, or something?
🗪
1:01:47tombsar I forget if the white line is 33ms or 16ms. Could you add a green line for 60Hz, orange for 30, and red for 10, or something?
🗪
1:02:09Eggsodragon I noticed in task manager that all of my Steam games are 32-bit processes. Is there a really good reason to compile games in 32-bits rather than 64?
🗪
1:02:09Eggsodragon I noticed in task manager that all of my Steam games are 32-bit processes. Is there a really good reason to compile games in 32-bits rather than 64?
🗪
1:02:09Eggsodragon I noticed in task manager that all of my Steam games are 32-bit processes. Is there a really good reason to compile games in 32-bits rather than 64?
🗪
1:03:20SoysauceTheKid The debug display is for processing time. Are you going to do any visuals for memory usage?
🗪
1:03:20SoysauceTheKid The debug display is for processing time. Are you going to do any visuals for memory usage?
🗪
1:03:20SoysauceTheKid The debug display is for processing time. Are you going to do any visuals for memory usage?
🗪
1:04:04Sharlock93 Would you be willing to do a 1-2 hour prestream?
🗪
1:04:04Sharlock93 Would you be willing to do a 1-2 hour prestream?
🗪
1:04:04Sharlock93 Would you be willing to do a 1-2 hour prestream?
🗪
1:04:20Wind it downγ
🗩
1:04:20Wind it downγ
🗩
1:04:20Wind it downγ
🗩