0:13Gift Received in the Mail: Owl of Shame Baby
0:13Gift Received in the Mail: Owl of Shame Baby
0:13Gift Received in the Mail: Owl of Shame Baby
2:06Recap and set the stage for the day
2:06Recap and set the stage for the day
2:06Recap and set the stage for the day
5:14Describe a threading bug in tasks which access the game's mode state and which persist
5:14Describe a threading bug in tasks which access the game's mode state and which persist
5:14Describe a threading bug in tasks which access the game's mode state and which persist
7:53Set out our choices for fixing this bug
7:53Set out our choices for fixing this bug
7:53Set out our choices for fixing this bug
11:23handmade.h: Add b32 DependsOnGameMode to task_with_memory
11:23handmade.h: Add b32 DependsOnGameMode to task_with_memory
11:23handmade.h: Add b32 DependsOnGameMode to task_with_memory
13:30handmade.cpp: Add Platform.CompleteAllWork and NeedToWait to SetGameMode
13:30handmade.cpp: Add Platform.CompleteAllWork and NeedToWait to SetGameMode
13:30handmade.cpp: Add Platform.CompleteAllWork and NeedToWait to SetGameMode
20:10Run the game and see that it does work right
20:10Run the game and see that it does work right
20:10Run the game and see that it does work right
20:33handmade_world_mode.cpp: Call PlayTitleScreen upon exiting from the game
20:33handmade_world_mode.cpp: Call PlayTitleScreen upon exiting from the game
20:33handmade_world_mode.cpp: Call PlayTitleScreen upon exiting from the game
21:03Debugger: Note that we may now be clearing a large block of memory to zero, run the game and use Debug->Break All to confirm that
21:03Debugger: Note that we may now be clearing a large block of memory to zero, run the game and use Debug->Break All to confirm that
21:03Debugger: Note that we may now be clearing a large block of memory to zero, run the game and use Debug->Break All to confirm that
23:06handmade.h: Introduce struct arena_push_params and inline arena_push_params in order to specify to the Push routines whether or not to clear to zero
23:06handmade.h: Introduce struct arena_push_params and inline arena_push_params in order to specify to the Push routines whether or not to clear to zero
23:06handmade.h: Introduce struct arena_push_params and inline arena_push_params in order to specify to the Push routines whether or not to clear to zero
27:14handmade.h: Introduce AlignNoClear and Align
27:14handmade.h: Introduce AlignNoClear and Align
27:14handmade.h: Introduce AlignNoClear and Align
29:51Propagate our new features to all of the Push calls that require it
29:51Propagate our new features to all of the Push calls that require it
29:51Propagate our new features to all of the Push calls that require it
35:38handmade.h: Introduce NoClear and finish writing these new functions
35:38handmade.h: Introduce NoClear and finish writing these new functions
35:38handmade.h: Introduce NoClear and finish writing these new functions
37:28Run the game and see that it runs much more snappily
37:28Run the game and see that it runs much more snappily
37:28Run the game and see that it runs much more snappily
38:01Consider making the memory arenas flow all the way down to the operating system level, making the debug system use a separate set of growable memory, and fixing the renderer's sorting
38:01Consider making the memory arenas flow all the way down to the operating system level, making the debug system use a separate set of growable memory, and fixing the renderer's sorting
38:01Consider making the memory arenas flow all the way down to the operating system level, making the debug system use a separate set of growable memory, and fixing the renderer's sorting
41:00handmade_render_group.cpp: Take a look at how the renderer currently works
41:00handmade_render_group.cpp: Take a look at how the renderer currently works
41:00handmade_render_group.cpp: Take a look at how the renderer currently works
43:32handmade_render_group.cpp: Consider removing the notion of the scanlines
43:32handmade_render_group.cpp: Consider removing the notion of the scanlines
43:32handmade_render_group.cpp: Consider removing the notion of the scanlines
44:21build.bat: Turn on HANDMADE_INTERNAL
44:21build.bat: Turn on HANDMADE_INTERNAL
44:21build.bat: Turn on HANDMADE_INTERNAL
44:57Run the game and watch our last frame time
44:57Run the game and watch our last frame time
44:57Run the game and watch our last frame time
46:16handmade_render_group.cpp: Remove the Even / Odd notion
46:16handmade_render_group.cpp: Remove the Even / Odd notion
46:16handmade_render_group.cpp: Remove the Even / Odd notion
47:49Run the game and enjoy our beautiful rendering
47:49Run the game and enjoy our beautiful rendering
47:49Run the game and enjoy our beautiful rendering
48:12handmade_optimized.cpp: Increment the Y counter by 1 rather than 2
48:12handmade_optimized.cpp: Increment the Y counter by 1 rather than 2
48:12handmade_optimized.cpp: Increment the Y counter by 1 rather than 2
49:13Run the game and see that we may have got a little faster
49:13Run the game and see that we may have got a little faster
49:13Run the game and see that we may have got a little faster
49:52handmade_render_group.cpp: Consider providing some way of knowing what we're sorting
49:52handmade_render_group.cpp: Consider providing some way of knowing what we're sorting
49:52handmade_render_group.cpp: Consider providing some way of knowing what we're sorting
53:11handmade_render_group.h: Add PushBufferElementCount to render_group to let us know how many elements have been pushed
53:11handmade_render_group.h: Add PushBufferElementCount to render_group to let us know how many elements have been pushed
53:11handmade_render_group.h: Add PushBufferElementCount to render_group to let us know how many elements have been pushed
55:27handmade_render_group.cpp: Introduce struct tile_sort_entry and use it in RenderGroupToOutput
55:27handmade_render_group.cpp: Introduce struct tile_sort_entry and use it in RenderGroupToOutput
55:27handmade_render_group.cpp: Introduce struct tile_sort_entry and use it in RenderGroupToOutput
1:00:55Run the game and see that it still works fine
1:00:55Run the game and see that it still works fine
1:00:55Run the game and see that it still works fine
1:02:06serge_rgb Could you tell us roughly how the expanding arena would be implemented?
🗪
1:02:06serge_rgb Could you tell us roughly how the expanding arena would be implemented?
🗪
1:02:06serge_rgb Could you tell us roughly how the expanding arena would be implemented?
🗪
1:02:57insofaras Is the lower level memory arena thing you mentioned for PC basically just what malloc / VirtualAlloc does?
🗪
1:02:57insofaras Is the lower level memory arena thing you mentioned for PC basically just what malloc / VirtualAlloc does?
🗪
1:02:57insofaras Is the lower level memory arena thing you mentioned for PC basically just what malloc / VirtualAlloc does?
🗪
1:03:25SimonDenton I got the K & R book to learn C. Any other useful resources? I take online stuff with a grain of salt
🗪
1:03:25SimonDenton I got the K & R book to learn C. Any other useful resources? I take online stuff with a grain of salt
🗪
1:03:25SimonDenton I got the K & R book to learn C. Any other useful resources? I take online stuff with a grain of salt
🗪
1:03:36gasto5 Is interlaced the same as interleaved?
🗪
1:03:36gasto5 Is interlaced the same as interleaved?
🗪
1:03:36gasto5 Is interlaced the same as interleaved?
🗪
1:04:33Connor_Rentz What should I do with my life while Handmade Hero is on break?
🗪
1:04:33Connor_Rentz What should I do with my life while Handmade Hero is on break?
🗪
1:04:33Connor_Rentz What should I do with my life while Handmade Hero is on break?
🗪
1:05:06cubercaleb Which algorithm do you plan on using for sorting?
🗪
1:05:06cubercaleb Which algorithm do you plan on using for sorting?
🗪
1:05:06cubercaleb Which algorithm do you plan on using for sorting?
🗪
1:05:43elxenoaizd Why are we running in a windows application (using WinMain) instead of a console one (using regular main(int, char**)), and still RegisterClass, CreateWindow, etc?
🗪
1:05:43elxenoaizd Why are we running in a windows application (using WinMain) instead of a console one (using regular main(int, char**)), and still RegisterClass, CreateWindow, etc?
🗪
1:05:43elxenoaizd Why are we running in a windows application (using WinMain) instead of a console one (using regular main(int, char**)), and still RegisterClass, CreateWindow, etc?
🗪
1:06:35cubercaleb Why was the interleaving added in the first place?
🗪
1:06:35cubercaleb Why was the interleaving added in the first place?
🗪
1:06:35cubercaleb Why was the interleaving added in the first place?
🗪
1:07:01insofaras How many TODOs are there in the code now?
🗪
1:07:01insofaras How many TODOs are there in the code now?
🗪
1:07:01insofaras How many TODOs are there in the code now?
🗪
1:07:29pragmascrypt Is there much overhead to spawning the render threads every frame instead of keeping them around
🗪
1:07:29pragmascrypt Is there much overhead to spawning the render threads every frame instead of keeping them around
🗪
1:07:29pragmascrypt Is there much overhead to spawning the render threads every frame instead of keeping them around
🗪
1:07:45Culver_Fly Do you always start with software rendering when working on games?
🗪
1:07:45Culver_Fly Do you always start with software rendering when working on games?
🗪
1:07:45Culver_Fly Do you always start with software rendering when working on games?
🗪
1:08:27groggeh For new year's can we get a marathon?
🗪
1:08:27groggeh For new year's can we get a marathon?
🗪
1:08:27groggeh For new year's can we get a marathon?
🗪
1:08:33RyanRies Can you do really smooth animation in GDI, without vsync?
🗪
1:08:33RyanRies Can you do really smooth animation in GDI, without vsync?
🗪
1:08:33RyanRies Can you do really smooth animation in GDI, without vsync?
🗪
1:09:16elxenoaizd Simple question, but how do you forward declare a struct in pure C? If I have "typedef struct foo {...} foo;" how do I forward declare this? I tried typedef struct foo foo; but it didn't work
🗪
1:09:16elxenoaizd Simple question, but how do you forward declare a struct in pure C? If I have "typedef struct foo {...} foo;" how do I forward declare this? I tried typedef struct foo foo; but it didn't work
🗪
1:09:16elxenoaizd Simple question, but how do you forward declare a struct in pure C? If I have "typedef struct foo {...} foo;" how do I forward declare this? I tried typedef struct foo foo; but it didn't work
🗪
1:09:49m1el Do you have any optimization for not blending transparent pixels?
🗪
1:09:49m1el Do you have any optimization for not blending transparent pixels?
🗪
1:09:49m1el Do you have any optimization for not blending transparent pixels?
🗪
1:11:18cubercaleb Once you have sorting implemented, do you think you will change the renderer to draw front to back?
🗪
1:11:18cubercaleb Once you have sorting implemented, do you think you will change the renderer to draw front to back?
🗪
1:11:18cubercaleb Once you have sorting implemented, do you think you will change the renderer to draw front to back?
🗪
1:11:40elxenoaizd Thanks, I was just curious in my console question. But sometimes I write utils that I would like to live in the background and not be visible on the screen, so I use a Windows application and hide the window. Is there any way to use a console instead and hide that (from taskmgr, etc.)?
🗪
1:11:40elxenoaizd Thanks, I was just curious in my console question. But sometimes I write utils that I would like to live in the background and not be visible on the screen, so I use a Windows application and hide the window. Is there any way to use a console instead and hide that (from taskmgr, etc.)?
🗪
1:11:40elxenoaizd Thanks, I was just curious in my console question. But sometimes I write utils that I would like to live in the background and not be visible on the screen, so I use a Windows application and hide the window. Is there any way to use a console instead and hide that (from taskmgr, etc.)?
🗪
1:12:08actbinary Can you give a quick overview of the way memory is managed at the moment? PushArena / BeginTempArena, etc?
🗪
1:12:08actbinary Can you give a quick overview of the way memory is managed at the moment? PushArena / BeginTempArena, etc?
🗪
1:12:08actbinary Can you give a quick overview of the way memory is managed at the moment? PushArena / BeginTempArena, etc?
🗪
1:12:46Blackboard: Memory Arenas
1:12:46Blackboard: Memory Arenas
1:12:46Blackboard: Memory Arenas
1:14:21Alfwich Are you still using .bat file compilations?
🗪
1:14:21Alfwich Are you still using .bat file compilations?
🗪
1:14:21Alfwich Are you still using .bat file compilations?
🗪