GUI: Under the Hood - Computerphile

preview_player
Показать описание
Drawing windows and responding to events - what's going on 'under the hood' in your GUI? Dr Steve Bagley.

Thanks to David Domminney Fowler for the YouTube video featured on Steve's 'Desktop' at the end of this video.

This video was filmed and edited by Sean Riley.

Рекомендации по теме
Комментарии
Автор

More under the hood videos please. In modern times we have got so much abstraction going on most of don't know how things work at their core. Would love this series.

sortsvane
Автор

Would love an under the hood video on the gcc compiler :/

SimGunther
Автор

This is a humble request for a video about open source hardware like RISC-V

erikalm
Автор

It's super charming that someone in the Year 2019 says something like "whether you are programming for RiscOS, Atari or Amiga..." :D yup, these are still the relevant platforms. At least in my mind.

TheSquarecow
Автор

Yea... modern browser rendering engines are crazy complicated. You go through 4 separate steps - Some of these happen on the CPU, some on the GPU. When playing around with complex CSS/JS, some changes trigger all 4 steps, some trigger less and a web developer needs to be mindful of all these.

martixy
Автор

6:10 A common use for mouse-moved events is changing the mouse pointer, e.g. making it an I-beam pointer when the user moves into a text field, to indicate that they can type there.

lawrencedoliveiro
Автор

I personally prefer a crispy program to a gooey one

GeorgeNoYoutube
Автор

Would love a bigger dive how the OS handles the message loop. How one could implement such GUI without an operating system like, for example when using a custom SoC or microcontroller.

Love all your work and the way the speakers present the info. Keep up

alfawavesgrowth
Автор

I love Dr Steve Bagley; even though most of the time the very last sentence/utterance of his current train of thought makes little sense, he is exceptionally erudite for someone who is seemingly just speaking from the top of his head! Editing probably helps a tiny bit, but I love the speed and eloquence with which he can disect such a complex topic as how to code a gui OS!

notsobob
Автор

2:57 One subtle point worth noting is that the GUI framework usually handles keyboard autorepeat. That is, when you ask for another event, no “real’ event is pending, and a key is still down from the previous one, and the autorepeat interval has elapsed, then the framework will generate an autorepeat key-down event for you.


Note that these autorepeat events are not buffered, so they are only generated as quickly as your code can handle them. Thus, autorepeat can never run away from your program’s ability to respond!

lawrencedoliveiro
Автор

Now I understand where this Windows XP Not Responding Art comes from :D

KanalMcLP
Автор

I cannot not focus on his shirt pattern that is blurred and turned sharp again over and over. Now apply knowledge from picture compression video.

arm.
Автор

English caption is awful. Why won't you just enable auto generated one.

Originalimoc
Автор

Very nice video! Perhaps it could be interesting to discuss the contrast with intermediate mode GUIs as well...

mrexodia
Автор

Great detail! Video games were the original GUIs :)

yruqqey
Автор

4:03 Actually, Emacs calls them "frames", and reserves "windows" to refer to divisions within frames. Like, if you type C-x 2, the current window gets split into two. Yeah, it's non-standard terminology.

fllthdcrb
Автор

You do get loads of mouse move events in most gui frameworks.

rafagd
Автор

Yeah, Wayland does that, Wayland's entire thing is composting just like Aero and whatever the heck Apple calls their window manager these days. There's plenty of window managers for Xorg that do it too now. Most likely if you're using a full desktop environment, it's not using a traditional stacking window manager anymore.

Also, it's been a while since I've done Windows GUI stuff, I know on Qt 4 (Not sure about 5.) you DO have MouseMove events, or can. The way the MOC on Qt works is simply not to include any handler for events that aren't there at all.

I personally don't understand why more toolkits don't use callbacks instead of forcing the use of enormous switch structures, though, sort of akin to what was described in Windows. Rather than do a bit switch and an inefficient loop, just simply have the OS call a function within a program registered to the event instead.

YaroKasear
Автор

Tl;Dr: it's a huge mess eventhough it feels simple at first

Henrix
Автор

I want a video on how multiple objects (Windows/widgets) are composited on the framebuffer. I am working on a graphics library in C for fun. Basically it can draw lines, boxes, etc as of now.

I have to draw multiple such objects onto the screen and they might move based on user’s inputs. I’m thinking to have virtual framebuffer with functions that draw the respective objects from back to front so that the objects in front masks out the window in the back.

A video on that would be nice.

TNTsundar