[video output=day269 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Menu Drawing" vod_platform=youtube id=tITcs17P-lU annotator=Miblo]
[1:06][Recap and set the stage for the day]
[3:22][handmade_debug.cpp: Just pass the Group to the DrawTreeLink call in DrawTrees]
[4:25][View the Root menu in the profiler]
[5:31][handmade_debug.cpp: Make the FrameSlider resizable]
[7:36][Try resizing the FrameSlider]
[9:15][handmade_debug.cpp: Make the Thread view in DrawProfileBars look a little nicer]
[10:25][View the Thread view and note that the hover text gets clipped]
[11:20][handmade_debug.cpp: Make DrawProfileBars draw multiple levels of Events]
[14:35][View the multiple levels in the profiler]
[15:39][handmade_debug.cpp: Correctly Z-sort the Events]
[16:56][View the correctly Z-sorted levels]
[18:03][handmade_debug.cpp: Make DrawFrameBars also draw multiple levels]
[18:38][View our multiple levels of Frames]
[19:57][handmade_debug.cpp: Make DrawFrameBars brighten the currently viewed frame]
[23:26][View the Frames view and consider improving the tooltips]
[25:54][handmade_debug_ui.cpp: Introduce AddTooltip]
[32:14][handmade_debug.cpp: Introduce MouseTextLayout]
[34:34][handmade_debug.cpp: Make the DrawFrameSlider call AddTooltip]
[34:58][View the profiler and correctly see no tooltips]
[35:05][handmade_debug_ui.cpp: Make AddTooltip functional]
[40:48][View the tooltip and see that it still clips]
[41:45][handmade_debug.cpp: Accidentally make TextOutAt immune to the graphs' ClipRects]
[43:40][View the correctly not-clipping Tooltip, but find that the Threads view is not being clipped correctly]
[45:29][handmade_debug_ui.cpp: Instead make AddTooltip immune to the graphs' ClipRects]
[46:24][View the profile and find that our clipping is restored to proper working order]
[47:07][handmade_debug.cpp: Make the Root print out arbitrary stuff]
[58:07][View our new info in the menu]
[58:24][Q&A][:speech]
[59:07][@oammar][What is the purpose of the internal syntax?]
[1:00:04][@cubercaleb][I loath how the compiler tells you there is a param mismatch instead of telling you a list of actual params vs the ones you typed. It could at least try to be helpful! Is this an unsolved problem in computer science?]
[1:00:56][@jessem3y3r][What were the abbreviations in the new menu header?]
[1:02:57][@chronaldragon][People have asked before what your thoughts are on functional languages in general, but I'm curious what your thoughts are specifically on the constructs they emphasize that other languages don't, for example closures and partial application (i.e. foo taking x, y, z being called with foo x y returning a closure that takes z)]
[1:05:00][@evraire][Does the debug bitmap viewer work now when you select an entity?]
[1:05:33][handmade_debug.cpp: Draw the bitmap on top in DEBUGDrawElement]
[1:06:49][handmade_world_mode.cpp: Provide the ability to draw debug bitmaps using their BID]
[1:23:56][Run the game and see that we can write to the bitmap_id reliably]
[1:24:35][handmade_debug.cpp: Ensure the bitmap gets drawn on top]
[1:26:06][@dudeinbasement1][Are we going to make a bitmap of the memory that is used / unused and when we select a unit, show where in the memory arena it is?]
[1:26:44][handmade_debug_interface.h: Add DebugType_ArenaOccupancy]
[1:29:50][handmade_debug.cpp: Introduce DrawArenaOccupancy]
[1:36:50][handmade.cpp: Add a Memory DEBUG_DATA_BLOCK for the three Arenas]
[1:44:30][handmade_debug.cpp: Provide the ability to toggle the arena occupancy graphs]
[1:45:17][Run the game and view our new graphs]
[1:45:59][handmade_debug.cpp: Label these occupancy graphs]
[1:48:08]["It's all white, like Donald Trump's America"][quote 474]
[1:48:17][Run the game and view our labeled occupancy graphs]
[1:50:20][Close down for now][:speech]
[1:50:45][Announce that the Handmade Hero forums will be going down this weekend while Handmade Network launches[ref
    site="Handmade Network"
    url="https://handmade.network/"]][:research]
[/video]
