Commit graph

438 commits

Author SHA1 Message Date
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
vaxerski
da76a1ed9e block surface feedback on window sharing 2022-12-05 19:12:15 +00:00
vaxerski
9c67e08dbd ignore alpha when sharing window 2022-12-05 18:00:57 +00:00
Vaxry
66fb083003
Implement window sharing with the hl toplevel export proto (#1179)
* implement window sharing

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2022-12-05 17:05:15 +00:00
Flafy
ffc580dda9
blur xray for layers (#1158)
* feat: apply blur_xray to non window surfaces

* don't blur optimize bottom and background layers
2022-12-04 20:57:41 +00:00
vaxerski
0a302901d2 Added handling more special workspaces 2022-11-27 22:42:22 +00:00
vaxerski
c709dc5e8e fix fadeout with animated border 2022-11-26 18:41:30 +00:00
vaxerski
0948b078e1 added border gradients 2022-11-26 17:57:02 +00:00
vaxerski
381d7a4300 check for special workspace open in attemptDirectScanout 2022-11-25 18:25:04 +00:00
vaxerski
5327565b33 remove resize transitions 2022-11-22 17:20:58 +00:00
Julian Schuler
41a8975bd1
Render focused window at last (#1060) 2022-11-20 18:50:01 +00:00
e887149f25 minor fixes for mirrors & log more monitor events 2022-11-19 13:01:32 +00:00
vaxerski
ba05c43ae3 minor monitor code fixups 2022-11-18 14:15:19 +00:00
vaxerski
878a20741b fix slide calcs for windows outside the viewport 2022-11-16 15:35:36 +00:00
d0b3cdc835 Fix crashes with DS and mirrors 2022-11-09 10:56:49 +00:00
vaxerski
efbc3f8194 resize transition fixes + default transitions to false 2022-11-06 18:10:53 +00:00
vaxerski
f755351511 Fix resize transitions on multimon + transformed 2022-11-06 18:04:30 +00:00
vaxerski
57817f7252 Added resize transitions 2022-11-06 17:52:09 +00:00
vaxerski
5295244026 Revert adding toggle for drm scanout flags
This reverts commit 12697d2b72.

Stupid idea.
2022-11-06 14:25:53 +00:00
vaxerski
082f439db2 fix issues with direct scanout's lack of surface frame feedback 2022-11-06 14:20:03 +00:00
vaxerski
12697d2b72 added toggle for drm scanout flags 2022-11-06 14:11:37 +00:00
vaxerski
5a750b485a Added creating / destroying outputs on a multi-backend + headless backend
See `hyprctl output`.
2022-11-05 18:04:44 +00:00
vaxerski
6a59b57ef8 remove spammy logs for DS 2022-11-05 13:06:48 +00:00
vaxerski
f50c786640 Added direct scanout 2022-11-05 12:50:47 +00:00
c47581fc5a handle transforming displays in outputMgr 2022-11-03 09:06:44 +00:00
a2b8e3b34e fix the damageBox in damageMonitor 2022-11-02 11:04:17 +00:00
vaxerski
d994ad75e8 revert output smart layout reporting 2022-10-29 17:32:03 +01:00
vaxerski
2caebb3b10 fix default 0 in box passing test 2022-10-29 14:37:33 +01:00
vaxerski
05f3eebd96 avoid layout changes when unnecessary in applyMonitorRule 2022-10-29 12:24:44 +01:00
7d6ccca695 add 10bit support to displays 2022-10-27 13:26:47 +01:00
vaxerski
d55338a3f5 fix debug nest black screen 2022-10-24 11:58:07 +01:00
vaxerski
47eac4be1c disable adaptive sync with no_vfr off 2022-10-22 21:45:17 +01:00
vaxerski
dc1737f128 allow glob wildcard in addreserved 2022-10-17 23:23:07 +01:00
vaxerski
34cd8b125a rework focus system to be more safe and faster 2022-10-14 20:46:32 +01:00
vaxerski
170def35d7 simplify shouldRenderWindow and fix one cond 2022-10-12 18:37:11 +01:00
vaxerski
2ee9fb0675 don't recalc offset on monitor reload offset auto 2022-10-12 15:16:31 +01:00
vaxerski
1396d2a39b fix crash in renderWorkspaceWithFullscreenWindow 2022-10-11 20:29:51 +01:00
vaxerski
abc2d442dd fix a VRAM leak in destroyMonitorResources 2022-10-07 22:19:23 +01:00
1468001d3b offset floating windows out of bounds on ws anims 2022-10-07 12:34:54 +01:00
7faa3c367d Added clipping support, clip windows on slide anim 2022-10-07 10:43:51 +01:00
Felix Dick
11ee78f88b Use double literals, don't cast a integer literal to double. 2022-09-28 20:08:41 +02:00
Felix Dick
87afc8c250 Replace clamp with max if there is no upper bound. 2022-09-26 21:10:24 +02:00
Felix Dick
bf3f519eb7 Remove trailing whitespace. 2022-09-25 20:07:48 +02:00
65fb0cf0f6 fix custom rules on null modelist 2022-09-24 13:10:11 +01:00
5101ddeff1 fix oopsies in rule code 2022-09-24 11:30:41 +01:00
Fabio Lenherr
c4e782ca5d remove more silly mistakes 2022-09-22 00:50:23 +02:00
Fabio Lenherr
da2c2ddc21 remove empty line 2022-09-22 00:47:09 +02:00
Fabio Lenherr
5272588270 fix silly mistakes 2022-09-22 00:45:56 +02:00
Fabio Lenherr
215125bd66 add refreshrate or resolution preference 2022-09-22 00:22:39 +02:00
Fabio Lenherr
30d16373d0 fix Hz Log 2022-09-21 22:40:01 +02:00
Fabio Lenherr
c1feb683ce added high to monitor resolution 2022-09-21 22:29:52 +02:00
Fabio Lenherr / DashieTM
d51c7ca135 change Preferred mode to use highest refreshrate 2022-09-20 23:41:03 +02:00