- Moves `Transform` into utils::geometry
- Changes conversion from and into buffer-coordinates to take
`Transform` arguments.
- `Renderer` take `Buffer`-space damage now
- buffer_transform is taken into account everywhere
Up until now we always redrew the whole windows, which worked
fine - except for some transparency issues - but left performance
on the table.
So now we use instancing to render only the actually damaged regions
inside the window, which also fixes our few rendering issues.
We also use a shader now for clearing the screen to use instancing as
well and lower the amount of draw calls at the begin of a frame for
clearing parts of it.
And while we are add it we remove the last rendering artifacts
by optimizing the damage vector by deduplicating and merging rectangles.
expose output from output map and return a reference
in find
change scale with keyboard shortcut
scale input coordinates and render location
according to output_scale
scale buffers during rendering
adapt window locations on output scale
change to that the location will appear
to be stable
scale udev pointer location on output scale
change to make the pointer location appear stable
Use a UserDataMap to store the udev output id
Short names for udev outputs for easier output
scale configuration
This changes the state handling logic of wl_surface to automatically
track subsurface pending in the form of transactions. The role enum
(and the associated type parameter) is no more, and replaced by a
general-purpose typemap-like container on surfaces.
The new logic is introduced in the files:
- `src/wayland/compositor/cache.rs`
- `src/wayland/compositor/transaction.rs`
The rest of the PR is the fallout of these changes, as well as a few
trivial clippy fixes.