Handmade Hero»Episode Guide
Merging Debug and Developer UI
?
?

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:00Recap and set the stage for the day and December's surprise streams in celebration of Krampuslauf
🗩
0:00Recap and set the stage for the day and December's surprise streams in celebration of Krampuslauf
🗩
0:00Recap and set the stage for the day and December's surprise streams in celebration of Krampuslauf
🗩
1:46Run the game and set up to edit asset annotations
🏃
1:46Run the game and set up to edit asset annotations
🏃
1:46Run the game and set up to edit asset annotations
🏃
4:58Review AssetEditor() and the beginnings of our UI functionality
📖
4:58Review AssetEditor() and the beginnings of our UI functionality
📖
4:58Review AssetEditor() and the beginnings of our UI functionality
📖
7:20Set up to merge the debug system's layout code into our multipurpose UI system
🗩
7:20Set up to merge the debug system's layout code into our multipurpose UI system
🗩
7:20Set up to merge the debug system's layout code into our multipurpose UI system
🗩
8:51Begin to merge the debug system's UI code into handmade_dev_ui.h, for use by both the debug and asset systems
8:51Begin to merge the debug system's UI code into handmade_dev_ui.h, for use by both the debug and asset systems
8:51Begin to merge the debug system's UI code into handmade_dev_ui.h, for use by both the debug and asset systems
18:58Move UI data from debug_state to dev_ui_context and propagate this change to all functions
18:58Move UI data from debug_state to dev_ui_context and propagate this change to all functions
18:58Move UI data from debug_state to dev_ui_context and propagate this change to all functions
29:37Rename dev_ui_context to dev_ui, and continue our UI code merge
29:37Rename dev_ui_context to dev_ui, and continue our UI code merge
29:37Rename dev_ui_context to dev_ui, and continue our UI code merge
34:09Organise the debug_state struct into data that will remain and be merged out
34:09Organise the debug_state struct into data that will remain and be merged out
34:09Organise the debug_state struct into data that will remain and be merged out
36:03Remind ourselves how we use the SelectedID
🏃
📖
36:03Remind ourselves how we use the SelectedID
🏃
📖
36:03Remind ourselves how we use the SelectedID
🏃
📖
39:33Switch the debug system over to use our new general UI layout code
39:33Switch the debug system over to use our new general UI layout code
39:33Switch the debug system over to use our new general UI layout code
57:17Introduce InitializeUI() and BeginUIFrame() to perform the UI layout functionality of DEBUGStart()
57:17Introduce InitializeUI() and BeginUIFrame() to perform the UI layout functionality of DEBUGStart()
57:17Introduce InitializeUI() and BeginUIFrame() to perform the UI layout functionality of DEBUGStart()
1:12:22Switch UpdateAndRenderEditor() over to use our new general UI system, and introduce InitializeEditor()
1:12:22Switch UpdateAndRenderEditor() over to use our new general UI system, and introduce InitializeEditor()
1:12:22Switch UpdateAndRenderEditor() over to use our new general UI system, and introduce InitializeEditor()
1:20:21Make GameUpdateAndRender() call BeginUIFrame() and EndUIFrame()
1:20:21Make GameUpdateAndRender() call BeginUIFrame() and EndUIFrame()
1:20:21Make GameUpdateAndRender() call BeginUIFrame() and EndUIFrame()
1:23:13Implement EndUIFrame() based on the UI layout code of DEBUGEnd(), and make BeginUIFrame() perform the mouse handling from DEBUGInteract()
1:23:13Implement EndUIFrame() based on the UI layout code of DEBUGEnd(), and make BeginUIFrame() perform the mouse handling from DEBUGInteract()
1:23:13Implement EndUIFrame() based on the UI layout code of DEBUGEnd(), and make BeginUIFrame() perform the mouse handling from DEBUGInteract()
1:35:54Clean up compile errors in the UI merge across the asset and debug systems
1:35:54Clean up compile errors in the UI merge across the asset and debug systems
1:35:54Clean up compile errors in the UI merge across the asset and debug systems
1:42:46Run the game to find that all of that just worked
🏃
1:42:46Run the game to find that all of that just worked
🏃
1:42:46Run the game to find that all of that just worked
🏃
1:43:43Delete BeginLine() and EndLine() in favour of BeginRow() and EndRow()
1:43:43Delete BeginLine() and EndLine() in favour of BeginRow() and EndRow()
1:43:43Delete BeginLine() and EndLine() in favour of BeginRow() and EndRow()
1:45:04Implement Button(), calling ActionButton() and Label()
1:45:04Implement Button(), calling ActionButton() and Label()
1:45:04Implement Button(), calling ActionButton() and Label()
1:47:30Run the game to see our asset UI
🏃
1:47:30Run the game to see our asset UI
🏃
1:47:30Run the game to see our asset UI
🏃
1:47:57Implement Labelf()
1:47:57Implement Labelf()
1:47:57Implement Labelf()
1:51:28Run the game to see our UI labels
🏃
1:51:28Run the game to see our UI labels
🏃
1:51:28Run the game to see our UI labels
🏃
1:51:37Implement fake versions of EditableBoolean(), EditableType(), EditableSize() and EditablePxy()
1:51:37Implement fake versions of EditableBoolean(), EditableType(), EditableSize() and EditablePxy()
1:51:37Implement fake versions of EditableBoolean(), EditableType(), EditableSize() and EditablePxy()
1:52:18Run the game to see even more UI
🏃
1:52:18Run the game to see even more UI
🏃
1:52:18Run the game to see even more UI
🏃
1:52:29Q&A
🗩
1:52:29Q&A
🗩
1:52:29Q&A
🗩
1:54:15Wrap it up
🗩
1:54:15Wrap it up
🗩
1:54:15Wrap it up
🗩