[video output=day326 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Vararg Functions" vod_platform=youtube id=WoakE93Lj_w annotator=Miblo]
[0:16][Recap and set the stage for the day]
[0:54][win32_handmade.cpp: Consult the code and note what the bug is][quote 520]
[1:47][Run the game and demo the bug]
[2:18][win32_handmade.cpp: Make WinMain() reset the Last element in the ticket taking system]
[3:19][handmade_opengl.cpp: Make OpenGLManageTextures() return nothing]
[4:07][Run the game, see that the texture downloads are all synchronous and consult the profiler]
[5:58][build.bat: Switch to -O2, run the game and again consult the profiler]
[8:26][Consider doing some work on the pixel buffer objects to reduce the transfer time]
[11:15]["And the bug is gone"][quote 521]
[13:03][todo.txt: Update the TODO list, consult the issue and determine to fix the "CLANG compatibility" issue[ref
    site="GitHub"
    page="HandmadeHero/cpp Issues"
    url="https://github.com/HandmadeHero/cpp/issues"]]
[16:07][win32_handmade.cpp: Remove HandleDebugCycleCounters(), Win32DebugDrawVertical() and other instances of _snprintf_s()]
[17:16][handmade_debug.cpp: See what features of _snprintf_s() we are currently using with a view to implementing our own printf()]
[19:55][handmade_debug.cpp: Try to determine what DebugParseName() should do if PipeCount == 1]
[22:04][handmade_shared.h: Introduce S32FromZ()]
[23:14][A few words on printing floating point numbers]
[24:19][handmade_shared.h: Provisionally introduce FormatString() and FormatStringList()]
[26:09][Debugger: Consult the definitions of _crt_va_start(), _crt_va_arg() and _crt_va_end()]
[27:44][Blackboard: Variable Arg Lists]
[32:42][Blackboard: va_start and va_end]
[34:25][handmade_shared.h: Consult the code for variable arguments and _INTSIZEOF]
[37:19][handmade_shared.h: Implement FormatString() and FormatStringList()]
[42:46][handmade_shared.h: Introduce OutChar()]
[45:39][handmade_debug.cpp: Replace all instances of _snprintf_s() with FormatString()]
[51:26][handmade_shared.h: Make FormatStringList() return the length of the list]
[52:39][build.bat: Switch to -Od, run the game, crash in OutChar() and investigate why]
[56:35][handmade_shared.h: Correct the typo in FormatStringList()]
[56:43][Run the game and see that we're printing things out, just without any formatting]
[57:24][Q&A][:speech]
[58:33][@Pseudonym][Is this it?[ref
    site="Marc Andrysco, Ranjit Jhala, Sorin Lerner"
    page="Printing Floating-Point Numbers: A Faster, Always Correct Method"
    url="https://cseweb.ucsd.edu/~lerner/papers/fp-printing-popl16.pdf"]]
[59:23][@Kknewkles][Short recap of what we've done today? I have a hard time tracking everything, especially at 6am]
[59:44][@thesizik]["Blame" in Github lets you see file change history]
[1:00:03][@popcorn][What does -1 in Dest.At\[-1\] do?]
[1:01:14][@the_troll_toll][I want to start getting into this series - is there a way to easily compile / run this code on Mac OSX?]
[1:03:58][Wrap it up][:speech]
[1:04:59][@nxsy][How long is the break?]
[/video]
