[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]