Implementing a Radial Menu
?
?

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:07Recap and plan for today
0:07Recap and plan for today
0:07Recap and plan for today
1:31Try something epically ridiculousα
1:31Try something epically ridiculousα
1:31Try something epically ridiculousα
3:02We want to be able to turn on and off parts of the debug interface
3:02We want to be able to turn on and off parts of the debug interface
3:02We want to be able to turn on and off parts of the debug interface
4:30At the moment, the live looped code editing overrides our input, so it precludes interaction with the debug UI
4:30At the moment, the live looped code editing overrides our input, so it precludes interaction with the debug UI
4:30At the moment, the live looped code editing overrides our input, so it precludes interaction with the debug UI
5:17Using the right mouse button as a "clutch"
5:17Using the right mouse button as a "clutch"
5:17Using the right mouse button as a "clutch"
6:32Turning on and off the profiler
6:32Turning on and off the profiler
6:32Turning on and off the profiler
7:43Start writing code at the place you know how to code
7:43Start writing code at the place you know how to code
7:43Start writing code at the place you know how to code
9:49Drawing a radial menu
9:49Drawing a radial menu
9:49Drawing a radial menu
10:48Let's pretend we have some menu items
10:48Let's pretend we have some menu items
10:48Let's pretend we have some menu items
12:15Drawing the menu items
12:15Drawing the menu items
12:15Drawing the menu items
13:40(Blackboard) Positioning text strings around a circle
13:40(Blackboard) Positioning text strings around a circle
13:40(Blackboard) Positioning text strings around a circle
16:19Implementing Arm2
16:19Implementing Arm2
16:19Implementing Arm2
18:15Testing it. Looks OK, but are the labels centered?
18:15Testing it. Looks OK, but are the labels centered?
18:15Testing it. Looks OK, but are the labels centered?
18:30Marking the center of the circle
18:30Marking the center of the circle
18:30Marking the center of the circle
20:32Centering the text
20:32Centering the text
20:32Centering the text
22:00The code required to measure the dimension of labels has much in common with the code that draws them. Let's make sure the implementation of those operations does not fall out of sync
22:00The code required to measure the dimension of labels has much in common with the code that draws them. Let's make sure the implementation of those operations does not fall out of sync
22:00The code required to measure the dimension of labels has much in common with the code that draws them. Let's make sure the implementation of those operations does not fall out of sync
24:57Pulling the bitmap size computation out of PushBitmap to make it callable from other functions
24:57Pulling the bitmap size computation out of PushBitmap to make it callable from other functions
24:57Pulling the bitmap size computation out of PushBitmap to make it callable from other functions
28:49Defining debug_text_op
28:49Defining debug_text_op
28:49Defining debug_text_op
29:43PushBitmap will ignore non-loaded bitmaps
29:43PushBitmap will ignore non-loaded bitmaps
29:43PushBitmap will ignore non-loaded bitmaps
32:11Pre-pushing the debug font at DEBUGStart
32:11Pre-pushing the debug font at DEBUGStart
32:11Pre-pushing the debug font at DEBUGStart
35:00Fixing some compilation errors
35:00Fixing some compilation errors
35:00Fixing some compilation errors
36:10Computing the dimensions of a text string by computing the union of the rectangles of each of its glyphs
36:10Computing the dimensions of a text string by computing the union of the rectangles of each of its glyphs
36:10Computing the dimensions of a text string by computing the union of the rectangles of each of its glyphs
39:00Implementing the rectangle2 version of the inverted infinity rectangle
39:00Implementing the rectangle2 version of the inverted infinity rectangle
39:00Implementing the rectangle2 version of the inverted infinity rectangle
42:26Testing our new code. Implementing DEBUGGetTextSize
42:26Testing our new code. Implementing DEBUGGetTextSize
42:26Testing our new code. Implementing DEBUGGetTextSize
43:39Drawing the boundaries of the text labels to check their placement
43:39Drawing the boundaries of the text labels to check their placement
43:39Drawing the boundaries of the text labels to check their placement
45:30The placement of the labels is exact
45:30The placement of the labels is exact
45:30The placement of the labels is exact
45:40Some thoughts on the "operation" code transformation
45:40Some thoughts on the "operation" code transformation
45:40Some thoughts on the "operation" code transformation
47:01Centering the labels
47:01Centering the labels
47:01Centering the labels
48:17Finding out the menu index closest to the mouse pointer to change its color
48:17Finding out the menu index closest to the mouse pointer to change its color
48:17Finding out the menu index closest to the mouse pointer to change its color
53:14Activating menu items
53:14Activating menu items
53:14Activating menu items
53:37Do something like thisβ
53:37Do something like thisβ
53:37Do something like thisβ
56:30Testing it
56:30Testing it
56:30Testing it
58:39Placing the radial menu relative to the mouse position at the time it was invoked
58:39Placing the radial menu relative to the mouse position at the time it was invoked
58:39Placing the radial menu relative to the mouse position at the time it was invoked
59:53Coming attractions
59:53Coming attractions
59:53Coming attractions
1:00:37Q&A
🗩
1:00:37Q&A
🗩
1:00:37Q&A
🗩
1:01:04andsz_ I think you added v3.xy for v3-to-v2 conversion
🗪
1:01:04andsz_ I think you added v3.xy for v3-to-v2 conversion
🗪
1:01:04andsz_ I think you added v3.xy for v3-to-v2 conversion
🗪
1:01:46elxenoaizd Even if the menus in the circle get cluttered, we could make it so that each button in the circle lead us to another circle / layer / subset of buttons
🗪
1:01:46elxenoaizd Even if the menus in the circle get cluttered, we could make it so that each button in the circle lead us to another circle / layer / subset of buttons
🗪
1:01:46elxenoaizd Even if the menus in the circle get cluttered, we could make it so that each button in the circle lead us to another circle / layer / subset of buttons
🗪
1:02:17Sharlock93 Can you explain a bit more on that closure stuff and how to do it in C? I didn't quite understand it
🗪
1:02:17Sharlock93 Can you explain a bit more on that closure stuff and how to do it in C? I didn't quite understand it
🗪
1:02:17Sharlock93 Can you explain a bit more on that closure stuff and how to do it in C? I didn't quite understand it
🗪
1:07:57ijustwantfood Why did you use radial menu over list or another format?
🗪
1:07:57ijustwantfood Why did you use radial menu over list or another format?
🗪
1:07:57ijustwantfood Why did you use radial menu over list or another format?
🗪
1:08:24elxenoaizd It would be cool if the menu items are aligned with the circle borders, that way there's less chance of the text colliding
🗪
1:08:24elxenoaizd It would be cool if the menu items are aligned with the circle borders, that way there's less chance of the text colliding
🗪
1:08:24elxenoaizd It would be cool if the menu items are aligned with the circle borders, that way there's less chance of the text colliding
🗪
1:08:38elxenoaizd You mentioned C doesn't officially support closures. Did you ever make an attempt to hack it, maybe via 'functors' or something like that?
🗪
1:08:38elxenoaizd You mentioned C doesn't officially support closures. Did you ever make an attempt to hack it, maybe via 'functors' or something like that?
🗪
1:08:38elxenoaizd You mentioned C doesn't officially support closures. Did you ever make an attempt to hack it, maybe via 'functors' or something like that?
🗪
1:09:00ScorpionResponse Have you ever considered a debug output for the stream where we can see your keystrokes?
🗪
1:09:00ScorpionResponse Have you ever considered a debug output for the stream where we can see your keystrokes?
🗪
1:09:00ScorpionResponse Have you ever considered a debug output for the stream where we can see your keystrokes?
🗪
1:09:23Anticipate mr4thdimention's editor 4coder
1:09:23Anticipate mr4thdimention's editor 4coder
1:09:23Anticipate mr4thdimention's editor 4coder
1:09:42elxenoaizd Oftentimes when using somebody else's API / engine you end up having to 'fight' with it to have it do what you want from it. Do you think that is a sign that one should leave that API and try another / write his own instead of 'fighting' all the time?
🗪
1:09:42elxenoaizd Oftentimes when using somebody else's API / engine you end up having to 'fight' with it to have it do what you want from it. Do you think that is a sign that one should leave that API and try another / write his own instead of 'fighting' all the time?
🗪
1:09:42elxenoaizd Oftentimes when using somebody else's API / engine you end up having to 'fight' with it to have it do what you want from it. Do you think that is a sign that one should leave that API and try another / write his own instead of 'fighting' all the time?
🗪
1:15:18powerc9k Are you ready for the world to end tomorrow as predicted by crazy Christians?
🗪
1:15:18powerc9k Are you ready for the world to end tomorrow as predicted by crazy Christians?
🗪
1:15:18powerc9k Are you ready for the world to end tomorrow as predicted by crazy Christians?
🗪
1:15:33Psi9 Since draw rectangle quickly is in its own translation unit, are you going to write that code in straight ASM instead of C / intrinsics?
🗪
1:15:33Psi9 Since draw rectangle quickly is in its own translation unit, are you going to write that code in straight ASM instead of C / intrinsics?
🗪
1:15:33Psi9 Since draw rectangle quickly is in its own translation unit, are you going to write that code in straight ASM instead of C / intrinsics?
🗪
1:15:50cubercaleb Wait, isn't 4coder already better than Emacs?
🗪
1:15:50cubercaleb Wait, isn't 4coder already better than Emacs?
🗪
1:15:50cubercaleb Wait, isn't 4coder already better than Emacs?
🗪
1:16:10cubercaleb Can you go into detail on I/O Completion Ports since you brought them up?
🗪
1:16:10cubercaleb Can you go into detail on I/O Completion Ports since you brought them up?
🗪
1:16:10cubercaleb Can you go into detail on I/O Completion Ports since you brought them up?
🗪
1:16:25Wind it down
🗩
1:16:25Wind it down
🗩
1:16:25Wind it down
🗩