is presently its sole maintainer,
You can support him:
handmade_debug.cpp: Initialise the ProfileGraph dimensions to something relatively large
Run the game, see the profile at a more useable default size and set the stage for the day
handmade_debug.cpp: Introduce DrawFrameBars which draws stacked bars for multiple frames
handmade_debug.cpp: Call DrawFrameBars rather than DrawProfileIn
handmade_debug.cpp: Cap the FrameIndex
Run the game and see our stack
handmade_debug.cpp: Increase the FrameCount to 10
handmade_debug.cpp: Just set the RootNode to be the OldestEvent
handmade_debug.cpp: Increase the FrameCount to 128
Run the game and see a more granular view of what's happening over time
handmade_debug.h: Remove debug_frame_region and MAX_REGIONS_PER_FRAME
"None of that's a thing" (!quote 454)
handmade_debug.h: Introduce debug_element_frame to allow us to track and time events
handmade_debug.h: Introduce FrameOrdinal and MostRecentFrameOrdinal and make functions in handmade_debug.cpp use it
handmade_debug.cpp: Work on FreeFrame and FreeOldestFrame, and rework NewFrame as InitFrame
handmade_debug.cpp: Introduce IncrementFrameOrdinal and GetCollationFrame
handmade_debug.cpp: Work through compile errors
Run the game and see that it is (almost) working
Debugger: Break on FreeFrame and inspect the ordinals
handmade_debug.cpp: Conditionally do a FREELIST_DEALLOCATE in FreeFrame
handmade_debug.cpp: Scrutinise FreeFrame and do a ZeroStruct on *ElementFrame
Run the game and reiterate the fact that we're leaking memory
EnemyMouse Q: Do you need to wrap that + FrameOrdinal in the FreeFrame function?
handmade_debug.cpp: Assert that FrameOrdinal is less than DEBUG_FRAME_COUNT
handmade_debug.cpp: Keep track of the FreedEventCount
Run the game, crash and find that we're freeing one more event than we're storing
handmade_debug.cpp: Remove a FREELIST_DEALLOCATE
Rebuild and run and find that the bug's gone
zilarrezko Q: I'm a bit behind on Handmade Hero, but do you typically bypass (for something like off-stream coding) all the simplified things like rendering a bitmap like how you were doing (DrawBitmap, like on episode 39), and go straight to the renderer? But as well as other things like structured assets and the like?
DudeInBasement1 Q: Thoughts on using a static array instead of the lists?
Miblo Q: insobot had this to say today: "Inheritance and encapsulation two best inventions of mankind". Discuss
EnemyMouse Q: Do you prefer to use modulo or masking for circular indexing? Do compilers replace modulos with bitwise-and if the operand is power of 2 -1?
erdomina Q: Are we still doing the marathon stream to account for the Q&A Monday madness?
SoysauceTheKid Q: The profiler code you had running several weeks ago, what happened to it? Some of the things you had implemented like the multiple lanes seemed to have disappeared
handmade_debug.cpp: Reenable the profile lanes
Run the game, see the multiple lanes, enable the software renderer and crash
handmade_debug.cpp: Disable the recursion for now and run the game
zilarrezko Q: What if you aren't really learning from Handmade Hero? Where I've gone through episodes 1-28 about four times and I thought I knew how to do so. I tried to make the simplified win32 layer to get to the independent layer, and I found that I couldn't do it. The documentation was rough and I forgot what things did what. What would you say to people who find that they aren't learning?
handmade_debug.cpp: Switch from DrawProfileIn to DrawFrameBars and view the profiler