5b0dc779ed
renderer: blur properly behind small surfaces
2023-10-25 22:20:58 +01:00
8991be671f
renderer: respect viewporter dest on base surfaces
2023-10-25 22:05:04 +01:00
03771d3aa9
windowrules: add nearestneighbor
2023-10-24 21:29:03 +01:00
d0367d8560
renderer: use preOffset pos instead of offset
...
offset is not passed to transformers, so if they change pos, decos will be in the wrong place
2023-10-21 19:51:14 +01:00
95db9108e5
transformers: allow modifying renderdata pre-pass
2023-10-21 19:25:44 +01:00
c6233a790f
renderer: avoid drawing invisibly small surfaces in renderSurface
2023-10-21 14:20:06 +01:00
92311d260a
renderer: add transformers
2023-10-21 14:15:56 +01:00
4a79718fe8
renderer: fix shimmers when manual resizing
2023-10-20 20:32:47 +01:00
7f35f33b4c
surface/wayland: conform to small surface requirements
...
do not stretch small surfaces, instead center them if they fit.
2023-10-20 20:15:57 +01:00
424c9a7e70
render: stop locking SWC on tearing
2023-10-13 22:11:21 +01:00
vaxerski
cb7dd1ac6e
layershell: avoid configure on unchanged size
...
fixes #3496
2023-10-06 14:00:05 +01:00
vaxerski
230356012b
renderer: extract solitary check into frame handler
2023-10-04 13:48:44 +01:00
vaxerski
f8c18ff797
renderer: fixup solitary conditions
2023-10-04 13:30:13 +01:00
vaxerski
2901bb0d2f
renderer: add further conditions to solitary recheck
2023-10-04 09:44:07 +01:00
vaxerski
fc1d7acd9a
renderer: fix missing check for surfaceCount in rechecking solitary
...
closes #3470
2023-10-02 14:02:19 +01:00
vaxerski
763bb2d3bc
renderer: remove old debug log
2023-10-02 10:50:33 +01:00
vaxerski
a2a29a60e5
tearing: cleanup vars and avoid rendering before drm is ready
2023-09-30 17:07:50 +01:00
vaxerski
e2b72b2975
renderer: avoid spamming software cursor locks
2023-09-30 16:55:41 +01:00
vaxerski
b8f8912db2
renderer: lock software cursors while tearing
2023-09-30 13:12:01 +01:00
vaxerski
a44ab7748f
renderer: optimize render pipeline when there is a solitary client
2023-09-29 17:51:07 +01:00
Vaxry
88b63a00b6
renderer: Tearing implementation ( #3441 )
2023-09-28 21:48:33 +01:00
vaxerski
3b1e09e5a1
renderer: fix missing dontRound check in renderSurface
...
fixes 3296
2023-09-23 00:06:48 +01:00
vaxerski
ea45bfb63c
renderer: cleanup drm format selection
2023-09-22 20:15:12 +01:00
memchr
3785defaf1
logging: implement std::formatter for some types ( #3380 )
2023-09-20 16:25:03 +01:00
memchr
6594b50e57
logging/format: use std::format_string to catch formatting string errors at compile time ( #3377 )
...
* fix(log): use constexpr format string
* deprecate getFormat
2023-09-20 08:26:20 +01:00
Philip Damianik
6c855dd6e4
internal: Fix wlr output management ( #3234 )
2023-09-10 13:14:27 +01:00
Philip Damianik
8c83852704
internal: Remove all .c_str()
calls when using std::vformat
( #3198 )
...
Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
2023-09-06 21:45:37 +02:00
Vaxry
61a71c65ac
internal: Formatter rework ( #3186 )
2023-09-06 12:51:36 +02:00
vaxerski
c3a83daa1e
monitor: minor adjustments
2023-09-05 22:16:14 +02:00
vaxerski
32f75ebb70
renderer: separate workspace window render logic
...
Makes the logic used to render stuff over the windows (special, popups, ime, lockscreen) unified by yeeting the workspace window logic (which is separate cuz fullscreen windows) into their own funcs. Fixes #2053
2023-09-04 15:07:56 +02:00
staz
01c6c5ae22
internal: Revert rounding of window size ( #3153 )
...
* Revert "renderer: round coords and size in renderWindow"
This reverts commit fc0c1896e0
.
* Revert "xwaylandmgr: round reported sizes"
This reverts commit 2985e20e6a
.
2023-09-03 12:51:48 +02:00
vaxerski
423b129b24
renderer: don't set enabled in applyMonitorRule
2023-09-03 12:43:57 +02:00
vaxerski
d4ec54d048
renderer: render IME popups in fullscreen
...
fixes #1353
2023-09-02 20:32:15 +02:00
vaxerski
d2a785dfe3
renderer: fixup occlusion conditions
...
fixes #3123 I fucking hate yall
2023-09-01 23:01:59 +02:00
memchr
1a13d44d5d
refactor: raise SIGABRT instead of write to null address ( #3124 )
2023-08-31 22:52:02 +02:00
vaxerski
fc0c1896e0
renderer: round coords and size in renderWindow
2023-08-31 09:55:38 +02:00
vaxerski
299d201e56
renderer: don't blur special on disabled blur
2023-08-26 11:48:04 +02:00
vaxerski
870471dd96
internal: allow opening empty special workspaces
...
Fixes point 2 of #2596
2023-08-25 18:05:08 +02:00
vaxerski
23e17700a7
renderer: add decoration:blur:special
...
will blur behind the special ws
2023-08-25 17:44:17 +02:00
vaxerski
9d094f655e
renderer: track fade alpha for blur if ignore opacity is true
...
with ignore_opacity, blur would stay at 1 opacity during a fadeOut animation on layers, making it look wrong. Fixes #3051
2023-08-23 12:03:27 +02:00
MightyPlaza
7155b4c266
renderer: Border improvements ( #2986 )
...
* simplify getting border size
modified: src/Window.cpp
modified: src/Window.hpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* fix border damage and input box
modified: src/Window.cpp
modified: src/managers/AnimationManager.cpp
* add border size in resize_on_border box
modified: src/managers/input/InputManager.cpp
* simplify border (fixes possible typo)
modified: src/Window.cpp
* use updateSpecialRenderData()
modified: Window.cpp
modified: Window.hpp
modified: events/Windows.cpp
modified: layout/DwindleLayout.cpp
modified: layout/IHyprLayout.cpp
modified: layout/MasterLayout.cpp
modified: render/Renderer.cpp
* update window workspace rule data on reload
modified: src/config/ConfigManager.cpp
* use rounding()
modified: src/Window.cpp
2023-08-17 10:13:19 +02:00
7e8a212027
internal: allow negative monitor offsets
2023-08-16 18:16:39 +02:00
b9a783229b
compositor: don't apply offsets in renderer
2023-08-14 18:41:52 +02:00
13886a264f
internal: add a new monitor auto system
2023-08-14 14:22:10 +02:00
3f7f4207a6
config: add vrr per-display
2023-08-11 17:37:57 +02:00
126792584f
renderer: don't add workspace offset to pinned
2023-08-09 22:15:37 +02:00
cbb899740c
rules: add layer and window xray rules
2023-08-09 22:03:31 +02:00
0x455241
b3393c429f
background: add background color option ( #2915 )
...
Co-authored-by: 0x455241 <>
2023-08-08 18:00:11 +02:00
Vaxry
d96f8ff0fe
renderer: Various Blur Improvements ( #2877 )
...
* move blur to its own category
* blur improvements, contrast, brightness, noise
2023-08-03 15:11:10 +02:00
vaxerski
1a7fb1572a
renderer: disable init anim on disabled animations
2023-07-22 19:26:44 +02:00
outfoxxed
375e8385ee
Fix background occlusion ignoring monitor position ( #2771 )
2023-07-22 10:19:51 +02:00
vaxerski
d2a8b8c2de
renderer: cleanup back buffer skip checks
2023-07-20 18:27:14 +02:00
vaxerski
23eda1411b
renderer: scale box for occlusion
2023-07-20 18:12:29 +02:00
vaxerski
ff598b0827
renderer: don't occlude when pre-blur is queued
2023-07-20 18:03:47 +02:00
vaxerski
a921c5b89e
Debug: add tracy
2023-07-20 17:47:49 +02:00
vaxerski
948855a984
renderer: add canSkipBackBufferClear
2023-07-20 14:11:05 +02:00
vaxerski
547305c7ed
opengl: adjust blend and reduce the usage of clear
2023-07-20 13:49:28 +02:00
vaxerski
80cd2ef3d7
renderer: remove unused var
2023-07-19 21:10:42 +02:00
vaxerski
2c2314faa0
renderer: take workspace offset into account for occlusion
2023-07-19 21:08:49 +02:00
Vaxry
89b87158db
internal: Wrap regions ( #2750 )
2023-07-19 20:09:49 +02:00
vaxerski
ce9896204a
renderer: fix rounding in renderSurface
2023-07-19 20:06:19 +02:00
vaxerski
f4f0f35c5b
renderer: add occlusion for back layers
2023-07-19 16:13:55 +02:00
vaxerski
81f4a4f471
screencopy: improve shm handling
2023-07-19 00:51:38 +02:00
vaxerski
ce9c5fd722
render: set refresh to 0 for both wl and x11 backends
2023-07-19 00:28:15 +02:00
vaxerski
f2999e84b9
render: set refresh to 0 for wayland backend outputs
2023-07-19 00:02:57 +02:00
Vaxry
8370a7fcc4
internal: Protocol C++ Wraps + XDGOutput impl ( #2733 )
...
move to our own xdgoutput impl instead of wlr's
2023-07-18 15:30:28 +02:00
vaxerski
2e323a5671
renderer: use correct wlr sample func
2023-07-18 12:25:48 +02:00
Jan Beich
8c9e2e1ff1
deps: update wlroots ( #2734 )
2023-07-18 12:13:59 +02:00
vaxerski
2c7b2ad6ca
windowrules: add border size rule
2023-07-18 00:11:29 +02:00
vaxerski
382af06406
render: resize subsurfaces with size resizes
2023-07-10 13:32:57 +02:00
vaxerski
515a363ecd
render: move lastFrameDamage to CMonitor
2023-07-10 13:21:00 +02:00
d83296c7a9
renderer: damage decos on damageWindow
2023-06-27 13:23:58 +02:00
01f85a09a9
xwayland: send zero scaling to xwayland if enabled
2023-06-23 21:42:44 +02:00
vaxerski
fbabb105c3
gamma: use wlr's new gamma manager event
2023-06-14 13:26:47 +02:00
6beb79f27b
xwayland: add force_zero_scaling
2023-06-11 21:52:13 +02:00
64ce06a353
xwayland: add nearest neighbor filtering as an opt
2023-06-11 21:33:59 +02:00
end-4
e1edfde539
Allow setting alpha value for ignorezero layer rule ( #2477 )
...
* rename ignorezero to ignorealpha
* allow setting ignorealpha value
This commit allows setting a float value (0-1) for the ignorealpha layer rule.
Does not yet have error handling; invalid ignorealpha layer rule will crash Hyprland.
* add brackets i forgot to add
* prevent crash with invalid ignorealpha value
prevents hyprland from immediately crashing with invalid ignorealpha layer rule
does not log
* don't try to set ignoreAlphaValue if alpha value not specified
* add catch to try, reintroduce ignorezero
- added catch after try cuz i was an idiot
- re-add ignorezero as an alternative to ignorealpha to not introduce a breaking change
* add logging for failed ignorealpha layer rule
* fix get ignorealpha's get VALUE
* check npos and use empty()
* rename VALUE cuz no longer const
* format Shader.hpp
2023-06-11 19:30:31 +02:00
d83e5b8409
internal: make borderSize prop overridable
2023-06-04 21:35:23 +02:00
vaxerski
9c9b74179c
pluginapi: add separate window render events
2023-05-26 13:07:45 +02:00
vaxerski
f877d68f4f
launchanim: fix #2291
2023-05-24 15:49:31 +02:00
vaxerski
f2725a374a
render: minor fixes to fullscreen rendering
2023-05-10 18:36:13 +01:00
Andrei Alexeyev
2f87e4c2f3
renderer,config: add custom DRM modeline support ( #2254 )
...
This allows specifying custom display resolutions for the DRM backend.
This is useful for display overclocking, working around broken EDIDs,
etc. To use this feature, specify a modeline instead of a resolution
in the config, for example:
monitor = DP-1, modeline 1071.101 3840 3848 3880 3920 2160 2263 2271 2277 +hsync -vsync, 0x0, 1
This example is a custom 3840x2160@120Hz mode with tightened timings.
I use it because the standard timings don't work with my monitor and GPU
combination (M28U with RX580).
The syntax is compatible with Sway and Xorg.
2023-05-09 14:01:45 +01:00
levnikmyskin
c949173bc9
Added some workspace-specific rules ( #1986 )
...
* added some workspace-specific rules
* added some worskpace-specific rules, with windowrule like syntax
* monitor is not mandatory anymore
* pointers to config are now static
* fixed optional WorkspaceRule fields
* Windows can now specify border size
* removed CHyprOpenGLImpl::renderBorder borderSize default value
* stuff
---------
Co-authored-by: Alessio Molinari <alessiomolinari@gmail.com>
Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-05-01 22:28:27 +01:00
vaxerski
ddfeebad3d
Renderer: add init animation
2023-05-01 02:49:41 +01:00
vaxerski
02312cac59
renderer: more checks for background LS optimizations
2023-04-30 01:15:51 +01:00
vaxerski
2946221195
renderer: fix fadingout render on fs
2023-04-29 13:29:32 +01:00
vaxerski
1a1656ddbf
Revert "internal: include headers from protocols/"
...
This reverts commit 550700bed0
.
We can't cuz meson
2023-04-27 13:55:13 +01:00
vaxerski
550700bed0
internal: include headers from protocols/
2023-04-27 13:40:38 +01:00
vaxerski
49fb4cd94d
renderer: improvements to layer render detection
2023-04-22 12:54:57 +01:00
vaxerski
1911e4262b
renderer: skip rendering bottom layers on fullscreen opaque
2023-04-22 12:36:54 +01:00
vaxerski
1c50a11688
opengl: keep current rendered workspace in renderData
2023-04-17 23:47:12 +01:00
vaxerski
385fe4e301
events: add render event for plugins
2023-04-17 23:45:03 +01:00
vaxerski
8b3d8dc792
Format: use %lx for all addresses
2023-04-17 17:35:28 +01:00
vaxerski
b05ff89c76
Render: add cursor_zoom
2023-04-16 14:48:38 +01:00
vaxerski
e329bc2c7b
renderer: fix incorrect shouldRenderWindow calcs
2023-04-14 15:16:43 +01:00
vaxerski
293df75b97
renderer: workspace rendering improvements
2023-04-12 13:05:57 +01:00
vaxerski
f00e11d457
renderer: fix incorrect delta calc
2023-04-12 12:50:20 +01:00
vaxerski
0fd09579a1
renderer: reset renderModif on fullscreen render
2023-04-12 12:45:16 +01:00
vaxerski
3ae33b951f
renderer: add support for rendering workspaces
2023-04-12 12:41:23 +01:00
vaxerski
3ade6c4a96
renderer: fixup damage repaint
2023-04-09 17:59:24 +01:00
vaxerski
24ace03780
internal: migrate to damage_ring
2023-04-07 12:18:40 +01:00
vaxerski
1a5d5bf620
deps: update wlroots
2023-04-06 21:03:53 +01:00
vaxerski
e7185b338f
debug: minor improvements to manual crash
2023-04-04 22:04:32 +01:00
7d9977d028
debug: added manual_crash
2023-04-04 14:50:03 +01:00
vaxerski
99314fbe71
render: plug missing software cursor unlocks
2023-04-04 00:46:58 +01:00
Vaxry
0a099ca2ab
Hyprland Screencopy impl ( #1800 )
...
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-04-03 17:01:05 +01:00
vaxerski
de3b00b5ee
renderer: go back to rendering layers without reverse
2023-03-31 17:44:36 +01:00
Vaxry
a80f8f257f
Feat: Introduce render_ahead_of_time ( #1863 )
2023-03-24 19:23:16 +00:00
Vaxry
788a8f7c13
internal: wrap wlr surfaces ( #1822 )
2023-03-20 15:00:58 +00:00
vaxerski
e5870d47c7
LS: add blur and ignorezero rules
2023-03-17 23:16:13 +00:00
vaxerski
91a565c7b0
monitors: don't refocus on apply rule
2023-03-17 20:34:33 +00:00
vaxerski
e77ebec629
monitors: guard output in damageSurface
2023-03-16 16:32:03 +00:00
c444099325
Mirrors: remove accidentally leftover logs
2023-03-04 01:06:16 +00:00
1ead6c46f4
Mirrors: minor fixes
2023-03-04 00:48:22 +00:00
vaxerski
a34b747661
update wlroots dep
2023-03-03 21:28:22 +00:00
vaxerski
72fc309fb1
make window reserved area less stupid
2023-02-28 21:18:13 +00:00
vaxerski
4b20d4f1ad
Added decoration reserved area
2023-02-28 19:36:36 +00:00
3fbef25ffc
refocus on monitor attach
2023-02-16 12:55:52 +00:00
wsippel
1992f27a26
ignore VR headsets ( #1555 )
...
* ignore VR headsets
don't interact with screens that have the non_desktop property set, fixes #1553
* remove superfluous curly braces
2023-02-15 14:50:51 +00:00
vaxerski
bda8208aaa
render lockscreen in fullscreenworkspace
2023-02-10 22:03:28 +00:00
vaxerski
1dde751da4
fixup LS fs-v1 calcs
2023-02-10 12:53:43 +00:00
8e6950e200
place sessionlock surfaces at correct coordinates
2023-02-03 14:00:23 +00:00
vaxerski
a46abd8b1a
update wlroots dep
2023-02-03 12:43:43 +00:00
vaxerski
129e99a6f6
Implement ext-session-lock-v1
2023-02-03 11:58:55 +00:00
ozwaldorf
32d56fec97
feat: border angle animations ( #1469 )
...
Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-02-01 21:06:01 +00:00
ef12120270
fixup LS scaling impl
2023-01-29 15:58:36 +00:00
vaxerski
3d83a0bc5f
enable UV calcs for all surfaces
2023-01-29 13:58:47 +00:00
a2ae37396f
add hyprctl setprop
2023-01-24 19:05:43 +00:00
cb98242ea7
remove old comment and fixup lsl var name
2023-01-22 17:03:25 +01:00
147be3e10b
use goal size for uv calcs
2023-01-22 16:58:10 +01:00
7d754b7c22
fix cutting geometry on surfaces spilling out
2023-01-22 16:24:51 +01:00
Vaxry
60b880d931
wp-fractional-scaling-v1 impl ( #1373 )
...
* Initial fractional scaling impl
* apply UV after geom calcs
* fix scaling -> scale
* meson: add fractional scale proto
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-01-20 19:44:30 +01:00
3436486575
sanitize scale better
2023-01-20 16:03:52 +01:00
428063ff23
fix up log types
2023-01-18 16:12:44 +01:00
f14e808847
dump monitor data after setting rules
2023-01-17 11:57:36 +01:00
5c83976977
added misc:hide_cursor_on_touch
2023-01-17 11:47:39 +01:00
589046ecf7
fix dimaround with transformed displays
2023-01-16 16:12:24 +01:00
96198dae55
Normalize color storage
...
Colors are now normalized to 0 - 1 values instead of 0 - 255
causes calculations to be simpler and generally cleans up the codebase.
2023-01-05 19:25:45 +01:00
5d095bb9e1
use curves for special dim anim
2022-12-29 12:30:43 +01:00
a55db95a3b
ignore dim when pass popup
2022-12-28 19:56:18 +01:00
a6699ef30c
added dimaround
2022-12-28 15:39:17 +01:00
b5f5c26be3
added dim_special
2022-12-28 15:18:23 +01:00
659a5195d4
render overlay layers in reverse
...
prevents stuff leaking when locked
2022-12-27 15:25:51 +01:00
vaxerski
fc37ce4a72
render pinned windows above floating separately
2022-12-20 23:07:25 +00:00
Vaxry
98a4fa2b0d
Added clang format ( #1239 )
...
* clang-format stuff and format files
2022-12-16 17:17:31 +00:00
vaxerski
3bd9ee0d32
minor xcursor and scale fixes
2022-12-15 17:17:15 +00:00
vaxerski
374571da96
add auto scale
2022-12-14 17:57:45 +00:00
vaxerski
e8b99ae13a
add override to opacity rules
2022-12-11 17:15:02 +00:00
vaxerski
bb99f151da
fix pinned offset calc
2022-12-11 16:58:29 +00:00
vaxerski
f97289a3c0
fix rendering multi special ws
2022-12-11 16:53:59 +00:00