[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Animating the Back Buffer" vod_platform=youtube id=hNKU8Jiza2g annotator=jacebennett annotator=Miblo]
[0:30][Correction about StretchDIBits()/BitBlt()]
[5:20][Writing our custom BitmapMemory allocator. (Note about aligned/unaligned byte access)]
[7:13][Basic math to determine the bytes needed for BitmapMemorySize. 'Width * Height * BytesPerPixel']
[7:57][Description and usage of VirtualAlloc(), the WIN32 memory allocation function we will be using]
[13:15][Making sure we free any allocated memory before we resize, using VirtualFree()]
[15:20][Aside about VirtualProtect(), useful to prevent stale pointers and "use after free" bugs]
[16:49][Step through of Win32ResizeDIBSection()]
[17:45][Changing Win32UpdateWindow() to use BitmapMemory]
[19:30][Adding Bitmap dimensions as global variables (temporarily)]
[20:00][Setting Bitmap Width/Height and using them in Win32ResizeDIBSection()]
[20:20][Setting Window Width/Height in Win32UpdateWindow()]
[21:57][Notes on storing a 2D image inside a 1D "block" of memory. Pitch/Stride.]
[24:30][Setting biHeight to a negative number to ensure the window framebuffer uses a top-down coordinate system with its origin in the top left corner]
[25:59][Note on getting MSVC to give full paths to files in the build output log. (Add -FC to build.bat) Allows emacs to jump between build errors]