Ian Douglas Scott
094c28e105
cosmic-screencopy-v2
2024-03-25 10:24:47 -07:00
Ian Douglas Scott
5e290acbee
Use log instead of println!
2024-03-06 14:05:32 -08:00
Ian Douglas Scott
7106001179
Address various warnings
2024-03-05 12:25:20 -08:00
Ian Douglas Scott
78b7bfe957
Use Wayland subsurfaces, dmabuf screencopy
...
More efficient than shm screencopy, and rendering an iced image into the
window. Done right, should espeically help with multiple GPUs, but more
testing and work is needed there.
Removes mmapping of dmabuf, which errored... I guess not allocated with
right options for that. Relevant only if we want a fallback/test that
involves reading dmabufs.
Using `OnDamage` doesn't seem to work correctly currently. Likely a
compositor issue.
2024-03-01 14:35:19 -08:00
Ian Douglas Scott
7ae2dc9e06
Fix reference to back buffer
2024-01-25 16:21:21 -08:00
Ian Douglas Scott
9faaa4d6c8
Use array instead of tuple for screencopy swapchain
...
Can switch to triple buffering by changing one character.
2024-01-25 16:16:26 -08:00
Ian Douglas Scott
6e422b740c
Call attach_buffer_and_commit before reading front buffer
...
This way double buffering is somewhat useful; we can start another
capture before reading out the buffer.
2024-01-25 16:00:37 -08:00
Ian Douglas Scott
89910b8e75
Use double-buffering for screencopy
...
Currently this is unnecesssary, but it's needed if we use subsurfaces
(or import) instead of immedaitely converting to an image.
2024-01-25 15:58:34 -08:00
Ian Douglas Scott
6262329635
Clean up some of the screencopy code
2024-01-25 15:48:40 -08:00
Ian Douglas Scott
13b565e013
Add a ScreencopySession type
...
Allows cleaning up some of the relationship between `screencopy.rs` and
`capture.rs`, and groups variables that go together and are set to `Some`/`None`
together.
Should help for adding double buffering.
2024-01-25 15:44:30 -08:00
Ian Douglas Scott
43e9ef390a
Move attach_buffer_and_commit
2024-01-24 16:07:00 -08:00
Ian Douglas Scott
6f1b391b00
Destroy screencopy session when not capturing
2024-01-24 15:59:18 -08:00
Ian Douglas Scott
14d2a66c9d
Re-use screencopy session instead of creating one each frame
2024-01-24 15:29:03 -08:00
Ian Douglas Scott
5269356089
Use Weak<Capture> in session state
2024-01-24 13:59:18 -08:00
Ian Douglas Scott
80e4fb0227
Work around panic
2023-12-12 11:59:32 -08:00
Ian Douglas Scott
c939486ce6
Fix a panic
2023-12-06 15:35:25 -08:00
Ashley Wulber
791441ca10
refactor: single instance
2023-11-21 19:26:12 -05:00
Ian Douglas Scott
0c19ea7167
Add CaptureImage type
2023-11-16 19:38:42 -08:00
Ian Douglas Scott
39401bf3c3
screencopy: Pass the node we're using to attach_buffer
...
Seems to make sure the compositor renders workspace with that GPU, so it
actually captures successfully.
2023-11-09 13:45:28 -08:00
Ian Douglas Scott
c567cb30d3
Move Bufffer::new to AppData::create_buffer
...
Will be needed to add support for dmabuf buffers. Also slightly cleaner
in general.
2023-11-08 15:05:45 -08:00
Ian Douglas Scott
b1d986ee71
Remove workaround for compositor issue that should be fixed
2023-11-08 14:09:34 -08:00
Ian Douglas Scott
9598a9f8e4
Use WlOutput instead of output names for matching
...
With a shared wayland connection between the code here and iced, if we
don't bind outputs outselves, we can have `WlOutput`s that match.
This simplifies things.
2023-11-08 13:59:53 -08:00
Ian Douglas Scott
4e2ef433fd
Handle global workspaces
2023-03-22 10:03:18 -07:00
Ian Douglas Scott
4ca7c9fb56
Handle toplevel info updates
2023-02-10 13:41:08 -08:00
Ian Douglas Scott
b5931cd240
Initial support for filtering what to capture to only what's needed
2023-02-10 10:12:26 -08:00
Ian Douglas Scott
b29f1149a4
Split up wayland code into more files
2023-02-09 16:04:36 -08:00