Disabling Sort for Debug Overlays
?
?

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: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:03Consider how to address the problem of sorting the debug overlay
1:03Consider how to address the problem of sorting the debug overlay
1:03Consider how to address the problem of sorting the debug overlay
3:26Run the game, toggle on the sort groups and see the extent of the sorting in the debug overlay
3:26Run the game, toggle on the sort groups and see the extent of the sorting in the debug overlay
3:26Run the game, toggle on the sort groups and see the extent of the sorting in the debug overlay
4:34build.bat: Temporarily switch to -O2, run the game and consult the profiler
4:34build.bat: Temporarily switch to -O2, run the game and consult the profiler
4:34build.bat: Temporarily switch to -O2, run the game and consult the profiler
5:50handmade_debug.cpp: Consider how DrawFrameBars() could aggregate the rectangles
5:50handmade_debug.cpp: Consider how DrawFrameBars() could aggregate the rectangles
5:50handmade_debug.cpp: Consider how DrawFrameBars() could aggregate the rectangles
7:14handmade_render_group.h: Introduce render_entry_rectangle_batch and render_entry_bitmap_batch structs
7:14handmade_render_group.h: Introduce render_entry_rectangle_batch and render_entry_bitmap_batch structs
7:14handmade_render_group.h: Introduce render_entry_rectangle_batch and render_entry_bitmap_batch structs
10:28handmade_debug.cpp: Make DrawFrameBars() initialise a batch to pass to PushRect()
10:28handmade_debug.cpp: Make DrawFrameBars() initialise a batch to pass to PushRect()
10:28handmade_debug.cpp: Make DrawFrameBars() initialise a batch to pass to PushRect()
13:15handmade_render_group.cpp: Begin to implement BeginRectangleBatch() and EndBatch()
13:15handmade_render_group.cpp: Begin to implement BeginRectangleBatch() and EndBatch()
13:15handmade_render_group.cpp: Begin to implement BeginRectangleBatch() and EndBatch()
16:41handmade_render_group.h: Introduce rectangle_batch struct
16:41handmade_render_group.h: Introduce rectangle_batch struct
16:41handmade_render_group.h: Introduce rectangle_batch struct
17:33handmade_render_group.cpp: Implement BeginRectangleBatch() as NewRectangleBatch() and leave out EndBatch() for now
17:33handmade_render_group.cpp: Implement BeginRectangleBatch() as NewRectangleBatch() and leave out EndBatch() for now
17:33handmade_render_group.cpp: Implement BeginRectangleBatch() as NewRectangleBatch() and leave out EndBatch() for now
22:03handmade_render_group.cpp: Consider how the SortKey aggregation works
22:03handmade_render_group.cpp: Consider how the SortKey aggregation works
22:03handmade_render_group.cpp: Consider how the SortKey aggregation works
25:23handmade_render_group.cpp: Make NewRectangleBatch() take SortZ and introduce a version of PushRect() that takes a rectangle_batch
25:23handmade_render_group.cpp: Make NewRectangleBatch() take SortZ and introduce a version of PushRect() that takes a rectangle_batch
25:23handmade_render_group.cpp: Make NewRectangleBatch() take SortZ and introduce a version of PushRect() that takes a rectangle_batch
33:30handmade_render_group.cpp: Consider how to aggregate the bounds
33:30handmade_render_group.cpp: Consider how to aggregate the bounds
33:30handmade_render_group.cpp: Consider how to aggregate the bounds
35:02handmade_render_group.cpp: Revert everything, in favour of turning off the sorting for the debug overlay
35:02handmade_render_group.cpp: Revert everything, in favour of turning off the sorting for the debug overlay
35:02handmade_render_group.cpp: Revert everything, in favour of turning off the sorting for the debug overlay
38:20handmade_render.cpp: Enable SortEntries() to skip sorting and simplify BuildSpriteGraph()
38:20handmade_render.cpp: Enable SortEntries() to skip sorting and simplify BuildSpriteGraph()
38:20handmade_render.cpp: Enable SortEntries() to skip sorting and simplify BuildSpriteGraph()
44:31handmade_render.cpp: Introduce UnsortedOutput()
44:31handmade_render.cpp: Introduce UnsortedOutput()
44:31handmade_render.cpp: Introduce UnsortedOutput()
47:22Run the game and consult the profiler
47:22Run the game and consult the profiler
47:22Run the game and consult the profiler
47:38handmade_render_group.cpp: Make PushSortBarrier() take a TurnOffSorting boolean and DEBUGEnd() set that value
47:38handmade_render_group.cpp: Make PushSortBarrier() take a TurnOffSorting boolean and DEBUGEnd() set that value
47:38handmade_render_group.cpp: Make PushSortBarrier() take a TurnOffSorting boolean and DEBUGEnd() set that value
50:55Run the game and find that the debug overlay is now unsorted
50:55Run the game and find that the debug overlay is now unsorted
50:55Run the game and find that the debug overlay is now unsorted
51:51handmade_debug_ui.cpp: Change the order in which TextOp() and BasicTextElement() draw
51:51handmade_debug_ui.cpp: Change the order in which TextOp() and BasicTextElement() draw
51:51handmade_debug_ui.cpp: Change the order in which TextOp() and BasicTextElement() draw
53:00Run the game and consult the profiler
53:00Run the game and consult the profiler
53:00Run the game and consult the profiler
54:18handmade_debug_ui.cpp: Enable the tooltips to be drawn last
54:18handmade_debug_ui.cpp: Enable the tooltips to be drawn last
54:18handmade_debug_ui.cpp: Enable the tooltips to be drawn last
56:26handmade_debug_ui.cpp: Introduce DrawTooltips() and rework AddTooltip()
56:26handmade_debug_ui.cpp: Introduce DrawTooltips() and rework AddTooltip()
56:26handmade_debug_ui.cpp: Introduce DrawTooltips() and rework AddTooltip()
1:01:52handmade_debug.cpp: Make DEBUGEnd() call DrawTooltips()
1:01:52handmade_debug.cpp: Make DEBUGEnd() call DrawTooltips()
1:01:52handmade_debug.cpp: Make DEBUGEnd() call DrawTooltips()
1:03:03Run the game and see the tooltips correctly hovering
1:03:03Run the game and see the tooltips correctly hovering
1:03:03Run the game and see the tooltips correctly hovering
1:03:46Q&A
🗩
1:03:46Q&A
🗩
1:03:46Q&A
🗩
1:05:31internal_static_void Is internal a #define static internal
🗪
1:05:31internal_static_void Is internal a #define static internal
🗪
1:05:31internal_static_void Is internal a #define static internal
🗪
1:05:39anonymous519 Could you talk a bit about the metaprogramming stuff you use at work? I'm kind of annoyed at the limitations of C/C++ and it looks like the JAI compiler won't be released anytime soon. Do you actually parse the code and construct an AST, or is it simpler than that?
🗪
1:05:39anonymous519 Could you talk a bit about the metaprogramming stuff you use at work? I'm kind of annoyed at the limitations of C/C++ and it looks like the JAI compiler won't be released anytime soon. Do you actually parse the code and construct an AST, or is it simpler than that?
🗪
1:05:39anonymous519 Could you talk a bit about the metaprogramming stuff you use at work? I'm kind of annoyed at the limitations of C/C++ and it looks like the JAI compiler won't be released anytime soon. Do you actually parse the code and construct an AST, or is it simpler than that?
🗪
1:05:57internal_static_void Also, are you a fan of templates or do you use void * instead
🗪
1:05:57internal_static_void Also, are you a fan of templates or do you use void * instead
🗪
1:05:57internal_static_void Also, are you a fan of templates or do you use void * instead
🗪
1:06:09mr4thdimention Why was the grouping approach for speeding up the debug sorting the first one you tried? Would it have been better in some way?
🗪
1:06:09mr4thdimention Why was the grouping approach for speeding up the debug sorting the first one you tried? Would it have been better in some way?
🗪
1:06:09mr4thdimention Why was the grouping approach for speeding up the debug sorting the first one you tried? Would it have been better in some way?
🗪
1:08:31internal_static_void So would you recommend using a .bat file or bash script over a cmake file, for instance
🗪
1:08:31internal_static_void So would you recommend using a .bat file or bash script over a cmake file, for instance
🗪
1:08:31internal_static_void So would you recommend using a .bat file or bash script over a cmake file, for instance
🗪
1:09:41internal_static_void And finally, at your work are there any people that program in OOP, or are they shunned and thrown out?
🗪
1:09:41internal_static_void And finally, at your work are there any people that program in OOP, or are they shunned and thrown out?
🗪
1:09:41internal_static_void And finally, at your work are there any people that program in OOP, or are they shunned and thrown out?
🗪
1:11:04dr_s80 Related to yesterday's sim region issue, would it be feasible to merge overlapping regions, and then make a pass to slice it back up into non-overlapping regions?
🗪
1:11:04dr_s80 Related to yesterday's sim region issue, would it be feasible to merge overlapping regions, and then make a pass to slice it back up into non-overlapping regions?
🗪
1:11:04dr_s80 Related to yesterday's sim region issue, would it be feasible to merge overlapping regions, and then make a pass to slice it back up into non-overlapping regions?
🗪
1:11:30sean_bryant Can you imagine any scenarios where batched rendering might be useful in Handmade Hero?
🗪
1:11:30sean_bryant Can you imagine any scenarios where batched rendering might be useful in Handmade Hero?
🗪
1:11:30sean_bryant Can you imagine any scenarios where batched rendering might be useful in Handmade Hero?
🗪
1:12:06anonymous519 I've only recently started to think about metaprogramming. Not expecting you to go in-depth, but could you briefly list some of the features you've implemented?
🗪
1:12:06anonymous519 I've only recently started to think about metaprogramming. Not expecting you to go in-depth, but could you briefly list some of the features you've implemented?
🗪
1:12:06anonymous519 I've only recently started to think about metaprogramming. Not expecting you to go in-depth, but could you briefly list some of the features you've implemented?
🗪
1:12:24longboolean Will you be composing the music / SFX for Handmade Hero (if any) or do you have someone else doing that?
🗪
1:12:24longboolean Will you be composing the music / SFX for Handmade Hero (if any) or do you have someone else doing that?
🗪
1:12:24longboolean Will you be composing the music / SFX for Handmade Hero (if any) or do you have someone else doing that?
🗪
1:14:44That's about it
🗩
1:14:44That's about it
🗩
1:14:44That's about it
🗩