Handmade Hero»Episode Guide
Using Memory Arenas in the Platform Layer
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:31Recap and set the stage for the day
0:31Recap and set the stage for the day
0:31Recap and set the stage for the day
2:02handmade_opengl.cpp: Consider making this whole file platform independent
2:02handmade_opengl.cpp: Consider making this whole file platform independent
2:02handmade_opengl.cpp: Consider making this whole file platform independent
4:58handmade_platform.h: Consider moving platform_opengl_display_bitmap and platform_opengl_render_commands in from handmade_opengl.cpp
4:58handmade_platform.h: Consider moving platform_opengl_display_bitmap and platform_opengl_render_commands in from handmade_opengl.cpp
4:58handmade_platform.h: Consider moving platform_opengl_display_bitmap and platform_opengl_render_commands in from handmade_opengl.cpp
7:10Consider (the downsides of) making all the platform layers include bindings and link the dll with opengl
7:10Consider (the downsides of) making all the platform layers include bindings and link the dll with opengl
7:10Consider (the downsides of) making all the platform layers include bindings and link the dll with opengl
9:59win32_handmade.cpp: Make Win32DisplayBufferInWindow() call SortEntries(), and consider moving the sorting or the memory arena into the platform specific layer
9:59win32_handmade.cpp: Make Win32DisplayBufferInWindow() call SortEntries(), and consider moving the sorting or the memory arena into the platform specific layer
9:59win32_handmade.cpp: Make Win32DisplayBufferInWindow() call SortEntries(), and consider moving the sorting or the memory arena into the platform specific layer
11:31Create handmade_memory.h and #include it handmade_shared.h
11:31Create handmade_memory.h and #include it handmade_shared.h
11:31Create handmade_memory.h and #include it handmade_shared.h
17:07Consider the concept of an overflow memory state
17:07Consider the concept of an overflow memory state
17:07Consider the concept of an overflow memory state
20:13win32_handmade.cpp: Make Win32DisplayBufferInWindow() take a memory_arena and create some temporarary_memory for SortEntries() and LinearizeClipRects() to use
20:13win32_handmade.cpp: Make Win32DisplayBufferInWindow() take a memory_arena and create some temporarary_memory for SortEntries() and LinearizeClipRects() to use
20:13win32_handmade.cpp: Make Win32DisplayBufferInWindow() take a memory_arena and create some temporarary_memory for SortEntries() and LinearizeClipRects() to use
24:00handmade_opengl.cpp: Make OpenGLRenderCommands() call GetSortedIndices()
24:00handmade_opengl.cpp: Make OpenGLRenderCommands() call GetSortedIndices()
24:00handmade_opengl.cpp: Make OpenGLRenderCommands() call GetSortedIndices()
25:03handmade_render.cpp: Make RenderCommandsToBitmap() call GetSortedIndices()
25:03handmade_render.cpp: Make RenderCommandsToBitmap() call GetSortedIndices()
25:03handmade_render.cpp: Make RenderCommandsToBitmap() call GetSortedIndices()
26:02handmade_platform.h: Introduce game_render_prep struct and make the necessary functions take it
26:02handmade_platform.h: Introduce game_render_prep struct and make the necessary functions take it
26:02handmade_platform.h: Introduce game_render_prep struct and make the necessary functions take it
31:44handmade_render.cpp: Introduce PrepForRender()
31:44handmade_render.cpp: Introduce PrepForRender()
31:44handmade_render.cpp: Introduce PrepForRender()
33:174coder: Request a mode that automatically creates a boundary in the bottom-right corner
33:174coder: Request a mode that automatically creates a boundary in the bottom-right corner
33:174coder: Request a mode that automatically creates a boundary in the bottom-right corner
33:52win32_handmade.cpp: Stop WinMain() from dealing with the ClipMemory and make LinearizeClipRects() in handmade_render.cpp do it itself
33:52win32_handmade.cpp: Stop WinMain() from dealing with the ClipMemory and make LinearizeClipRects() in handmade_render.cpp do it itself
33:52win32_handmade.cpp: Stop WinMain() from dealing with the ClipMemory and make LinearizeClipRects() in handmade_render.cpp do it itself
35:37On the importance of good utility functionality
35:37On the importance of good utility functionality
35:37On the importance of good utility functionality
41:29Create handmade_render.h and stick the sprite structs in there
41:29Create handmade_render.h and stick the sprite structs in there
41:29Create handmade_render.h and stick the sprite structs in there
49:50Run the game and hit the assertion in OpenGLRenderCommands()
49:50Run the game and hit the assertion in OpenGLRenderCommands()
49:50Run the game and hit the assertion in OpenGLRenderCommands()
52:10handmade_render.cpp: Assert that OutIndex - OutIndexArray == InputNodeCount in WalkSpriteGraph(), and make SortEntries() traverse the nodes and write the indices of them
52:10handmade_render.cpp: Assert that OutIndex - OutIndexArray == InputNodeCount in WalkSpriteGraph(), and make SortEntries() traverse the nodes and write the indices of them
52:10handmade_render.cpp: Assert that OutIndex - OutIndexArray == InputNodeCount in WalkSpriteGraph(), and make SortEntries() traverse the nodes and write the indices of them
54:41Run the game and see that all of our stuff is flowing without crashing
54:41Run the game and see that all of our stuff is flowing without crashing
54:41Run the game and see that all of our stuff is flowing without crashing
55:15handmade_render.cpp: Make RecursiveFromToBack() correctly increment the OutIndex
55:15handmade_render.cpp: Make RecursiveFromToBack() correctly increment the OutIndex
55:15handmade_render.cpp: Make RecursiveFromToBack() correctly increment the OutIndex
55:49Run the game and hit the assertion in BuildSpriteGraph()
55:49Run the game and hit the assertion in BuildSpriteGraph()
55:49Run the game and hit the assertion in BuildSpriteGraph()
56:10handmade_render.cpp: Explain how RecursiveFromToBack() is working
56:10handmade_render.cpp: Explain how RecursiveFromToBack() is working
56:10handmade_render.cpp: Explain how RecursiveFromToBack() is working
58:30handmade_render_group.cpp: Make PushRenderElement_() clear Flags
58:30handmade_render_group.cpp: Make PushRenderElement_() clear Flags
58:30handmade_render_group.cpp: Make PushRenderElement_() clear Flags
59:42Run the game, confirm that our sort isn't working and consider how to make it work
59:42Run the game, confirm that our sort isn't working and consider how to make it work
59:42Run the game, confirm that our sort isn't working and consider how to make it work
1:02:43Q&A
🗩
1:02:43Q&A
🗩
1:02:43Q&A
🗩
1:04:32insobot Line 31?
🗪
1:04:32insobot Line 31?
🗪
1:04:32insobot Line 31?
🗪
1:06:05roam00010011 Since no on-topic, off-topic: Will the final game be orthographic?
🗪
1:06:05roam00010011 Since no on-topic, off-topic: Will the final game be orthographic?
🗪
1:06:05roam00010011 Since no on-topic, off-topic: Will the final game be orthographic?
🗪
1:06:42bryanwwag When you're calculating pre-allocated buffer locations with offsets, do you find the pointer bugs that pop up sometimes difficult to track down, or is that kind of a non-issue when you do it often enough?
🗪
1:06:42bryanwwag When you're calculating pre-allocated buffer locations with offsets, do you find the pointer bugs that pop up sometimes difficult to track down, or is that kind of a non-issue when you do it often enough?
🗪
1:06:42bryanwwag When you're calculating pre-allocated buffer locations with offsets, do you find the pointer bugs that pop up sometimes difficult to track down, or is that kind of a non-issue when you do it often enough?
🗪
1:13:54roam00010011 Which system did you start programming on, way back in the previous millennium?1
🗪
1:13:54roam00010011 Which system did you start programming on, way back in the previous millennium?1
🗪
1:13:54roam00010011 Which system did you start programming on, way back in the previous millennium?1
🗪
1:14:55soysaucethekid I know there is debug code for how long functions take. Is there any debug code for how much of a memory arena is being used?
🗪
1:14:55soysaucethekid I know there is debug code for how long functions take. Is there any debug code for how much of a memory arena is being used?
🗪
1:14:55soysaucethekid I know there is debug code for how long functions take. Is there any debug code for how much of a memory arena is being used?
🗪
1:15:47Recollections of the Rainbow 100 and Turbo Pascal
1:15:47Recollections of the Rainbow 100 and Turbo Pascal
1:15:47Recollections of the Rainbow 100 and Turbo Pascal
1:20:46roam00010011 Did you program on the Amiga?
🗪
1:20:46roam00010011 Did you program on the Amiga?
🗪
1:20:46roam00010011 Did you program on the Amiga?
🗪
1:21:07pseudonym73 Did it have Word Star key bindings? That's really the test
🗪
1:21:07pseudonym73 Did it have Word Star key bindings? That's really the test
🗪
1:21:07pseudonym73 Did it have Word Star key bindings? That's really the test
🗪
1:21:14Close down
🗩
1:21:14Close down
🗩
1:21:14Close down
🗩