Skip to content

GL-renderer: stop using weston_output::current_mode

Pekka Paalanen requested to merge pq/weston:mr/glnomode into main

This MR depends on !976 (merged).

!976 (merged) introduced the framebuffer size and composited area variables in GL-renderer. This MR performs the clean-ups those new variables enabled.

All direct uses of weston_output::current_mode are replaced with the compositing area width and height. This is a small step towards decoupling renderers from weston_output which may be a long-term goal to allow renderers to flatten partial scenegraphs, e.g. a tree of sub-surfaces or render for a KMS overlay plane.

This MR also untangles output decoration (used by wayland-backend only for floating output windows) texture sizes from the decorations size in the framebuffer. There were several calculations done with the texture sizes in order to get the framebuffer size from current_mode with the assumption that decoration top/left/right/bottom area texture size equals the size in the framebuffer. Mostly this is correct, except for left/right area height. The left/right decoration texture height is 1 pixel, while the framebuffer area for left/right borders is obviously not 1 pixel high. GL-renderer took care to not use the left/right height in any calculations. (GL-renderer also vertically stretches the left/right textures to fill the left/right border area.)

Now the framebuffer size is readily available, so there is no need to reverse-engineer it from border sizes.

Merge request reports