52 lines
4.3 KiB
Plaintext
52 lines
4.3 KiB
Plaintext
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Collating Permanent Debug Values" vod_platform=youtube id=4aeT9T-i3Qs annotator=Miblo]
|
|
[1:25][Recap and set the stage for the day]
|
|
[2:05][handmade_debug_interface.h: Turn on DEBUG_IF and resume implementing it]
|
|
[4:13][handmade_debug.cpp: Introduce DEBUGInitializeValue]
|
|
[4:54][Consider how to hook this into the system]
|
|
[9:13][handmade_debug.cpp: Make varieties of DEBUGInitializeValue for the various types]
|
|
[12:47][handmade_debug_interface.cpp: Try using the sequence operator to set DebugValue##Path]
|
|
[17:28][On using the sequence operator to initialise a static]
|
|
[18:31][handmade_debug_interface.cpp: Use the sequence operator to set DebugValue##Variable]
|
|
[19:51][handmade_debug.cpp: Write DEBUGInitializeValue][quote 289]
|
|
[21:47][handmade_debug.cpp: Consider adding CollateAddVariableToGroup, AcquireMutex and ReleaseMutex to DEBUGInitializeValue to enable us to manipulate these types indirectly]
|
|
[25:27]["A better way"][quote 290]
|
|
[25:38][handmade_debug_interface.h: Write a new, thread-safe DEBUGInitializeValue]
|
|
[30:50][handmade_debug.cpp: Implement the ability to output all the variables in a list]
|
|
[31:42][handmade_debug.cpp: Introduce GetGroupForName][quote 291]
|
|
[32:07][handmade_debug.cpp: "Double up on the fanciness"][quote 292]
|
|
[33:33][Blackboard: How handmade_config.h enables us to preload values on execution]
|
|
[35:15][handmade_debug.cpp: Undo and introduce GetGroupForHierarchicalName]
|
|
[36:09][handmade_debug.cpp: Add *ValuesGroup to debug_state]
|
|
[37:52][handmade_debug.cpp: Make CollateAddVariableToGroup test if Permanent]
|
|
[38:46][handmade_debug.cpp: Write GetGroupForHierarchicalName]
|
|
[41:29][handmade_debug.cpp: Initialise DebugState->ValuesGroup]
|
|
[42:07][Run the game and see that it picks up all the debug variables]
|
|
[42:22][handmade_debug.cpp: Set *HackyGroup differently in DEBUGDrawMainMenu]
|
|
[42:48][Run the game and see that we're sort of working]
|
|
[43:33][handmade_debug.cpp and handmade_debug_interface.h: Investigate why we're adding the same variable multiple times]
|
|
[45:31][Debugger: Break into DEBUGInitializeValue and inspect Event]
|
|
[48:02][handmade_debug.cpp: Test if Event->Type == DebugType_MarkDebugValue at the start of the routine]
|
|
[49:52][Run the game and see all of the variables]
|
|
[51:07][win32_handmade.cpp: Reduce the number of threads used]
|
|
[52:10][Run the game and see that we are still outputting too many copies of the variables]
|
|
[52:22][win32_handmade.cpp: Revert the number of threads used]
|
|
[52:55][Debugger: Break into DEBUG_IF and Go to Disassembly]
|
|
[55:21][handmade_debug.cpp: Find that RestartCollation keeps rereading the events and adding them]
|
|
[58:57][Q&A][:speech]
|
|
[59:23][@desuused][Variable initiation hack in DEBUG_IF macro makes my internal code quality kitten sad. Would it be possible to move that initiation to struct ""method""?]
|
|
[59:55][@btnGames][Persisting the DEBUGValue between live code loading is great, I didn't understand what you were doing but then I got it with the demo, really cool. I had conflated the value of a variable with the value of debug of the variable. Small addition for a huge benefit]
|
|
[1:02:20][@btnGames][Are you sad that you didn't fix Collation? If no more questions come in it would be neat to see it now, so you're not sad]
|
|
[1:02:49][@Mr4thDimention][Will you have time tomorrow to look at 4coder? I am trying to decide whether to prioritize getting the new demo out tomorrow morning]
|
|
[1:04:33][@Mr4thDimention][Gotcha, I do have parameterized commands that I'd love to hear a response on]
|
|
[1:05:10][@thenightysfly][Why are you awesome? Which dojo did you train to become a code warrior?]
|
|
[1:05:42][@Manicthenobody][desuused elaborated with a @Cmuratori prefix]
|
|
[1:06:19][@Manicthenobody][I quote "instead of writing debug_event Name = initiator((AnotherVar = something, something)); make a struct constructor debug_event (&AnotherVar, something) that initiates the value"]
|
|
[1:07:55][@desuused][So that you don't do assignment in the function call in the macro, which makes me really saaaad]
|
|
[1:10:25][@elxenoaizd][Are you playing any games? If so, what?]
|
|
[1:11:06][@MartinCohen][So elvin = elxenoaizd?]
|
|
[1:11:38][@Manicthenobody][How did you keep up that awesome beat just now?]
|
|
[1:11:51][@thenightysfly][What type of games do you prefer?]
|
|
[1:12:39][@elxenoaizd][Not elven but elzen]
|
|
[1:13:08][Wind it down][:speech]
|
|
[/video]
|