Victor Brekenfeld
bb1e68c916
space: Add support for drawing custom elements
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
827a3c8c2a
desktop: Fixup intersection calls
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
a948ff8829
space: commit does not need mutable self
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
a20fd0c65d
window: cache bbox
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
d84a66e053
desktop: api cleanups
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
d7350d18ee
desktop: fix negative damage values
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
94968e2d0f
desktop: track damage per space/output
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
3b39d780fe
desktop: layer-shell support
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
cea88fdde0
desktop: Various cleanups
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
31b308836f
renderer: Use fine grained damage for rendering
...
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.
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
f55f1bbbe0
desktop: handle xdg-popups
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
90f7d53a3a
space: fixup miscalculations
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
25b74e2eaa
space: change output_for_window to return Vec
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
7578fab9cf
desktop: map_window remove unnecessary Result and activate
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
2c0ae025de
desktop: Track surface enter/leave for outputs
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
44829d8fba
desktop: Only render surface damage, if window was not moved
2022-01-04 12:50:39 +01:00
Victor Brekenfeld
98906555f5
desktop: Add new desktop abstractions module
...
Adds a new `Window` and `Space` abstraction to make it easier
to handle windows of various shells and their positions in a
compositor space.
2022-01-04 12:50:39 +01:00