Commit graph

1049 commits

Author SHA1 Message Date
Joshua Ashton
a3cbe5d079 steamcompmgr: Move mangoapp_update to the imageWaitThread
More correct, stops reported frametimes being all over the place if steamcompmgr is waiting for stuff to happen.
2022-01-20 07:11:40 +00:00
Joshua Ashton
ae268ec9c9 steamcompmgr: Remove 1 appid per ctx assumption, factor out primary focus + override determination 2022-01-20 07:11:40 +00:00
Joshua Ashton
80101e1932 steamcompmgr: Use overlay's ctx rather than root ctx
Makes more sense when reading
2022-01-20 07:11:40 +00:00
Joshua Ashton
4eda19aa69 steamcompmgr: Resolve transient overrides in new multi xwayland focus logic 2022-01-20 07:11:40 +00:00
Joshua Ashton
d781082888 wlserver: Make content overrides per xwayland server 2022-01-20 07:11:40 +00:00
Joshua Ashton
ac09776607 steamcompmgr: Restore per-ctx appid logic if running in single xwayland mode 2022-01-20 07:11:40 +00:00
Joshua Ashton
3556ee4174 steamcompmgr: Add some comments to what we are doing in the global focus code 2022-01-20 07:11:40 +00:00
Joshua Ashton
e7cd2dbb25 steamcompmgr: Add win_surface helper
Makes this easier to read
2022-01-20 07:11:40 +00:00
Joshua Ashton
062a2bf496 steamcompmgr: Simplify global_focus member names
Now we have an entire struct of previous_focus to go off of, we can remove the word current from them.
2022-01-20 07:11:40 +00:00
Joshua Ashton
205cfbdf87 wlserver: Add a mode for multiple xwaylands
Adds --xwayland-count to control the number of xwaylands.
2022-01-20 07:11:40 +00:00
Joshua Ashton
74236fd13f steamcompmgr: Localize gameFocused to context 2022-01-20 07:11:40 +00:00
Joshua Ashton
e29d76ef44 steamcompmgr: Fix stale keybaord focus bug
When the focus changes but the input focus does not (ie. overlay -> steam) the keyboard focus can be left behind on the game, which is not what we want.

Track this more ganularly.
2022-01-20 07:11:40 +00:00
Joshua Ashton
e8faa8647e steamcompmgr: Respect global focus when updating wayland window surface focus 2022-01-20 07:11:40 +00:00
Joshua Ashton
0040709c30 steamcompmgr: Provide feedback about focused display, mouse focus and keyboard focus 2022-01-20 07:11:40 +00:00
Joshua Ashton
a8a1084331 steamcompmgr: Track ctx in win structure 2022-01-20 07:11:40 +00:00
Joshua Ashton
97056e7a3f steamcompmgr: Make commit wait lists per-xwayland server 2022-01-20 07:11:40 +00:00
Joshua Ashton
ca8fd6552a wlserver: Move commit queues to per-xwayland server, rather than global 2022-01-20 07:11:40 +00:00
Joshua Ashton
1536604533 wlserver: Handle mousemotion only for focused server 2022-01-20 07:11:40 +00:00
Joshua Ashton
9946d2380d steamcompmgr: Focus and paint support for multiple xwaylands 2022-01-20 07:11:40 +00:00
Joshua Ashton
ef109369f1 steamcompmgr: Use win* instead of Window for focus tracking 2022-01-20 07:11:40 +00:00
Joshua Ashton
43d9cf4e6a steamcompmgr: Initial support for multiple xwaylands
Doesn't handle focus or painting anything other than the root context yet.
2022-01-20 07:11:40 +00:00
Joshua Ashton
deb0364c05 wlserver: Move xdisplay init and ownership to xwayland_server
Allows us to bring back the sdlwindow mouse behaviour
2022-01-20 07:11:40 +00:00
Joshua Ashton
75c5617f58 steamcompmgr: Split out xwayland_ctx initialization to own function 2022-01-20 07:11:40 +00:00
Joshua Ashton
26f9942e6c wlserver: Split out xwayland_server from global wlserver state 2022-01-20 07:11:40 +00:00
Joshua Ashton
582da1d967 steamcompmgr: Split globals into xwayland_ctx_t
Doesn't fully support multiple xwaylands or have all the infrastructure for that yet. This just splits the globals out for now and passes the ctx around.
2022-01-20 07:11:40 +00:00
Joshua Ashton
905889bc39 build: Disable -Winvalid-offsetof
Clang gets annoyed when doing offsetof for wl_container_of on a
non POD structure -- but there's no virtual inheritance of anything
fancy going on so it should shut up.
2022-01-20 07:11:40 +00:00
Joshua Ashton
7357f46ac7 steamcompmgr: Update last done commit on focus change
Fixes Origin windows being in funny places when fading.
2022-01-14 21:19:18 +00:00
Georg Lehmann
78482d3f08 rendervulkan: Remove dead fence code.
This was already commented out when it was added 2 years ago, and it doesn't
seem useful.
2022-01-11 15:35:20 +01:00
Aleksei Bavshin
40b456ac56 Fix build without subprojects
In absence of subprojects meson has no reason to look for a C compiler.
But the protocol files require it to compile and thus the build would
fail with
```
meson.build:114:0: ERROR: No host machine compiler for "gamescope-xwayland-protocol.c"
```
Addres that by adding 'c' language to the project.
2022-01-11 15:31:33 +01:00
Joshua Ashton
b9cfd6dd21 steamcompmgr: Handle mangoapp for video streaming 2022-01-11 00:09:33 +00:00
Joshua Ashton
3037f37ed0 mangoapp: only send updates when window exists 2022-01-11 00:09:33 +00:00
Joshua Ashton
4deff0af27 steamcompmgr: Draw external overlay with no scale
Good enough for mangoapp for now.
We can add more control to this via. atoms for corner positioning, scaling, later.
2022-01-11 00:09:33 +00:00
Joshua Ashton
583714cffa steamcompmgr: Add NoScale window flag 2022-01-11 00:09:33 +00:00
Joshua Ashton
a8e3a40a03 steamcompmgr: Add a BlackBorders flag
Replaces the old implicit notification mode logic with something much more explicit.

We don't want to draw borders for external overlays of other sizes
2022-01-11 00:09:33 +00:00
Joshua Ashton
f65884ee4e steamcompmgr: Refactor paint_window to use flags instead of random bools 2022-01-11 00:09:33 +00:00
Joshua Ashton
49f55ed80c steamcompmgr: External overlay fixes
- Fix repainting when we get a new overlay
- Fix opacity check
- Fix atom update check for external overlays
2022-01-11 00:09:33 +00:00
FlightlessMango
0b6d3607e4 mangoapp: frametime message queue
Co-Authored-By: Martin Roukala <martin.roukala@mupuf.org>
2022-01-11 00:09:33 +00:00
Trigg
610483bd23 steamcompmgr: Implement external overlay support 2022-01-11 00:09:33 +00:00
Joshua Ashton
9a26fa583a rendervulkan: Up layer count to 6 and document the layers we have 2022-01-11 00:09:33 +00:00
Joshua Ashton
89b145dbca rendervulkan: Replace flBorderAlpha with nBorderMask of layers
Allows us to fit more layers in push constants. We never use anything other than 0/1 anyway.
2022-01-11 00:09:33 +00:00
Joshua Ashton
68a68e6bb2 drm: Fix inverted CRTC_Y when rotated
This was doing 90deg logic here, not 270deg.
2022-01-07 17:15:43 +01:00
Georg Lehmann
7c94fc3437 rendervulkan: Compact descriptor set bindings. 2022-01-05 05:02:10 +00:00
Joshua Ashton
b8f66db496 steamcompmgr: Remove valid contents check
We hold onto base commits now -- no need to fhis logic when we can just test the layer count.
2022-01-05 05:00:59 +00:00
Joshua Ashton
2accc343f8 steamcompmgr: Fix returning valid contents 2022-01-05 05:00:59 +00:00
Georg Lehmann
7c5cc5e67e rendervulkan: Rework sampler cache.
Less awkward to use and also fixes a texture leak because the shared_ptr
to the texture is no longer stored in the sampler cache.
2022-01-05 05:00:46 +00:00
Joshua Ashton
95eba7e549 drm: Don't forget about modesetting + modesetting robustness
Makes it so that we don't forget about any required modesets we need to
undertake, and makes modesetting robust by trying again when compositing
(in case the error was not mode but plane related), and falling back to
the previous mode if that fails.

If we have no mode to fall back to then we abort, same if we fail our
mode fallback commit.

Co-authored-by: Simon Ser <contact@emersion.fr>
2021-12-21 22:11:33 +01:00
badsectoracula
bbfbf0dd8d
Update SDL window title from the focused window's title
* Update SDL window title from the focused window's title.

Instead of using the default "gamescope" title for the SDL window, this
makes the SDL window title be updated with the focused window's title
whenever a window is focused or whenever the focused window's title is
changed. "gamescope" is still used whenever a title cannot be obtained.

* Call SDL_SetWindowTitle from the sdlwindow thread.

This calls SDL_SetWindowTitle from the sdlwindow thread instead of from
wherever sdlwindow_title is called. sdlwindow_title stores the title
locally to be picked up by sdlwindow_update.

* Make SDL title update bool check atomic and use a mutex for title change.

* Ensure *all* accesses to g_SDLWindowTitle are behind the mutex lock.

* The atomic bool isn't really necessary with the mutex in place, so remove it.
2021-12-21 18:27:23 +01:00
Simon Ser
c1958be1d9 Drop leftover noop.h include 2021-12-20 14:09:39 +01:00
Simon Ser
11f89c1b15 Upgrade wlroots to 0.15.0 2021-12-20 10:22:17 +01:00
Georg Lehmann
0729954674 steamcompmgr: Fix undefined state of wayland_commit_queue after move. 2021-12-19 18:14:40 +01:00