ladybird/Userland/Services
Tom 220886db4c WindowServer: Fix compositor overdraw issues related to transparency
We were re-rendering areas that were considered transparency areas even
though they weren't transparency areas or were occluded by opaque
areas.

In order to fix this, we need to be a bit smarter about what is above
and below any given window. Even though a window may have transparent
areas, if those are occluded by opaque window areas on top they are
not actually any areas that should be rendered at all. And the opposite
also applies, opaque window areas for windows below that are occluded
by transparent areas, do need to be rendered as transparency. This
solves the problem of unnecessary transparency areas.

The other problem is that we need to know what areas of a window's
dirty rectangles affect other windows, and where. Basically any
opaque area that is somehow below a transparent area that isn't
otherwise occluded, and any transparent area above any other window
area (transparent or opaque) needs to be marked dirty prior to
composing. This makes sure that all affected windows render these
areas in the correct order. To track these, we now have a map of
affected windows and the rectangles that are affected (because not all
of that window's transparency areas may be affected).
2021-07-18 18:39:20 +02:00
..
AudioServer LibThreading: Rename Lock => Mutex 2021-07-09 11:15:50 +02:00
ChessEngine ChessEngine: Don't call non-constexpr sqrt in a constexpr intiializer 2021-07-08 10:11:00 +02:00
Clipboard Everywhere: Use IPC include syntax 2021-07-03 12:16:00 +02:00
CrashDaemon LibCoreDump: Include source locations of inlined functions in backtrace 2021-06-19 14:51:18 +02:00
DHCPClient Everywhere: Add component declarations 2021-06-17 11:03:51 +02:00
EchoServer Everywhere: Add component declarations 2021-06-17 11:03:51 +02:00
FileOperation AK+Everywhere: Add and use static APIs for LexicalPath 2021-06-30 11:13:54 +02:00
FileSystemAccessServer FileSystemAccessServer: Add expose_window_server_client_id() 2021-07-18 17:21:28 +02:00
ImageDecoder Everywhere: Use IPC include syntax 2021-07-03 12:16:00 +02:00
InspectorServer InspectorServer: Use LocalSocket method to get pid 2021-07-01 17:49:18 +02:00
KeyboardPreferenceLoader KeyboardPreferenceLoader: Use correct default Num Lock config value 2021-07-13 23:25:07 +02:00
LaunchServer Everywhere: Use IPC include syntax 2021-07-03 12:16:00 +02:00
LookupServer Everywhere: Add braces to aggregate initializers 2021-07-08 10:11:00 +02:00
NotificationServer Everywhere: Use IPC include syntax 2021-07-03 12:16:00 +02:00
RequestServer Everywhere: Use IPC include syntax 2021-07-03 12:16:00 +02:00
SpiceAgent SpiceAgent: Add Clipboard as a build dependency 2021-07-15 11:51:16 +02:00
SQLServer LibSQL+SQLServer: Build SQLServer system service 2021-07-08 17:55:59 +04:30
SystemServer SystemServer+Meta: Use the new SysFS 2021-06-29 20:53:59 +02:00
Taskbar TaskbarWindow: Redraw start button when default font changes 2021-07-12 11:08:09 +02:00
TelnetServer Everywhere: Add component declarations 2021-06-17 11:03:51 +02:00
WebContent LibWeb: Add OOPWV IPC for selecting all text 2021-07-14 17:16:39 +02:00
WebServer Everywhere: Add component declarations 2021-06-17 11:03:51 +02:00
WebSocket Everywhere: Use IPC include syntax 2021-07-03 12:16:00 +02:00
WindowServer WindowServer: Fix compositor overdraw issues related to transparency 2021-07-18 18:39:20 +02:00
CMakeLists.txt SpiceAgent: Add a new spice agent service :^) 2021-07-14 12:33:07 +02:00