Victor Brekenfeld
67a9478293
renderer: Properly cache shm-resource surface-global
2021-05-25 00:40:55 +02:00
Victor Berger
6bfe6e1f25
Fix damage handling to support multiple rectangles
2021-05-24 23:50:14 +02:00
Victor Brekenfeld
978ef1b393
renderer: Closure-based api
2021-05-24 23:46:03 +02:00
Victor Brekenfeld
a4f66da69f
drm: Properly expose planes for surfaces
2021-05-20 01:06:16 +02:00
Victor Brekenfeld
5e1128b973
gles2: Link texture in buffer for caching
2021-05-17 00:40:10 +02:00
Victor Brekenfeld
55b4d4b89a
shm: Release buffer as soon as possible
2021-05-16 20:08:10 +02:00
Victor Brekenfeld
c41cc9828f
renderer: Cache textures in SurfaceAttributes
2021-05-16 20:00:45 +02:00
Victor Brekenfeld
524057418e
drm: Fixup tty switching
2021-05-15 22:28:39 +02:00
Victor Brekenfeld
149c923876
cargo fmt
2021-05-15 18:17:43 +02:00
Victor Brekenfeld
b4f216d7b8
anvil: Update to new renderer changes
2021-05-15 16:12:13 +02:00
Victor Brekenfeld
5245595037
fix: Compiling anvil without egl
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
1839756f68
fix: Try shm-buffer imports, even if we do not have an egl-buffer reader...
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
52c01535d0
rustfmt
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
36bf5618ed
clippy fixes
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
ccd86cd8c1
anvil: Do not throw rendering errors away
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
795903d7e0
anvil: Fixup compiling egl support
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
0661ebebb8
anvil: Properly free textures
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
30a8693789
anvil: Reintroduce egl buffer support
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
45cd37373a
anvil: Render software cursors again
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
43d3e9cd14
anvil: Fixup udev/tty backend, so that it runs at least
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
2c9c150e5e
renderer: Remove `Frame` trait and merge into `Renderer`
...
Tracking of Frames, so that only one unique one can exist at a time
(gles does not allow multiple frames being rendered in parallel)
lead to very unfriendly lifetime-heavy code. A renderer is already
*unique*, just move the code there and add an error variant to catch
misuses.
2021-05-15 16:12:12 +02:00
Victor Brekenfeld
fb30c830d7
Fixup anvil for winit rendering
...
- Since a lot of functionality is now in smithay's rendering module
we can get rid of shm_load, shaders and the glium dependency.
- glium_drawer becomes drawing and only features some code to get from surfaces
to textures for any(!) renderer.
(Should probably moved into smithay at some point as well.)
- buffer_utils is only necessary to query the buffer size anymore.
- disable egl-buffer support temporarily
2021-05-15 16:12:12 +02:00
Victor Berger
991eba216d
Update most dependencies
2021-02-22 20:27:46 +01:00
Uli Schlachter
ff09b8e116
Use the correct position for Xwayland surfaces
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-02-19 11:38:17 +01:00
Uli Schlachter
3504182a5e
Add a new surface role for Xwayland surfaces
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-02-19 11:38:17 +01:00
Uli Schlachter
734b541ecd
Map between X11 Windows and WlSurfaces
...
Xwayland gives us a mapping between X11 window and WlSurface IDs via
special WL_SURFACE_ID messages. This commit uses these messages to find
the corresponding WlSurface. For this, the new client.get_resource API
from wayland-server is needed.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-02-19 11:38:17 +01:00
Uli Schlachter
a6c40a002b
Add an X11 EventSource to calloop
...
This commit creates an event source for calloop that receives X11 events
from the X11 server.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-02-19 11:38:17 +01:00
Uli Schlachter
df01587459
Become the X11 window manager after Xwayland startup
...
This commits adds the necessary magic incantations to become the X11 WM
after Xwayland starts.
This uses the pure-Rust implementation from x11rb, but any other X11
crate could be used as well.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-02-19 11:38:17 +01:00
Uli Schlachter
2f0dadd6ca
anvil: Add a xwayland feature
...
This commit adds an xwayland feature to anvil. Right now, this feature
doesn't do much. anvil uses the smithay code to start XWayland, but does
not do anything with it once it is running.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-02-19 11:38:17 +01:00
Victor Berger
36e11284c2
New clippy fixes
2020-11-02 10:24:55 +01:00
Victor Berger
8fde779806
Dependencies updates
2020-11-02 10:24:55 +01:00
Eric Anholt
78d28165c3
Update nix to 0.19 ( #237 )
2020-10-31 18:33:18 +01:00
Victor Berger
d3429fa37d
anvil: send frame callback before blocking to draw on winit
2020-10-26 12:52:28 +01:00
Victor Berger
5421b9675c
anvil: send millisecond time in frame callback
...
This is what the protocol requires, and apps rely on it to figure
out how long time elapsed between draws.
2020-10-26 12:52:28 +01:00
Jonas Platte
bcc8f13b2b
Fix most rustc & clippy warnings
2020-09-16 12:56:32 +02:00
Mateus Carmo M de F Barbosa
2a351d0879
Use Serial type for all serials
2020-08-27 13:07:01 +02:00
Victor Berger
49dda88c63
backend.input: keep sub-pixel precision in events
...
libinput provides sub-pixel precision for pointer motion & touch events.
Keep this precision by switching all coordinates values from input
events to f64 (rather than i32 or u32). Otherwise, values are rounded
and part of the movment is lost.
Potentially fixes #224
2020-07-13 17:56:20 +02:00
Victor Brekenfeld
9c3c3d939e
cargo fmt & lint
2020-06-28 00:25:15 +02:00
Victor Brekenfeld
3fd336aba5
anvil: GliumDrawer handle hardware cursors and track state
2020-06-28 00:23:24 +02:00
Victor Brekenfeld
bf011e8071
anvil: Introduce BufferTextures
2020-06-28 00:23:24 +02:00
Victor Brekenfeld
4930e7e8b2
anvil: create a texture per backend
2020-06-28 00:23:24 +02:00
Victor Brekenfeld
f84d6cb180
anvil/udev: do not upload a cursor every frame
2020-06-28 00:23:24 +02:00
Victor Brekenfeld
7e75a68e57
anvil: allow swapping monitors via shortcut
2020-06-28 00:23:24 +02:00
Victor Brekenfeld
33fb393383
anvil: clamp input to current output instead of full hd
2020-06-28 00:23:22 +02:00
Victor Brekenfeld
d7f800c76d
anvil: create and render to multiple outputs independently
2020-06-28 00:05:01 +02:00
Victor Brekenfeld
9fd8dd9cec
anvil: allow draw_windows to take optional output coordinates
2020-06-28 00:05:01 +02:00
Victor Brekenfeld
7b4459f649
drm: Make surfaces `Send`
2020-06-11 18:57:05 +02:00
Victor Brekenfeld
cc67764c23
make clippy happy
2020-06-11 12:16:43 +02:00
Victor Berger
a717fa36cd
backend.session: Migrate to using Signaler
...
Change the session backend to rely on Signaler to propagate its
signals. Also introduce the Linkable trait to allow generic composition
of objects needing to listen for signals.
2020-05-23 21:37:22 +02:00
Victor Berger
c3859d999b
backend.session: use pkg-config to find logind lib
...
Introduce the `backend_session_elogind` cargo feature which pulls
`backend_session_logind` and makes the logind session backend seek
`libelogind.so` instead of `libsystemd.so`.
Fixes #127
2020-05-23 21:37:22 +02:00
Victor Berger
b05c2ccbba
backend.session: rework as calloop event sources
...
Rework the Session Notifiers so that they are calloop event sources
by themselves, allowing them to be inserted by the user without the
`bind_session` dance.
Also update the logind backend to use the current dbus-rs API, rather
than the deprecated one.
2020-05-23 21:37:22 +02:00
Victor Brekenfeld
0c19a461b6
anvil: use fallback-device for gbm/nvidia
2020-05-23 00:29:32 +02:00
Victor Brekenfeld
38d3db565a
anvil: do not double initialize surfaces with multiple matching encoders
2020-05-23 00:29:32 +02:00
Victor Brekenfeld
64a57a4cc8
downgrade some recoverable errors to warnings
2020-05-12 20:03:03 +02:00
Victor Brekenfeld
f1c40f7306
lint: fmt & clippy
2020-05-12 20:03:03 +02:00
Victor Brekenfeld
7518f8c0f7
anvil: retry initial renderings
2020-05-12 19:47:10 +02:00
Victor Berger
b708f88da6
anvil: Fuse InputHandler into AnvilState
2020-05-12 08:46:34 +02:00
Victor Berger
8f543eb597
backend.input: rework libinput as a calloop source
2020-05-12 08:46:34 +02:00
Victor Berger
5552c81a32
anvil: Introduce InputInitData to simplify function prototypes
2020-05-02 13:27:35 +02:00
Victor Berger
35d8cea547
anvil: Introduce RenderTextureSpec to simplify render_texture
2020-05-02 13:27:35 +02:00
Victor Berger
64aedce01f
anvil: Introduce ShellHandle type to simply return values
2020-05-02 13:27:35 +02:00
Victor Berger
743a80c004
anvil: remove unused imports
2020-05-02 13:27:35 +02:00
Victor Brekenfeld
28166ce002
Merge pull request #206 from Smithay/fix/drm_connector
...
Fix drm mode and connector handling
2020-05-01 16:46:36 +02:00
Victor Brekenfeld
9300e35093
lint: fmt
2020-04-30 19:03:02 +02:00
Victor Brekenfeld
31b6d84442
WIP: Rework egl and glium errors
2020-04-30 00:24:35 +02:00
Victor Berger
31f1f4f9e0
backend.udev: rework as an event source
2020-04-28 11:13:25 +02:00
Victor Berger
104774eeb0
Minor clippy fixed
2020-04-28 11:13:25 +02:00
Victor Berger
b3aae074e4
Update calloop to 0.6
2020-04-28 11:13:25 +02:00
Victor Berger
eddbe3c708
Update wayland-rs to 0.26
2020-04-28 11:13:25 +02:00
Victor Berger
d2e77dca31
Alphabetically sort dependencies
2020-04-28 11:13:25 +02:00
Victor Brekenfeld
d6fa2e96cf
drm: Require all surfaces to always have a mode set
2020-04-27 00:45:58 +02:00
Victor Brekenfeld
a4203bd216
examples/anvil: add disable_connectors for device creation
2020-04-27 00:45:58 +02:00
Victor Berger
d48c04fd7b
anvil: Implement subsurface state caching
2020-04-22 12:12:57 +02:00
Victor Berger
315797ff43
anvil: bulk-send frame events after each page flip
2020-04-22 12:12:57 +02:00
Victor Berger
59f7167702
anvil: move common logic into AnvilState
2020-04-22 12:12:57 +02:00
Victor Berger
cd6e148143
anvil: restore correct dispatching of wayland clients
2020-04-22 12:12:57 +02:00
Victor Berger
548a929d1c
wayland.compositor: Correct frame callback handling
2020-04-22 12:12:57 +02:00
Victor Berger
1736db27b4
anvil: set saner values for key repeat rate
2020-04-21 23:04:23 +02:00
Victor Brekenfeld
24a51f721d
anvil: use fallback-device for atomic/legacy
2020-04-21 20:18:35 +02:00
Victor Brekenfeld
d30bd4555e
anvil: use atomic modesetting
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
8ba33f2473
anvil: Report errors of failed device initializations
2020-04-21 20:18:34 +02:00
Victor Berger
61fecb44cf
anvil: disable clippy lint for glium macros
2020-04-21 15:00:00 +02:00
Victor Brekenfeld
bcb2aa3864
Fix egl_to_texture check
2020-04-18 15:03:20 +02:00
Chandler Newman
f7c05fa064
Rename WaylandEGLDisplay to EGLBufferReader
2020-04-15 21:19:20 +01:00
Chandler Newman
a684f5d8d6
Refactor EGL backend
2020-04-15 12:01:01 +01:00
Victor Berger
8ab34f0081
Update dependencies.
2020-04-15 11:24:50 +02:00
Victor Berger
b54d95c15d
Fix most clippy warnings ( #185 )
...
* Add missing documentation
* Fix most clippy warnings
2020-04-15 09:28:22 +02:00
Victor Brekenfeld
b43c0db115
Update to udev 0.4
2020-04-13 17:07:08 +02:00
Victor Brekenfeld
2b5c0448eb
anvil: Fix udev build without egl
2020-04-11 13:47:01 +02:00
Victor Brekenfeld
f6b3d630ce
rustfmt
2020-04-10 19:18:58 +02:00
Victor Brekenfeld
e8e8667d89
Upgrade to the upcoming drm-rs 0.4
2020-04-10 16:58:49 +02:00
Victor Berger
1b5537d537
Restore logind as a default feature
2020-04-05 20:03:09 +02:00
Jonas Platte
b8c20ebf30
Update wayland-rs to 0.25 ( #171 )
...
Update wayland-rs to 0.25 and calloop to 0.5
Co-authored-by: Victor Berger <victor.berger@m4x.org>
2020-04-05 19:01:08 +02:00
Victor Berger
a60e1cd7fd
Merge pull request #156 from YaLTeR/resize
...
anvil: implement the Resize request
2020-02-12 22:57:32 +01:00
Ivan Molodetskikh
e1396d2e1a
anvil.shell: add our own ResizeEdge
...
It mirrors the one in wl_shell_surface and lets us not depend on it.
2020-02-11 11:06:36 +03:00
Ivan Molodetskikh
c0d0d0d2b8
anvil.shell: respect min and max size in resize
2020-02-08 18:36:09 +03:00
Ivan Molodetskikh
e76f9f14ed
anvil.shell: store min_size and max_size
2020-02-08 13:51:12 +03:00
Ivan Molodetskikh
adbab32bd8
anvil.shell: update location on top-left resizing
2020-02-08 13:51:11 +03:00
Ivan Molodetskikh
60ca2f9c88
anvil.shell: don't send first configure to WlShell
...
It doesn't need it, and it also takes the (0, 0) size literally, which
makes everything try to be the smallest size possible initially.
2020-02-08 09:53:50 +03:00
Ivan Molodetskikh
09d7f597d4
anvil.shell: refresh toplevels on commit
...
This updates the toplevel state in the WindowMap as soon as it's
committed. It will be used to update the toplevel location on top-left
resize, but this is a better approach in general than the current
update-every-drawn-frame. I think we should update the WindowMap state
as soon as possible, and only when necessary.
2020-02-08 08:47:14 +03:00