Handmade Hero»Episode Guide
Windows Graphics Review
?
?

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)
1:09Brief overview of the week's work.
1:09Brief overview of the week's work.
1:09Brief overview of the week's work.
2:13Capture card considered unneccesary?
2:13Capture card considered unneccesary?
2:13Capture card considered unneccesary?
3:07Value of HREDRAW and VREDRAW
3:07Value of HREDRAW and VREDRAW
3:07Value of HREDRAW and VREDRAW
4:48Helping the compiler optimize by avoiding unnecessary pointers
4:48Helping the compiler optimize by avoiding unnecessary pointers
4:48Helping the compiler optimize by avoiding unnecessary pointers
6:30Explanation of pointer aliasing
6:30Explanation of pointer aliasing
6:30Explanation of pointer aliasing
11:44What difference does it make if I put a declaration inside a loop instead of outside it?
11:44What difference does it make if I put a declaration inside a loop instead of outside it?
11:44What difference does it make if I put a declaration inside a loop instead of outside it?
18:30Where to get Liberation Mono, the font Casey uses.
18:30Where to get Liberation Mono, the font Casey uses.
18:30Where to get Liberation Mono, the font Casey uses.
19:34Dealing with global variables more cleanly by bundling them up into structures
19:34Dealing with global variables more cleanly by bundling them up into structures
19:34Dealing with global variables more cleanly by bundling them up into structures
28:58Making a global backbuffer
28:58Making a global backbuffer
28:58Making a global backbuffer
29:59Explanation of Access Violations
29:59Explanation of Access Violations
29:59Explanation of Access Violations
33:16Aside about types of errors you find in code
33:16Aside about types of errors you find in code
33:16Aside about types of errors you find in code
37:12GetWindowDimension() created
37:12GetWindowDimension() created
37:12GetWindowDimension() created
41:02Why keep using Width/Height instead of win32_window_dimension?
41:02Why keep using Width/Height instead of win32_window_dimension?
41:02Why keep using Width/Height instead of win32_window_dimension?
43:38Changing the backbuffer to be fixed size
43:38Changing the backbuffer to be fixed size
43:38Changing the backbuffer to be fixed size
47:17Full step-through with in-depth analyis of program behavior
47:17Full step-through with in-depth analyis of program behavior
47:17Full step-through with in-depth analyis of program behavior
52:44Deep dive on the size of the stack
52:44Deep dive on the size of the stack
52:44Deep dive on the size of the stack
55:50STACK OVERFLOW ACHIEVED
55:50STACK OVERFLOW ACHIEVED
55:50STACK OVERFLOW ACHIEVED
1:01:45Step-through resumed
1:01:45Step-through resumed
1:01:45Step-through resumed
1:23:35Q&A
🗩
1:23:35Q&A
🗩
1:23:35Q&A
🗩
1:24:06Would it be a good or bad idea to get one DeviceContext at the beginning of the program and use that for every iteration of the main loop?
1:24:06Would it be a good or bad idea to get one DeviceContext at the beginning of the program and use that for every iteration of the main loop?
1:24:06Would it be a good or bad idea to get one DeviceContext at the beginning of the program and use that for every iteration of the main loop?
1:26:06Chihuahua on speed confirmed
1:26:06Chihuahua on speed confirmed
1:26:06Chihuahua on speed confirmed
1:26:22Why do you tell Windows you handle messages you don't really handle?
1:26:22Why do you tell Windows you handle messages you don't really handle?
1:26:22Why do you tell Windows you handle messages you don't really handle?
1:29:06I believe SetStretchBltMode() will allow you to get better quality stretching.
1:29:06I believe SetStretchBltMode() will allow you to get better quality stretching.
1:29:06I believe SetStretchBltMode() will allow you to get better quality stretching.
1:29:40Can you please explain pointer aliasing again?
1:29:40Can you please explain pointer aliasing again?
1:29:40Can you please explain pointer aliasing again?
1:45:47Owl of Shame Moment: Pointer aliasing explanation fail
🦉
1:45:47Owl of Shame Moment: Pointer aliasing explanation fail
🦉
1:45:47Owl of Shame Moment: Pointer aliasing explanation fail
🦉
1:49:26Proper pointer aliasing explanation
1:49:26Proper pointer aliasing explanation
1:49:26Proper pointer aliasing explanation
1:57:22I was under the impression that the stack always grows downwards on little endian architectures, is that not true?
1:57:22I was under the impression that the stack always grows downwards on little endian architectures, is that not true?
1:57:22I was under the impression that the stack always grows downwards on little endian architectures, is that not true?
1:58:10Can you post interesting e-mails you get to the site?
1:58:10Can you post interesting e-mails you get to the site?
1:58:10Can you post interesting e-mails you get to the site?
1:58:31The compiler is allowed to, and actually does, assume that two pointers to different types never alias unless one of the types is char or unsigned char
1:58:31The compiler is allowed to, and actually does, assume that two pointers to different types never alias unless one of the types is char or unsigned char
1:58:31The compiler is allowed to, and actually does, assume that two pointers to different types never alias unless one of the types is char or unsigned char
1:59:46Win32DisplayBufferInWindow() is taking four unused parameters. WM_PAINT is the only part where we pass those, but we never use them. Will that change?
1:59:46Win32DisplayBufferInWindow() is taking four unused parameters. WM_PAINT is the only part where we pass those, but we never use them. Will that change?
1:59:46Win32DisplayBufferInWindow() is taking four unused parameters. WM_PAINT is the only part where we pass those, but we never use them. Will that change?
2:01:02Wouldn't it be better to keep comments in the code about the explanations you do?
2:01:02Wouldn't it be better to keep comments in the code about the explanations you do?
2:01:02Wouldn't it be better to keep comments in the code about the explanations you do?
2:01:27Why have BytesPerPixel as a variable? Do you expect it to have different values?
2:01:27Why have BytesPerPixel as a variable? Do you expect it to have different values?
2:01:27Why have BytesPerPixel as a variable? Do you expect it to have different values?
2:03:04On the uselessness of const
2:03:04On the uselessness of const
2:03:04On the uselessness of const