0:10Set the stage for clearing out pending GitHub bugs1
                    
                        0:10Set the stage for clearing out pending GitHub bugs1
                     
                    
                        0:10Set the stage for clearing out pending GitHub bugs1
                     
                 
                
                    0:58ctray.cpp: Fix "enterring" typo
                    
                        0:58ctray.cpp: Fix "enterring" typo
                     
                    
                        0:58ctray.cpp: Fix "enterring" typo
                     
                 
                
                    2:17readme.txt: Update links to point to the new locations
                    
                        2:17readme.txt: Update links to point to the new locations
                     
                    
                        2:17readme.txt: Update links to point to the new locations
                     
                 
                
                    5:05"You never upgrade anything during the development of the game"α
                    
                        5:05"You never upgrade anything during the development of the game"α
                     
                    
                        5:05"You never upgrade anything during the development of the game"α
                     
                 
                
                    7:10Determine to enable the game to compile without warnings or errors in VS 2015
                    
                        7:10Determine to enable the game to compile without warnings or errors in VS 2015
                     
                    
                        7:10Determine to enable the game to compile without warnings or errors in VS 2015
                     
                 
                
                    7:45simple_preprocessor.cpp: Make ParseMember() cast everything to int
                    
                        7:45simple_preprocessor.cpp: Make ParseMember() cast everything to int
                     
                    
                        7:45simple_preprocessor.cpp: Make ParseMember() cast everything to int
                     
                 
                
                    10:00On the two different versions of the CRT's maths routines
                    
                        10:00On the two different versions of the CRT's maths routines
                     
                    
                        10:00On the two different versions of the CRT's maths routines
                     
                 
                
                    11:42handmade_intrinsics.h: Make AbsoluteValue() call fabsf()
                    
                        11:42handmade_intrinsics.h: Make AbsoluteValue() call fabsf()
                     
                    
                        11:42handmade_intrinsics.h: Make AbsoluteValue() call fabsf()
                     
                 
                
                    12:16handmade_platform.h: Determine to enable AlignPow2() to compile without warning
                    
                        12:16handmade_platform.h: Determine to enable AlignPow2() to compile without warning
                     
                    
                        12:16handmade_platform.h: Determine to enable AlignPow2() to compile without warning
                     
                 
                
                    16:54handmade_platform.h: Make AlignPow2() add (Value-Value) to force integral promotion to the size of Value
                    
                        16:54handmade_platform.h: Make AlignPow2() add (Value-Value) to force integral promotion to the size of Value
                     
                    
                        16:54handmade_platform.h: Make AlignPow2() add (Value-Value) to force integral promotion to the size of Value
                     
                 
                
                    18:37handmade_entity.cpp: Make DEBUGPickEntity() cast Entity->ID.Value to a umm before converting to pointer
                    
                        18:37handmade_entity.cpp: Make DEBUGPickEntity() cast Entity->ID.Value to a umm before converting to pointer
                     
                    
                        18:37handmade_entity.cpp: Make DEBUGPickEntity() cast Entity->ID.Value to a umm before converting to pointer
                     
                 
                
                    19:29win32_handmade.cpp: Make WinMain() cast the GlobalBackbuffer values to u32
                    
                        19:29win32_handmade.cpp: Make WinMain() cast the GlobalBackbuffer values to u32
                     
                    
                        19:29win32_handmade.cpp: Make WinMain() cast the GlobalBackbuffer values to u32
                     
                 
                
                    19:53Fix many "hides function parameter" and "hides previous local declaration" warnings
                    
                        19:53Fix many "hides function parameter" and "hides previous local declaration" warnings
                     
                    
                        19:53Fix many "hides function parameter" and "hides previous local declaration" warnings
                     
                 
                
                    33:50Close that issue and request help for the CLANG compatibility issue
                    
                        33:50Close that issue and request help for the CLANG compatibility issue
                     
                    
                        33:50Close that issue and request help for the CLANG compatibility issue
                     
                 
                
                    37:12Determine to reduce the PeekMessage latency
                    
                        37:12Determine to reduce the PeekMessage latency
                     
                    
                        37:12Determine to reduce the PeekMessage latency
                     
                 
                
                    38:11On message queues and how Windows implements theirs
                    
                        38:11On message queues and how Windows implements theirs
                     
                    
                        38:11On message queues and how Windows implements theirs
                     
                 
                
                
                    47:36win32_handmade.cpp: Enable Win32ProcessPendingMessages() to make PeekMessage() circumvent WM_PAINT and WM_MOUSEMOVE
                    
                        47:36win32_handmade.cpp: Enable Win32ProcessPendingMessages() to make PeekMessage() circumvent WM_PAINT and WM_MOUSEMOVE
                     
                    
                        47:36win32_handmade.cpp: Enable Win32ProcessPendingMessages() to make PeekMessage() circumvent WM_PAINT and WM_MOUSEMOVE
                     
                 
                
                    51:43Run the game to see that it all still works and close that issue
                    
                        51:43Run the game to see that it all still works and close that issue
                     
                    
                        51:43Run the game to see that it all still works and close that issue
                     
                 
                
                    53:54Determine to fix the PushClipRect and glScissor issue
                    
                        53:54Determine to fix the PushClipRect and glScissor issue
                     
                    
                        53:54Determine to fix the PushClipRect and glScissor issue
                     
                 
                
                    54:30win32_handmade.cpp: Pass a lower resolution to Win32ResizeDIBSection() and run the game to see that we're in bad shape
                    
                        54:30win32_handmade.cpp: Pass a lower resolution to Win32ResizeDIBSection() and run the game to see that we're in bad shape
                     
                    
                        54:30win32_handmade.cpp: Pass a lower resolution to Win32ResizeDIBSection() and run the game to see that we're in bad shape
                     
                 
                
                    56:25On food and feeding the worldβ
                    
                        56:25On food and feeding the worldβ
                     
                    
                        56:25On food and feeding the worldβ
                     
                 
                
                    59:48win32_handmade.cpp: Switch to the software renderer and run the game to determine that the problem is only in the hardware renderer
                    
                        59:48win32_handmade.cpp: Switch to the software renderer and run the game to determine that the problem is only in the hardware renderer
                     
                    
                        59:48win32_handmade.cpp: Switch to the software renderer and run the game to determine that the problem is only in the hardware renderer
                     
                 
                
                    1:01:08Compare the code for the software and hardware renderers
                    
                        1:01:08Compare the code for the software and hardware renderers
                     
                    
                        1:01:08Compare the code for the software and hardware renderers
                     
                 
                
                    1:06:32Run the game in windowed mode, and resize it to exhibit the bug
                    
                        1:06:32Run the game in windowed mode, and resize it to exhibit the bug
                     
                    
                        1:06:32Run the game in windowed mode, and resize it to exhibit the bug
                     
                 
                
                    1:09:03Consult the glScissor documentation2
                    
                        1:09:03Consult the glScissor documentation2
                     
                    
                        1:09:03Consult the glScissor documentation2
                     
                 
                
                    1:09:59Consult the glViewPort documentation3 and endeavour to understand the difference between the renderers
                    
                        1:09:59Consult the glViewPort documentation3 and endeavour to understand the difference between the renderers
                     
                    
                        1:09:59Consult the glViewPort documentation3 and endeavour to understand the difference between the renderers
                     
                 
                
                    1:21:23Run the game and eyeball how the cliprect is scaling
                    
                        1:21:23Run the game and eyeball how the cliprect is scaling
                     
                    
                        1:21:23Run the game and eyeball how the cliprect is scaling
                     
                 
                
                    1:25:04handmade_opengl.cpp: Determine to enable OpenGLRenderCommands() to perform the glScissor() in the correct space
                    
                        1:25:04handmade_opengl.cpp: Determine to enable OpenGLRenderCommands() to perform the glScissor() in the correct space
                     
                    
                        1:25:04handmade_opengl.cpp: Determine to enable OpenGLRenderCommands() to perform the glScissor() in the correct space
                     
                 
                
                    1:27:43Blackboard: glScissor coords
                    
                        1:27:43Blackboard: glScissor coords
                     
                    
                        1:27:43Blackboard: glScissor coords
                     
                 
                
                    1:29:03Blackboard: Normalized device coordinates
                    
                        1:29:03Blackboard: Normalized device coordinates
                     
                    
                        1:29:03Blackboard: Normalized device coordinates
                     
                 
                
                    1:31:02Blackboard: Calculating our correct glScissor coordinates
                    
                        1:31:02Blackboard: Calculating our correct glScissor coordinates
                     
                    
                        1:31:02Blackboard: Calculating our correct glScissor coordinates
                     
                 
                
                    1:33:30handmade_opengl.cpp: Enable OpenGLRenderCommands() to correctly scale the region passed to glScissor()
                    
                        1:33:30handmade_opengl.cpp: Enable OpenGLRenderCommands() to correctly scale the region passed to glScissor()
                     
                    
                        1:33:30handmade_opengl.cpp: Enable OpenGLRenderCommands() to correctly scale the region passed to glScissor()
                     
                 
                
                    1:39:52Run the game to see that the hardware renderer's cliprect is now correct, and close that issue
                    
                        1:39:52Run the game to see that the hardware renderer's cliprect is now correct, and close that issue
                     
                    
                        1:39:52Run the game to see that the hardware renderer's cliprect is now correct, and close that issue
                     
                 
                
                    1:42:06handmade_render.cpp: Enable DrawRectangle() to AND the StartClipMask and EndClipMask together for rectangles <= 3 pixels wide
                    
                        1:42:06handmade_render.cpp: Enable DrawRectangle() to AND the StartClipMask and EndClipMask together for rectangles <= 3 pixels wide
                     
                    
                        1:42:06handmade_render.cpp: Enable DrawRectangle() to AND the StartClipMask and EndClipMask together for rectangles <= 3 pixels wide
                     
                 
                
                    1:48:02handmade_entity.cpp: Toggle off rendering of Traversables, run the game and see the effects of the DrawRectangle() change
                    
                        1:48:02handmade_entity.cpp: Toggle off rendering of Traversables, run the game and see the effects of the DrawRectangle() change
                     
                    
                        1:48:02handmade_entity.cpp: Toggle off rendering of Traversables, run the game and see the effects of the DrawRectangle() change
                     
                 
                
                    1:52:35handmade_render.cpp: Change DrawRectangle() to test == 4
                    
                        1:52:35handmade_render.cpp: Change DrawRectangle() to test == 4
                     
                    
                        1:52:35handmade_render.cpp: Change DrawRectangle() to test == 4
                     
                 
                
                    1:54:17Recompile and run to see that the drawing of narrow rectangles is now correct
                    
                        1:54:17Recompile and run to see that the drawing of narrow rectangles is now correct
                     
                    
                        1:54:17Recompile and run to see that the drawing of narrow rectangles is now correct
                     
                 
                
                    1:55:10handmade_render.cpp: Consider removing the ClipMask from DrawRectangleQuickly(), before closing the issue with it still intact
                    
                        1:55:10handmade_render.cpp: Consider removing the ClipMask from DrawRectangleQuickly(), before closing the issue with it still intact
                     
                    
                        1:55:10handmade_render.cpp: Consider removing the ClipMask from DrawRectangleQuickly(), before closing the issue with it still intact
                     
                 
                
                    1:58:25Reflect on the day's work
                    
                        1:58:25Reflect on the day's work
                     
                    
                        1:58:25Reflect on the day's work
                     
                 
                
                
                    1:59:11@kknewkles It's rolled over 'round these parts already so Happy New 2017, everyone
🗪
 
                    
                        1:59:11@kknewkles It's rolled over 'round these parts already so Happy New 2017, everyone
🗪
 
                     
                    
                        1:59:11@kknewkles It's rolled over 'round these parts already so Happy New 2017, everyone
🗪
 
                     
                 
                
                    1:59:35@Jim0_o In the compression code there is an assert(LiteralCount == 0) it seems to fire on some files, should the literal buffer be flushed after the loop in case it didn't end on a run?
🗪
 
                    
                        1:59:35@Jim0_o In the compression code there is an assert(LiteralCount == 0) it seems to fire on some files, should the literal buffer be flushed after the loop in case it didn't end on a run?
🗪
 
                     
                    
                        1:59:35@Jim0_o In the compression code there is an assert(LiteralCount == 0) it seems to fire on some files, should the literal buffer be flushed after the loop in case it didn't end on a run?
🗪
 
                     
                 
                
                    2:00:55simple_compressor.cpp: Enable RLECompress() and LZCompress() to correctly flush the literal buffer
                    
                        2:00:55simple_compressor.cpp: Enable RLECompress() and LZCompress() to correctly flush the literal buffer
                     
                    
                        2:00:55simple_compressor.cpp: Enable RLECompress() and LZCompress() to correctly flush the literal buffer
                     
                 
                
                    2:03:06@thesizik Are you going to consider resizing the debug display for lower display resolutions, or would that not really be worthwhile since it's not part of the final game?
🗪
 
                    
                        2:03:06@thesizik Are you going to consider resizing the debug display for lower display resolutions, or would that not really be worthwhile since it's not part of the final game?
🗪
 
                     
                    
                        2:03:06@thesizik Are you going to consider resizing the debug display for lower display resolutions, or would that not really be worthwhile since it's not part of the final game?
🗪
 
                     
                 
                
                    2:07:50@phillip_green A wee bit off-topic, but have you ever considered setting up a green screen / chromakey for your stream?
🗪
 
                    
                        2:07:50@phillip_green A wee bit off-topic, but have you ever considered setting up a green screen / chromakey for your stream?
🗪
 
                     
                    
                        2:07:50@phillip_green A wee bit off-topic, but have you ever considered setting up a green screen / chromakey for your stream?
🗪
 
                     
                 
                
                    2:08:49@tukimitzoo What are your 2017 resolutions for Handmade Hero?
🗪
 
                    
                        2:08:49@tukimitzoo What are your 2017 resolutions for Handmade Hero?
🗪
 
                     
                    
                        2:08:49@tukimitzoo What are your 2017 resolutions for Handmade Hero?
🗪
 
                     
                 
                
                    2:09:22@mtsmox Shouldn't the cliprect only be rescaled at the same point that the offset is done? Only the main buffer should have it
🗪
 
                    
                        2:09:22@mtsmox Shouldn't the cliprect only be rescaled at the same point that the offset is done? Only the main buffer should have it
🗪
 
                     
                    
                        2:09:22@mtsmox Shouldn't the cliprect only be rescaled at the same point that the offset is done? Only the main buffer should have it
🗪
 
                     
                 
                
                    2:10:36@hayai No high production values? Stream looks good and there's a frame around the scare-cam and a nice little fade-in timer. That seems like more effort than a lot of what I see
🗪
 
                    
                        2:10:36@hayai No high production values? Stream looks good and there's a frame around the scare-cam and a nice little fade-in timer. That seems like more effort than a lot of what I see
🗪
 
                     
                    
                        2:10:36@hayai No high production values? Stream looks good and there's a frame around the scare-cam and a nice little fade-in timer. That seems like more effort than a lot of what I see
🗪
 
                     
                 
                
                    2:12:34@thezoq2 So that black box is a window, not just an overlay in OBS?
🗪
 
                    
                        2:12:34@thezoq2 So that black box is a window, not just an overlay in OBS?
🗪
 
                     
                    
                        2:12:34@thezoq2 So that black box is a window, not just an overlay in OBS?
🗪
 
                     
                 
                
                    2:14:04@jessermeyer Please consider demonstrating NVidia's cmdlist extension as a way of thinking about modern graphics dev
🗪
 
                    
                        2:14:04@jessermeyer Please consider demonstrating NVidia's cmdlist extension as a way of thinking about modern graphics dev
🗪
 
                     
                    
                        2:14:04@jessermeyer Please consider demonstrating NVidia's cmdlist extension as a way of thinking about modern graphics dev
🗪
 
                     
                 
                
                    2:15:10Close it down with a glimpse into 2017
🗩
 
                    
                        2:15:10Close it down with a glimpse into 2017
🗩
 
                     
                    
                        2:15:10Close it down with a glimpse into 2017
🗩