summaryrefslogtreecommitdiff
path: root/WindowServer/WSClientConnection.h
AgeCommit message (Collapse)Author
2019-02-20Rework the rendering model so that clients instantiate backing stores.Andreas Kling
This makes interactive resizing work a lot better, althought it's still not perfect. There are still glitches and unpleasant flashes of zeroed memory.
2019-02-19WindowServer: Support windows with alpha channels. And per-WSWindow opacity.Andreas Kling
This patch also adds a Format concept to GraphicsBitmap. For now there are only two formats: RGB32 and RGBA32. Windows with alpha channel have their backing stores created in the RGBA32 format. Use this to make Terminal windows semi-transparent for that comfy rice look. There is one problem here, in that window compositing overdraw incurs multiple passes of blending of the same pixels. This leads to a mismatch in opacity which is obviously not good. I will work on this in a later patch. The alpha blending is currently straight C++. It should be relatively easy to optimize this using SSE instructions. For now I'm just happy with the cute effect. :^)
2019-02-17Move WindowServer to userspace.Andreas Kling
This is a monster patch that required changing a whole bunch of things. There are performance and stability issues all over the place, but it works. Pretty cool, I have to admit :^)
2019-02-16WindowServer: Prune more kernel-related gunk.Andreas Kling
2019-02-16Kernel: Add a simple shared memory API for two processes only.Andreas Kling
And use this to implement shared bitmaps between WindowServer and clients.
2019-02-15WindowServer: Rename GUI_Foo to WSAPI_Foo.Andreas Kling
2019-02-14Port the WindowServer and LibGUI to communicate through local sockets.Andreas Kling
This is really cool! :^) Apps currently refuse to start if the WindowServer isn't listening on the socket in /wsportal. This makes sense, but I guess it would also be nice to have some sort of "wait for server on startup" mode. This has performance issues, and I'll work on those, but this stuff seems to actually work and I'm very happy with that.
2019-02-14WindowServer: Add WSClientConnection::create_bitmap().Andreas Kling
There we go. Now WSWindow doesn't know about Process at all.
2019-02-14WindowServer: Add WSClientConnection::post_message().Andreas Kling
This way WSWindow doesn't have to grab at the Process.
2019-02-14WindowServer: Post error messages to clients on protocol failure.Andreas Kling
2019-02-14WindowServer: Refactor WSClientConnection to have one function per request.Andreas Kling
This is a lot nicer than the big switch full of code. This stuff has a bit of a "please generate me instead" vibe to it, but I need to mess around with it some more to figure out what the needs are. This patch also unbreaks global cursor tracking, which was forgotten in the big messaging refactoring.
2019-02-14WindowServer: Add WSClientConnection class to manage an individual client.Andreas Kling
This makes both object lifetimes and object ID's a lot easier to understand.