The main ones seem to be (based on Wikipedia entries):
- X11 (Linux)
- Wayland (Linux)
- Mir (Linux)
- SurfaceFlinger (Android)
- Quartz Compositor (Mac)
- Desktop Window Manager (Windows)
As far as I know, no! It's up to you and me to develop such thing on our own. Again: As far as I know.quadrant wrote:Is there a "tutorial-like" display server out there, that has the barest minimum of what's needed to get the most basic functionality?
Wayland is probably going to be as minimal as it gets.The design is pretty simple: The server accesses the frame buffer and the input devices directly, and the clients only paint what they display into shared memory. There is little that could be removed from it without destroying functionality that is needed. That said, I have not looked at the source myself, so I don't know how much fluff there is.quadrant wrote: Is there a "tutorial-like" display server out there, that has the barest minimum of what's needed to get the most basic functionality?
That is one possibility, but then there is no shame in listening to Bismarck and learning from the mistakes of others, since you don't have the time to make them all yourself. My goal is to have the kernel provide access to a frame buffer and input devices, and let userspace actually do something with it. And a program like Wayland, that does just that, will come in very handy, once I am that far along.PeterX wrote:What I'm trying to say: I think you should develop a graphics stack yourself. Okay, that's just my opinion.
The end goal would be to do so. However looking for a little bit of guidance on the communication part. For example, I have a rough understanding of the,PeterX wrote:I think you should develop a graphics stack yourself
Oh, it's only one file?! Will definitely have a look, thanks for sharing!klange wrote:I don’t know how helpful it will be for you, but you can take at my compositor.
There's also the client library and various headers like the main one describing the protocol. You probably also want to look at a sample client application, or maybe something a bit more complicated. While it uses my kernel's homebrew IPC and shared memory subsystems, it should be portable to something like Unix sockets/shmem (and someone did this once, but it's both very outdated and I can't find the source for the ported version anyway).quadrant wrote:Oh, it's only one file?! Will definitely have a look, thanks for sharing!