[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Hover to the Debug Graphs" vod_platform=youtube id=1llPa4I7gYk annotator=Miblo annotator=debiatan]
[0:15][Recap and plan for today]
[1:22][The game runs slow because every frame we're collating all events for the past 64 debug frames]
[2:10][Decreasing the amount of debug frames we process from 64 to 8]
[4:01][We want to extract more information from the debug display]
[6:20][We want the debug display to show us information associated to any bar when we hover over it]
[6:45][Passing the game input to the debug system so that it can access the mouse position]
[7:47][Checking if the mouse position falls inside any given rectangle]
[10:05][The information to display will come from a debug_record associated to the debug_frame_region]
[11:45][Adding a debug record and a cycle count to debug_frame_region]
[13:23][Building a rectangle to test if the mouse pointer falls inside]
[16:30][Implementing a version of PushRect that takes a rectangle as its argument]
[17:44][Testing. It runs but hovering doesn't work yet]
[18:26][The mouse position is relative to Window' coordinate space, not to our rendering space]
[20:35][Transforming mouse coordinates to the game space]
[22:30][Hover works now]
[23:00][Changing the position of the debug text on the screen]
[25:01][Our ms/frame display shows 0 ms because we're computing it using the information from an unclosed frame]
[27:07][We 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:30][Transforming 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]
[38:41][Pausing collation]
[40:33][Defining enumerands for mouse buttons]
[43:06][Implementing WasPressed using the recorded HalfTransitionCount]
[45:06][Testing. It does not work]
[45:21][Cry about it][quote 242]
[46:58][We're not clearing the mouse state!]
[48:45][Clearing the half-transition count at the start of each frame]
[50:36][See if we can write something that's not total garbage][quote 243]
[53:45][@Sharlock93][You had four Owl of Shame moments]
[53:56][@insofaras][Mouse code bugged for over 150 days, bring on the Owl]
[54:29][@Connor_Rentz][Will almond milk make me smarter?]
[54:43][@Sharlock93][And on behalf of all the people here, we love you and you are awesome]
[55:26][@epigone00][I'm new here. Why constrain yourself to 1-hour segments? Isn't ramp-up time every day hard?]
[56:29][@tombsar][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:42][build.bat: -O2 some of that up]
[58:57][@JamesWidman][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:23][@ChronalDragon][Shoot, wasn't paying attention and I used the mouse code in another program. What was broken about it?]
[59:42][@JamesWidman][At some point, would it make sense to pause and re-display the frame that is currently moused-over?]
[1:00:28][@Sharlock93][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:59][@quartertron][I think you only render "top level" debug timed functions etc. Are you planning on "drilling down?"]
[1:01:12][@fierydrake][What is the other long bar? Some kind of frame wait? Should it be that long?]
[1:01:22][@d1srupt0r][Are you an indie developer and / or is this your professional job? If not, what is your day job?]
[1:01:47][@tombsar][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:09][@Eggsodragon][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:20][@SoysauceTheKid][The debug display is for processing time. Are you going to do any visuals for memory usage?]
[1:04:04][@Sharlock93][Would you be willing to do a 1-2 hour prestream?]