Actual rendering of window contents is not done by Wayland so it should not effect this. However wayland and the shells do some compositing, and gamma changes how any partially-transparent pixels work. In current shells these are:

1. "shadows", which are typically drawn by the client as partially-transparent black and composited over the contents of lower windows.

2. "semi-transparent" objects, such as some of the drag icons. Drawn by the clients as pre-multiplied srgb.

3. The anti-aliased edges of any non-rectangular opaque objects, such as any windows that are not rectangular, the cursor, drag icons. Depending on the application these may be srgb or linear, though the difference is hard to see.

Wayland also does scaling and rotations but the difference between linear and srgb is much smaller for these. I think the real solution for this is to allow clients to know the actual transform of their surfaces to the screen and be allowed to draw the transformed image, since this will avoid resampling and filtering, as well as letting the clients choose the color space.

I suspect that if there are two windows and one is "linear" and another is "srgb", that it will be impossible to make the "shadows" of these two windows look identical, even if the shadows are drawn in different colors and opacity. It may work for black, but not for any color shadows, and it certainly will not work for semi-transparent objects.

Therefore I feel that wayland shells should use the same compositing rules for all windows, so it is possible for them to all match.

The client is free to use linear compositing into a window but this will not change how wayland composites that window with otehrs. When drawing the "shadow" it just has to draw whatever will produce the correct srgb values in the buffer.

In the future wayland may do linear compositing. But this will change for all windows at once. The "appearance library" that should be used to draw all the widgets and shadows will be aware of this and alter how it draws them.

John Kåre Alsaker wrote:
Currently most applications are blissfully unaware of the concept of
gamma which affects pretty much all rendering operations.
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to