Ivan Molodetskikh
4d60eae82e
Fix blocked-out + popups and rounded corners window screencasts
2024-06-28 12:35:12 +04:00
Ivan Molodetskikh
66202992c9
Fix blurry rounded corners on high scales
2024-06-18 14:01:34 +03:00
Ivan Molodetskikh
1dae45c58d
Refactor layout to fractional-logical
...
Lets borders, gaps, and everything else stay pixel-perfect even with
fractional scale. Allows setting fractional border widths, gaps,
struts.
See the new wiki .md for more details.
2024-06-18 14:01:28 +03:00
Ivan Molodetskikh
9ae98e09cb
Update Smithay
2024-06-17 09:02:22 +03:00
Ivan Molodetskikh
8e41568ffd
Add SolidColor{Buffer,RenderElement}
2024-06-10 18:08:01 +03:00
Ivan Molodetskikh
7019172b67
Add MemoryBuffer
2024-06-10 18:08:00 +03:00
Ivan Molodetskikh
3c63be6261
Implement our own TextureBuffer/RenderElement
...
Supports fractional texture scale + has some getters.
2024-06-10 18:08:00 +03:00
Ivan Molodetskikh
ae63773737
Update Smithay and other deps
2024-05-16 18:00:28 +04:00
Ivan Molodetskikh
609b1a02d0
Change resize shader geo size to logical pixels
...
Consistent with the others.
2024-05-15 19:52:11 +04:00
Ivan Molodetskikh
5335ef454b
Implement custom shader for window-open
2024-05-15 19:38:29 +04:00
Ivan Molodetskikh
9004c83954
Implement custom shader for window-close anim
2024-05-12 09:52:36 +04:00
Ivan Molodetskikh
99eb1227b1
Extract RenderTarget::should_block_out()
2024-05-04 11:51:27 +04:00
Ivan Molodetskikh
69aeba2a4d
shader_element: Store and set location separately
2024-05-04 09:49:32 +04:00
Ivan Molodetskikh
7aab413048
shader_element: Remove size
...
It's not actually needed.
2024-05-04 09:15:17 +04:00
Ivan Molodetskikh
74996a2416
Make BorderRenderElement scale-agnostic
2024-05-03 21:49:47 +04:00
Ivan Molodetskikh
8ab50f9d1c
shader_element: Store program type instead of shader
2024-05-03 21:23:32 +04:00
Ivan Molodetskikh
5c32031111
shader_element: Make shader optional
...
The element is long-lived, but the shader itself isn't.
2024-05-03 20:20:36 +04:00
Ivan Molodetskikh
85680a57da
Reduce unnecessary damage to borders
2024-05-03 13:46:33 +04:00
Ivan Molodetskikh
1a8d6b1f1d
Add a semi-working debug-toggle-damage binding
2024-05-03 10:33:31 +04:00
Ivan Molodetskikh
c6d64dae7a
Add debug-toggle-opaque-regions
2024-05-02 17:52:06 +04:00
Ivan Molodetskikh
2f42f8ac75
Damage window on corner radius changes
2024-05-02 14:27:53 +04:00
Ivan Molodetskikh
42cef79c69
Implement rounded window corners
2024-05-02 14:27:53 +04:00
Ivan Molodetskikh
9309b3be61
Split rendering between popups and window surface
2024-05-01 19:04:11 +04:00
Ivan Molodetskikh
f3ded0c2e6
Move shader get out of ResizeRenderElement::new
2024-04-29 14:27:38 +04:00
Ivan Molodetskikh
c1c43c5393
Fix size_curr_geo in resize shader
2024-04-27 13:12:21 +04:00
Ivan Molodetskikh
5899010c96
Extract mat3_uniform
2024-04-27 13:11:25 +04:00
Ivan Molodetskikh
5299590290
Improve cropping logic in resize shader example
...
The previous logic failed to the left of the geometry.
2024-04-22 22:37:47 +04:00
Ivan Molodetskikh
1681ed16d9
Change custom-shader to a prelude-epilogue system
2024-04-22 19:05:11 +04:00
Ivan Molodetskikh
49f5402669
Implement window-resize custom-shader
2024-04-21 20:16:54 +04:00
Ivan Molodetskikh
2ecbb3f6f8
Remove obsolete comment
2024-04-21 12:28:49 +04:00
Ivan Molodetskikh
0fcd981b86
Fix crop + crossfade artifacts
2024-04-18 21:39:27 +04:00
Ivan Molodetskikh
9d5f1c7ef7
Unify Animation- and RenderSnapshot
2024-04-13 14:16:07 +04:00
Ivan Molodetskikh
71be19b234
Implement window resize animations
2024-04-13 11:07:23 +04:00
Ivan Molodetskikh
4fd9300bdb
Fix typo
2024-04-13 10:58:32 +04:00
Ivan Molodetskikh
7319f37f7a
Add render_to_encompassing_texture()
2024-04-12 20:38:51 +04:00
Ivan Molodetskikh
1888696567
Reimplement window closing anim in an efficient way
...
- Keep a root surface cache to be accessible in surface destroyed()
- Only snapshot during / right before closing, rather than every frame
- Store textures rather than elements to handle scale and alpha properly
2024-04-10 09:14:04 +04:00
Ivan Molodetskikh
dd011f1012
Implement window closing animations
2024-04-09 23:42:01 +04:00
Ivan Molodetskikh
7e0d3d31f7
Update Smithay
2024-04-09 19:06:13 +04:00
Ivan Molodetskikh
493c8dc890
Implement block-out-from window rule, fix alpha on window screenshots
2024-03-24 10:22:56 +04:00
sodiboo
ca22e70cc4
Implement wlr-screencopy v1 ( #243 )
...
* Implement wlr-screencopy
* Finish the implementation
Lots of changes, mainly to fix transform handling. Turns out, grim
expects transformed buffers and untransforms them by itself using info
from wl_output. This means that render helpers needed to learn how to
actually render transformed buffers.
Also, it meant that y_invert is no longer needed.
Next, moved the rendering to the Screencopy frame handler. Turns out,
copy() is more or less expected to return immediately, whereas
copy_with_damage() is expected to wait until the next VBlank. At least
that's the intent I parse reading the protocol.
Finally, brought the version from 3 down to 1, because
copy_with_damage() will need bigger changes. Grim still works, others
not really, mainly because they bind v3 unnecessarily, even if they
don't use the damage request.
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2024-03-08 04:10:55 -08:00
Ivan Molodetskikh
f32a25eefe
Improve shader formatting
2024-02-22 10:21:38 +04:00
Ivan Molodetskikh
aefbad0cf7
Simplify gradient border shader
2024-02-22 10:17:06 +04:00
Ivan Molodetskikh
48f0f6fb3c
Implement gradient borders
2024-02-21 22:15:21 +04:00
Ivan Molodetskikh
63e5cf8798
Add missing qualified path
2024-02-21 09:12:42 +04:00
Ivan Molodetskikh
9ce19ad7de
Use niri_render_elements! for the screenshot UI
2024-02-21 09:12:40 +04:00
Ivan Molodetskikh
d8fb8d5ef0
Update for Smithay MultiGpu shadow copies
2024-02-18 21:12:07 +04:00
Ivan Molodetskikh
49ce791d13
Add a Tracy span to OffscreenRenderElement::new
2024-02-07 13:16:54 +04:00
Ivan Molodetskikh
0761401650
Add OffscreenRenderElement
2024-02-07 11:30:33 +04:00
Ivan Molodetskikh
3360517f62
Clear before rendering to texture
...
Otherwise I see artifacts on some GTK dialogs.
2024-02-07 11:18:55 +04:00
Ivan Molodetskikh
592791611a
Change render functions to accept iterators
2024-02-06 17:53:25 +04:00