mutter/src
Daniel van Vugt 7a0bc5af7f background: Limit mipmap levels to avoid loss of visible detail
When the wallpaper image is larger than the monitor resolution we already
use mipmapping to scale it down smoothly in hardware. We use
`GL_TEXTURE_MIN_FILTER` = `GL_LINEAR_MIPMAP_LINEAR` for the highest quality
scaling that GL can do. However that option is designed for 3D use cases
where the mipmap level is changing over time or space.

Since our wallpaper is not changing distance from us we can improve the
rendering quality even more than `GL_LINEAR_MIPMAP_LINEAR`. To do this we
now set `GL_TEXTURE_MAX_LEVEL` (if available) to limit the mipmap level or
blurriness level to the lowest resolution (highest level) that is still
equal to or higher than the monitor itself. This way we get the benefits
of mipmapping (downscaling in hardware) *and* retain the maximum possible
sharpness for the monitor resolution -- something that
`GL_LINEAR_MIPMAP_LINEAR` alone doesn't do.

Example:

  Monitor is 1920x1080
  Wallpaper photo is 4000x3000
  Mipmaps stored on the GPU are 4000x3000, 2000x1500, 1000x750, ...

  Before: You would see an average of the 2000x1500 and 1000x750 images.
  After:  You will now only see the 2000x1500 image, linearly sampled.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/1003
2020-05-13 09:37:31 +00:00
..
backends tests/monitor-transform: Also test invert() 2020-05-13 08:19:42 +00:00
compositor background: Limit mipmap levels to avoid loss of visible detail 2020-05-13 09:37:31 +00:00
core core/place: Use work area when centering new window. 2020-05-09 09:47:42 +00:00
meta remote-access-controller: Allow inhibiting remote access 2020-04-27 14:31:06 +00:00
tests tests: Move monitor test functions into common utils 2020-05-13 08:38:40 +00:00
ui window/x11: Use G_DECLARE_DERIVABLE_TYPE() 2020-04-16 14:08:19 +02:00
wayland wayland/surface: Connect to "output-destroyed" in surface_entered_output 2020-05-11 18:06:58 +00:00
x11 x11: Allow X11 clients to clear the selection 2020-04-21 21:32:53 +00:00
libmutter.pc.in
meson.build screen-cast: Add RecordArea for screen cast arbitrary area 2020-04-23 14:45:53 +00:00
meta-marshal.list
org.freedesktop.login1.xml
org.gnome.Mutter.DisplayConfig.xml monitor-manager: Remove "supports-mirroring" from D-Bus desciption file 2020-05-08 06:50:16 +00:00
org.gnome.Mutter.IdleMonitor.xml
org.gnome.Mutter.RemoteDesktop.xml Fix typo in RemoteDesktop dbus api 2019-05-22 16:21:57 +02:00
org.gnome.Mutter.ScreenCast.xml screen-cast: Add RecordArea for screen cast arbitrary area 2020-04-23 14:45:53 +00:00