Drawing Debug Diagrams
?
?

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:00Recap and set the stage for the day
🗩
0:00Recap and set the stage for the day
🗩
0:00Recap and set the stage for the day
🗩
1:28Conditionally define HANDMADE_DIAGRAMS to HANDMADE_INTERNAL
1:28Conditionally define HANDMADE_DIAGRAMS to HANDMADE_INTERNAL
1:28Conditionally define HANDMADE_DIAGRAMS to HANDMADE_INTERNAL
2:01Prepare to draw our diagrams
📖
2:01Prepare to draw our diagrams
📖
2:01Prepare to draw our diagrams
📖
3:21Demo the debug overlays and plan our diagram drawing and filtering
🏃
3:21Demo the debug overlays and plan our diagram drawing and filtering
🏃
3:21Demo the debug overlays and plan our diagram drawing and filtering
🏃
9:31Determine to move the entity debug visualisation into the diagramming system
📖
9:31Determine to move the entity debug visualisation into the diagramming system
📖
9:31Determine to move the entity debug visualisation into the diagramming system
📖
11:18Change MoveEntity(), RefineVoxelPlacement() and UpdateBest() to use our diagramming system, introducing a version of DIAGRAM_Color() that takes R, G and B separately
11:18Change MoveEntity(), RefineVoxelPlacement() and UpdateBest() to use our diagramming system, introducing a version of DIAGRAM_Color() that takes R, G and B separately
11:18Change MoveEntity(), RefineVoxelPlacement() and UpdateBest() to use our diagramming system, introducing a version of DIAGRAM_Color() that takes R, G and B separately
17:41Our old debug visualisation is gone
🏃
17:41Our old debug visualisation is gone
🏃
17:41Our old debug visualisation is gone
🏃
18:12Force AddPlayer() to let the glove pass our diagramming filter
18:12Force AddPlayer() to let the glove pass our diagramming filter
18:12Force AddPlayer() to let the glove pass our diagramming filter
19:41Hit an assertion on DEBUG_RECORD_ALLOCATION() via a DIAGRAM_Text() call in ShapesCollide()
🏃
19:41Hit an assertion on DEBUG_RECORD_ALLOCATION() via a DIAGRAM_Text() call in ShapesCollide()
🏃
19:41Hit an assertion on DEBUG_RECORD_ALLOCATION() via a DIAGRAM_Text() call in ShapesCollide()
🏃
20:59Investigate our DEBUG_RECORD_ALLOCATION() assertion hit
📖
20:59Investigate our DEBUG_RECORD_ALLOCATION() assertion hit
📖
20:59Investigate our DEBUG_RECORD_ALLOCATION() assertion hit
📖
22:02Try disabling the diagramming in ShapesCollide()
22:02Try disabling the diagramming in ShapesCollide()
22:02Try disabling the diagramming in ShapesCollide()
22:27No longer hit that DEBUG_RECORD_ALLOCATION() assertion
🏃
22:27No longer hit that DEBUG_RECORD_ALLOCATION() assertion
🏃
22:27No longer hit that DEBUG_RECORD_ALLOCATION() assertion
🏃
23:04Add an assertion in RenderDiagrams()
23:04Add an assertion in RenderDiagrams()
23:04Add an assertion in RenderDiagrams()
23:58Never hit that assertion in RenderDiagrams()
🏃
23:58Never hit that assertion in RenderDiagrams()
🏃
23:58Never hit that assertion in RenderDiagrams()
🏃
24:06Make UpdateAndRenderWorld() call RenderDiagrams()
24:06Make UpdateAndRenderWorld() call RenderDiagrams()
24:06Make UpdateAndRenderWorld() call RenderDiagrams()
25:04Implement RenderDiagrams()
25:04Implement RenderDiagrams()
25:04Implement RenderDiagrams()
30:19Consider not buffering the diagrams
📖
30:19Consider not buffering the diagrams
📖
30:19Consider not buffering the diagrams
📖
32:31Continue to implement RenderDiagrams()
32:31Continue to implement RenderDiagrams()
32:31Continue to implement RenderDiagrams()
33:52Our glove's collision diagrams are not drawn
🏃
33:52Our glove's collision diagrams are not drawn
🏃
33:52Our glove's collision diagrams are not drawn
🏃
34:05Quickly sanity check the diagramming code
📖
34:05Quickly sanity check the diagramming code
📖
34:05Quickly sanity check the diagramming code
📖
34:32Make RenderDiagrams() reset the Current diagram_attributes upon finishing the Diagram_Box case
34:32Make RenderDiagrams() reset the Current diagram_attributes upon finishing the Diagram_Box case
34:32Make RenderDiagrams() reset the Current diagram_attributes upon finishing the Diagram_Box case
35:06Step through RenderDiagrams()
🏃
35:06Step through RenderDiagrams()
🏃
35:06Step through RenderDiagrams()
🏃
38:01Our glove's collision diagrams are drawn after all, in -Od
🏃
38:01Our glove's collision diagrams are drawn after all, in -Od
🏃
38:01Our glove's collision diagrams are drawn after all, in -Od
🏃
38:46Our glove's collision diagrams are also drawn in -O2
🏃
38:46Our glove's collision diagrams are also drawn in -O2
🏃
38:46Our glove's collision diagrams are also drawn in -O2
🏃
39:04Decrease Sticky.Thick from 0.1f to 0.01f in RenderDiagrams()
🏃
39:04Decrease Sticky.Thick from 0.1f to 0.01f in RenderDiagrams()
🏃
39:04Decrease Sticky.Thick from 0.1f to 0.01f in RenderDiagrams()
🏃
39:22Our diagramming system is in action
🏃
39:22Our diagramming system is in action
🏃
39:22Our diagramming system is in action
🏃
40:19Implement the Diagram_Line case in RenderDiagrams()
40:19Implement the Diagram_Line case in RenderDiagrams()
40:19Implement the Diagram_Line case in RenderDiagrams()
42:14Change the v3 Color in diagram_attributes to be a v4, augmenting diagram_entry with separate Color and Thick values
42:14Change the v3 Color in diagram_attributes to be a v4, augmenting diagram_entry with separate Color and Thick values
42:14Change the v3 Color in diagram_attributes to be a v4, augmenting diagram_entry with separate Color and Thick values
43:46Implement the Diagram_Point case in RenderDiagrams()
43:46Implement the Diagram_Point case in RenderDiagrams()
43:46Implement the Diagram_Point case in RenderDiagrams()
45:15Reacquaint ourselves with our text rendering
📖
45:15Reacquaint ourselves with our text rendering
📖
45:15Reacquaint ourselves with our text rendering
📖
50:30Fix RenderDiagrams() to pass RenderGroup->WhiteTexture to PushCube()
50:30Fix RenderDiagrams() to pass RenderGroup->WhiteTexture to PushCube()
50:30Fix RenderDiagrams() to pass RenderGroup->WhiteTexture to PushCube()
51:16Enable diagramming in ShapesCollide() when its Result is true
51:16Enable diagramming in ShapesCollide() when its Result is true
51:16Enable diagramming in ShapesCollide() when its Result is true
52:24Try out our collision-based diagramming
🏃
52:24Try out our collision-based diagramming
🏃
52:24Try out our collision-based diagramming
🏃
53:02Consider putting filtering into the system
📖
53:02Consider putting filtering into the system
📖
53:02Consider putting filtering into the system
📖
54:10Diagramming in The Witness: Capturing diagrams over multiple frames
🏃
54:10Diagramming in The Witness: Capturing diagrams over multiple frames
🏃
54:10Diagramming in The Witness: Capturing diagrams over multiple frames
🏃
56:57Interpret our collision-based diagramming
🏃
56:57Interpret our collision-based diagramming
🏃
56:57Interpret our collision-based diagramming
🏃
59:39Determine to add a "Capture" button to remember diagrams, which we may then "Step" through
🏃
59:39Determine to add a "Capture" button to remember diagrams, which we may then "Step" through
🏃
59:39Determine to add a "Capture" button to remember diagrams, which we may then "Step" through
🏃
1:00:57Augment diagram_group with a Captured boolean, introducing DIAGRAM_Capture()
1:00:57Augment diagram_group with a Captured boolean, introducing DIAGRAM_Capture()
1:00:57Augment diagram_group with a Captured boolean, introducing DIAGRAM_Capture()
1:03:56Add a "Capture" / "Resume" button in CollisionEditor(), introducing DIAGRAM_IsCaptured()
1:03:56Add a "Capture" / "Resume" button in CollisionEditor(), introducing DIAGRAM_IsCaptured()
1:03:56Add a "Capture" / "Resume" button in CollisionEditor(), introducing DIAGRAM_IsCaptured()
1:07:10Try out our "Capture" button
🏃
1:07:10Try out our "Capture" button
🏃
1:07:10Try out our "Capture" button
🏃
1:08:32Remove SingleStep and StepLatch from game_mode_world
1:08:32Remove SingleStep and StepLatch from game_mode_world
1:08:32Remove SingleStep and StepLatch from game_mode_world
1:09:26Molly: Meow
🐱
1:09:26Molly: Meow
🐱
1:09:26Molly: Meow
🐱
1:11:49Reinstate SingleStep and StepLatch in game_mode_world
1:11:49Reinstate SingleStep and StepLatch in game_mode_world
1:11:49Reinstate SingleStep and StepLatch in game_mode_world
1:12:17Try "Single Stepping"
🏃
1:12:17Try "Single Stepping"
🏃
1:12:17Try "Single Stepping"
🏃