[video output=day264 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Buttons to the Profiler" vod_platform=youtube id=y7-phAHpweU annotator=Miblo]
[0:39][Recap and set the stage for the day]
[2:23][handmade_debug.cpp: Switch to using the full memory arena]
[4:09][handmade_debug.cpp: Rework DEBUGDrawElement with the ability to switch an Element's type]
[17:57][Run the game and see that nothing has changed]
[18:19][handmade_debug.cpp: Introduce NullEvent to ensure that Events remain printed when their data is null]
[20:26][Run the game and see our more pleasant profiler]
[21:16][handmade_debug.h: Add DebugInteraction_SetElementType]
[22:06][handmade_debug.cpp: Sketch out the call sites for BeginButtonRow, BooleanButton, EndButtonRow and ActionButton]
[27:56][handmade_debug.cpp: Introduce ZoomRootInteraction and loft out this functionality into SetElementTypeInteraction]
[31:01][handmade_debug.cpp: Implement the Button functions]
[36:40][handmade_debug.cpp: Introduce BeginRow and EndRow to automatically wrap lines]
[40:27][handmade_debug.cpp: Set the Root to 0]
[40:52][Run the game and see that we can't interact with Threads or Frames]
[41:10][handmade_debug.cpp: Implement the SetElementType case]
[45:35][Run the game and successfully switch between Threads and Frames]
[45:47][handmade_debug.cpp: Introduce AdvanceElement to handle spacing and line breaks]
[52:19][Run the game and see that we're a little closer to correct]
[53:09][handmade_debug.cpp: Make AdvanceElement aware of line heights]
[55:35][Run the game and see our correctly carriage-returned information]
[56:36][handmade_debug.cpp: Indent in AdvanceElement rather than EndElement]
[58:24][handmade_debug.cpp: Make BasicTextElement more responsive]
[1:00:14][Run the game and see the highlighting on hover]
[1:02:23][Q&A][:speech]
[1:03:23][@cubercaleb][(Not a serious question) Why not just import npm and use left pad to indent the strings?]
[1:03:52][@thesizik][I think you were selecting the ground as an entity?]
[1:04:06][@pseudonym73][\[see Resources, John W. Peterson\]]
[1:05:29][@sssmcgrath][You know how if you add 1 letter to HAL you get IBM? Did you know if you add one letter to VMS you get WNT?]
[1:05:55][@jessem3y3r][So this interface system is a very simple immediate mode design?]
[1:06:48][@pmad2][Why there are some blue lines outside the profile window sometimes?]
[1:08:57][@dudeinbasement1][VS2015, you can use clang as a compiler]
[1:09:57][@cubercaleb][Are you using clang-cl?]
[1:10:43][@jessem3y3r][You were mentioning before about objects arising as a natural consequence of properly engineered code as the system requires. But do you do not mean a C++ object? So what do you mean as an object?]
[1:11:14][handmade_render_group.h: Demonstrate how "objects" fall naturally out of the code]
[1:16:10][@cubercaleb][You have a typo in the comment for object_transform]
[1:17:14][Close it down][:speech]
[/video]
