Saving and Restoring Dynamically Allocated Memory Pages
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
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 and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

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:03Recap and set the stage for the day
0:03Recap and set the stage for the day
0:03Recap and set the stage for the day
4:07Run the game to demo the current situation with regards to the looped live code editing
4:07Run the game to demo the current situation with regards to the looped live code editing
4:07Run the game to demo the current situation with regards to the looped live code editing
6:11win32_handmade.h: Introduce a win32_memory_block struct and add a MemorySentinel to win32_state to enable us to iterate over the memory blocks
6:11win32_handmade.h: Introduce a win32_memory_block struct and add a MemorySentinel to win32_state to enable us to iterate over the memory blocks
6:11win32_handmade.h: Introduce a win32_memory_block struct and add a MemorySentinel to win32_state to enable us to iterate over the memory blocks
10:07win32_handmade.cpp: Enable PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() to handle multiple linked memory blocks
10:07win32_handmade.cpp: Enable PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() to handle multiple linked memory blocks
10:07win32_handmade.cpp: Enable PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() to handle multiple linked memory blocks
21:20Note a caveat: This linked list is not thread-safe
21:20Note a caveat: This linked list is not thread-safe
21:20Note a caveat: This linked list is not thread-safe
22:50win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() thread-safe
22:50win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() thread-safe
22:50win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() thread-safe
25:34win32_handmade.cpp: Think through how to enable Win32BeginRecordingInput() and Win32BeginInputPlayBack() to handle multiple memory blocks
25:34win32_handmade.cpp: Think through how to enable Win32BeginRecordingInput() and Win32BeginInputPlayBack() to handle multiple memory blocks
25:34win32_handmade.cpp: Think through how to enable Win32BeginRecordingInput() and Win32BeginInputPlayBack() to handle multiple memory blocks
30:11win32_handmade.cpp: Get rid of MapViewOfFile() and Win32GetReplayBuffer() and other cruft
30:11win32_handmade.cpp: Get rid of MapViewOfFile() and Win32GetReplayBuffer() and other cruft
30:11win32_handmade.cpp: Get rid of MapViewOfFile() and Win32GetReplayBuffer() and other cruft
35:48win32_handmade.h: Introduce win32_saved_memory_block struct and enable Win32BeginInputPlayBack() to play from blocks of that type
35:48win32_handmade.h: Introduce win32_saved_memory_block struct and enable Win32BeginInputPlayBack() to play from blocks of that type
35:48win32_handmade.h: Introduce win32_saved_memory_block struct and enable Win32BeginInputPlayBack() to play from blocks of that type
41:05win32_handmade.cpp: Enable Win32BeginRecordingInput() and Win32EndRecordingInput() to handle multiple blocks
41:05win32_handmade.cpp: Enable Win32BeginRecordingInput() and Win32EndRecordingInput() to handle multiple blocks
41:05win32_handmade.cpp: Enable Win32BeginRecordingInput() and Win32EndRecordingInput() to handle multiple blocks
47:03Reflect on what we've done, run the game, crash in a Win32DeallocateMemory() call and investigate why
47:03Reflect on what we've done, run the game, crash in a Win32DeallocateMemory() call and investigate why
47:03Reflect on what we've done, run the game, crash in a Win32DeallocateMemory() call and investigate why
51:19Reproduce the bug and investigate what's happening
51:19Reproduce the bug and investigate what's happening
51:19Reproduce the bug and investigate what's happening
53:23win32_handmade.cpp: Make the linked list in PLATFORM_ALLOCATE_MEMORY() thread-safe
53:23win32_handmade.cpp: Make the linked list in PLATFORM_ALLOCATE_MEMORY() thread-safe
53:23win32_handmade.cpp: Make the linked list in PLATFORM_ALLOCATE_MEMORY() thread-safe
54:22Run the game and try in vain to reproduce the bug, before describing what was happening
54:22Run the game and try in vain to reproduce the bug, before describing what was happening
54:22Run the game and try in vain to reproduce the bug, before describing what was happening
55:09Run the game again and crash in inside KernelBase.dll in Win32BeginInputPlayBack()
55:09Run the game again and crash in inside KernelBase.dll in Win32BeginInputPlayBack()
55:09Run the game again and crash in inside KernelBase.dll in Win32BeginInputPlayBack()
56:25win32_handmade.cpp: Make Win32BeginInputPlayBack() pass &BytesRead to ReadFile()
56:25win32_handmade.cpp: Make Win32BeginInputPlayBack() pass &BytesRead to ReadFile()
56:25win32_handmade.cpp: Make Win32BeginInputPlayBack() pass &BytesRead to ReadFile()
57:31Run the game and find that that fixed it
57:31Run the game and find that that fixed it
57:31Run the game and find that that fixed it
58:55win32_handmade.cpp: Make Win32BeginRecordingInput() pass &BytesWritten to WriteFile()
58:55win32_handmade.cpp: Make Win32BeginRecordingInput() pass &BytesWritten to WriteFile()
58:55win32_handmade.cpp: Make Win32BeginRecordingInput() pass &BytesWritten to WriteFile()
59:23Run the game and determine that we're not quite reloading correctly
59:23Run the game and determine that we're not quite reloading correctly
59:23Run the game and determine that we're not quite reloading correctly
59:59Q&A
🗩
59:59Q&A
🗩
59:59Q&A
🗩
1:00:51soysaucethekid Could you explain the padding you used for the memory struct? I believe you said it was for cache-line stuff, so if you omitted it, would it just result in more cache line misses or would it crash the game?
🗪
1:00:51soysaucethekid Could you explain the padding you used for the memory struct? I believe you said it was for cache-line stuff, so if you omitted it, would it just result in more cache line misses or would it crash the game?
🗪
1:00:51soysaucethekid Could you explain the padding you used for the memory struct? I believe you said it was for cache-line stuff, so if you omitted it, would it just result in more cache line misses or would it crash the game?
🗪
1:03:15fangk20 How did you get to where you are today and how did you do it, in terms of coding knowledge?1
🗪
1:03:15fangk20 How did you get to where you are today and how did you do it, in terms of coding knowledge?1
🗪
1:03:15fangk20 How did you get to where you are today and how did you do it, in terms of coding knowledge?1
🗪
1:04:04torgdor It's a bit early to ask, but will there be a HandmadeCon 2017?
🗪
1:04:04torgdor It's a bit early to ask, but will there be a HandmadeCon 2017?
🗪
1:04:04torgdor It's a bit early to ask, but will there be a HandmadeCon 2017?
🗪
1:06:28jeemjam420 Would you recommend any specific resource for learning C++? So far I've been using the "learncpp" website
🗪
1:06:28jeemjam420 Would you recommend any specific resource for learning C++? So far I've been using the "learncpp" website
🗪
1:06:28jeemjam420 Would you recommend any specific resource for learning C++? So far I've been using the "learncpp" website
🗪
1:06:45zilarrezko Have you ever used a rope to manipulate strings?
🗪
1:06:45zilarrezko Have you ever used a rope to manipulate strings?
🗪
1:06:45zilarrezko Have you ever used a rope to manipulate strings?
🗪
1:08:31randolfbat Aren't you going to read in pages that have been deallocated?
🗪
1:08:31randolfbat Aren't you going to read in pages that have been deallocated?
🗪
1:08:31randolfbat Aren't you going to read in pages that have been deallocated?
🗪
1:11:51snoringtortoise So with memory systems, do you always try to put extra bits of data at the end to ensure if they ask for memory from a specific address then it doesn't ruin their day?
🗪
1:11:51snoringtortoise So with memory systems, do you always try to put extra bits of data at the end to ensure if they ask for memory from a specific address then it doesn't ruin their day?
🗪
1:11:51snoringtortoise So with memory systems, do you always try to put extra bits of data at the end to ensure if they ask for memory from a specific address then it doesn't ruin their day?
🗪
1:13:22Close it down with a glimpse into the future
🗩
1:13:22Close it down with a glimpse into the future
🗩
1:13:22Close it down with a glimpse into the future
🗩