We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
Bitwise»Episode Guide
Making Noir
?
?

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:08Recap and set the stage for the day
🗩
0:08Recap and set the stage for the day
🗩
0:08Recap and set the stage for the day
🗩
1:20Review the new support for pointer const declarations and expanded support for notes and #foreign
🗹
1:20Review the new support for pointer const declarations and expanded support for notes and #foreign
🗹
1:20Review the new support for pointer const declarations and expanded support for notes and #foreign
🗹
6:31Review the newly complete support for incomplete declarations
🗹
6:31Review the newly complete support for incomplete declarations
🗹
6:31Review the newly complete support for incomplete declarations
🗹
8:59Review the work on making the binding code less redundant
🗹
8:59Review the work on making the binding code less redundant
🗹
8:59Review the work on making the binding code less redundant
🗹
11:34Review the error handling of break / continue outside of loops, and warning of implicit breaks
🗹
11:34Review the error handling of break / continue outside of loops, and warning of implicit breaks
🗹
11:34Review the error handling of break / continue outside of loops, and warning of implicit breaks
🗹
13:13Consider the cleanliness of this code
13:13Consider the cleanliness of this code
13:13Consider the cleanliness of this code
13:53Q&A
🗩
13:53Q&A
🗩
13:53Q&A
🗩
14:03Run noir to demo its input handling, with some words on the plan for this library
🏃
14:03Run noir to demo its input handling, with some words on the plan for this library
🏃
14:03Run noir to demo its input handling, with some words on the plan for this library
🏃
15:36A few words on the genesis of noir, inspired by mu1,2,3
🗩
15:36A few words on the genesis of noir, inspired by mu1,2,3
🗩
15:36A few words on the genesis of noir, inspired by mu1,2,3
🗩
23:02Dive into fully implementing keyboard input handling in noir's update()4,5
23:02Dive into fully implementing keyboard input handling in noir's update()4,5
23:02Dive into fully implementing keyboard input handling in noir's update()4,5
35:17Run it to see that it's reporting Left Shift presses and releases incorrectly
🏃
35:17Run it to see that it's reporting Left Shift presses and releases incorrectly
🏃
35:17Run it to see that it's reporting Left Shift presses and releases incorrectly
🏃
35:46Read carefully through update() to try and determine what's wrong6
📖
35:46Read carefully through update() to try and determine what's wrong6
📖
35:46Read carefully through update() to try and determine what's wrong6
📖
37:34tbodt_ Why is noir written in C and not Ion?
🗪
37:34tbodt_ Why is noir written in C and not Ion?
🗪
37:34tbodt_ Why is noir written in C and not Ion?
🗪
38:36nxsy Two KEY_LSHIFT in the array
🗪
38:36nxsy Two KEY_LSHIFT in the array
🗪
38:36nxsy Two KEY_LSHIFT in the array
🗪
38:42Fix typos in sdl_mod_map
38:42Fix typos in sdl_mod_map
38:42Fix typos in sdl_mod_map
38:53Run it to see presses and releases of Left Shift
🏃
38:53Run it to see presses and releases of Left Shift
🏃
38:53Run it to see presses and releases of Left Shift
🏃
39:14Enable update() to handle the virtual combination keys SHIFT, CTRL and ALT
39:14Enable update() to handle the virtual combination keys SHIFT, CTRL and ALT
39:14Enable update() to handle the virtual combination keys SHIFT, CTRL and ALT
41:04Run it to demo these virtual combination keys
🏃
41:04Run it to demo these virtual combination keys
🏃
41:04Run it to demo these virtual combination keys
🏃
42:18Introduce init_char_to_sdl_scancodes() using SDL_GetKeyFromName()7
42:18Introduce init_char_to_sdl_scancodes() using SDL_GetKeyFromName()7
42:18Introduce init_char_to_sdl_scancodes() using SDL_GetKeyFromName()7
51:16Declare noir scancodes for our modifier keys in Ion
51:16Declare noir scancodes for our modifier keys in Ion
51:16Declare noir scancodes for our modifier keys in Ion
56:11Run it to see that it still works
🏃
56:11Run it to see that it still works
🏃
56:11Run it to see that it still works
🏃
56:19Make init() call init_char_to_sdl_scancodes()
56:19Make init() call init_char_to_sdl_scancodes()
56:19Make init() call init_char_to_sdl_scancodes()
57:27Run it to see how it handles punctuation keys
🏃
57:27Run it to see how it handles punctuation keys
🏃
57:27Run it to see how it handles punctuation keys
🏃
58:18Rename init_char_to_sdl_scancodes() to init_scancodes()
58:18Rename init_char_to_sdl_scancodes() to init_scancodes()
58:18Rename init_char_to_sdl_scancodes() to init_scancodes()
58:48Run it to double-check that it still works
🏃
58:48Run it to double-check that it still works
🏃
58:48Run it to double-check that it still works
🏃
58:51Try printing non-modifier keys
58:51Try printing non-modifier keys
58:51Try printing non-modifier keys
59:15Run it to see that it works
🏃
59:15Run it to see that it works
🏃
59:15Run it to see that it works
🏃
59:46Add support for KEY_CAPS, KEY_SPACE, KEY_BACKSPACE, KEY_TAB and Arrow keys
59:46Add support for KEY_CAPS, KEY_SPACE, KEY_BACKSPACE, KEY_TAB and Arrow keys
59:46Add support for KEY_CAPS, KEY_SPACE, KEY_BACKSPACE, KEY_TAB and Arrow keys
1:06:05Run it to see that it works
🏃
1:06:05Run it to see that it works
🏃
1:06:05Run it to see that it works
🏃
1:06:14Introduce Noir struct to contain the keys
1:06:14Introduce Noir struct to contain the keys
1:06:14Introduce Noir struct to contain the keys
1:09:08Add quit, init, error and error_str to Noir, introducing update_events()8 and error codes
1:09:08Add quit, init, error and error_str to Noir, introducing update_events()8 and error codes
1:09:08Add quit, init, error and error_str to Noir, introducing update_events()8 and error codes
1:20:05Run it to see that it successfully closes
🏃
1:20:05Run it to see that it successfully closes
🏃
1:20:05Run it to see that it successfully closes
🏃
1:20:37Introduce check_init() for create_window() to call, and test calling create_window() before init()
1:20:37Introduce check_init() for create_window() to call, and test calling create_window() before init()
1:20:37Introduce check_init() for create_window() to call, and test calling create_window() before init()
1:21:50Run it to see that we receive the correct error
🏃
1:21:50Run it to see that we receive the correct error
🏃
1:21:50Run it to see that we receive the correct error
🏃
1:22:51Change error_str in Noir to be a const char * called error9
1:22:51Change error_str in Noir to be a const char * called error9
1:22:51Change error_str in Noir to be a const char * called error9
1:26:01Run it to make sure everything still works, and consider what to do in the extra stream
🏃
1:26:01Run it to make sure everything still works, and consider what to do in the extra stream
🏃
1:26:01Run it to make sure everything still works, and consider what to do in the extra stream
🏃
1:27:14Q&A
🗩
1:27:14Q&A
🗩
1:27:14Q&A
🗩
1:27:29tbodt_ What's the plan for imports in Ion?
🗪
1:27:29tbodt_ What's the plan for imports in Ion?
🗪
1:27:29tbodt_ What's the plan for imports in Ion?
🗪
1:29:00nxsy Why are we manually adding key consts vs. using an enum? (I assume the numbers starting at 0x100f is to avoid intersecting with first 255)
🗪
1:29:00nxsy Why are we manually adding key consts vs. using an enum? (I assume the numbers starting at 0x100f is to avoid intersecting with first 255)
🗪
1:29:00nxsy Why are we manually adding key consts vs. using an enum? (I assume the numbers starting at 0x100f is to avoid intersecting with first 255)
🗪
1:30:16bar_fight If you're converting it to a while(not) loop, do you need to put continue; after each if block?
🗪
1:30:16bar_fight If you're converting it to a while(not) loop, do you need to put continue; after each if block?
🗪
1:30:16bar_fight If you're converting it to a while(not) loop, do you need to put continue; after each if block?
🗪
1:31:25nxsy Q: What are "sticky errors"?
🗪
1:31:25nxsy Q: What are "sticky errors"?
🗪
1:31:25nxsy Q: What are "sticky errors"?
🗪
1:32:29jgomes83 pervognsen Will the code for noir be available in GitHub?
🗪
1:32:29jgomes83 pervognsen Will the code for noir be available in GitHub?
🗪
1:32:29jgomes83 pervognsen Will the code for noir be available in GitHub?
🗪
1:33:08That's it for the main stream
🗩
1:33:08That's it for the main stream
🗩
1:33:08That's it for the main stream
🗩