Vaxry
1ed1ce9506
internal: new shared_ptr and weak_ptr implementation ( #5883 )
...
moves std::shared_ptrs to a new implementation
Advantages:
- you can dereference a weak_ptr directly. This will obviously segfault on a nullptr deref if it's expired.
- this is useful to avoid the .lock() hell where we are 100% sure the pointer _should_ be valid. (and if it isn't, it should throw.)
- weak_ptrs are still valid while the SP is being destroyed.
- reasoning: while an object (e.g. CWindow) is being destroyed, its `weak_ptr self` should be accessible (the sp is still alive, and so is CWindow), but it's not because by stl it's already expired (to prevent resurrection)
- this impl solves it differently. w_p is expired, but can still be dereferenced and used. Creating `s_p`s is not possible anymore, though.
- this is useful in destructors and callbacks.
2024-05-05 17:16:00 +01:00
Vaxry
bca7804bb6
internal: Window storage rework - part 1 ( #5762 )
...
* Window storage rework - part 1
* format
* remove useless include
* fix pch
* format
* fix crash in dwindle
* fix vram leak
* prefer .expired() for bool checks
2024-04-27 12:43:12 +01:00
ecf282d331
wlr-foreign-toplevel: move to new impl
2024-04-25 01:10:43 +01:00
d605e47511
renderer: block screen shader on screencopy
2024-04-03 21:35:16 +01:00
49f5fd59ad
opengl: minor adjustment to getPreferredReadFormat
...
fixes #4791
2024-03-19 02:42:39 +00:00
GartoxFR
b2c3440477
animations: Refactor AnimatedVariable ( #4911 )
...
* animation: Refactor AnimatedVariable
This commit decomposes the AnimatedVariable class into a base class
with the common attribute to all variable types and a templated derived
type containing strongly typed info on the type being animated.
Access to the typed version is perfomed using the visitor pattern. A
utility is provided to build a visitor on the fly using lambdas.
Adding a new type to be animated should just be a matter of adding the
typed in the list defined by the ANIMABLE_TYPES macro
The size of the commit is justified by the API change in the
AnimatedVariable class. No more vec(), fl() or col() method but a unified
value() method.
* animation: Remove visitor pattern
* animation: Fix coding style
* animation: Fix coding style
2024-03-02 00:35:17 +00:00
8c3613632a
renderer: nuke lastFrameDamage and rework finalDamage
...
this fucking SUCKED
2024-02-23 01:02:32 +00:00
94aeb06d6b
toplevelexport: set last damage for dmabuf copy
2024-02-22 03:10:01 +00:00
a42b984f51
screencopy: fix ~dtor being in monitorRenderResources map
2024-02-15 02:01:40 +00:00
ef490965a2
screencopy: attempt binding framebuffer before gathering format
2024-02-15 00:59:06 +00:00
f085ed4454
screencopy/toplevelexport: sanitize pointers in ::copyFrame
...
oopsie~~ >///<
2024-02-07 00:18:47 +00:00
b1b8d732e6
toplevelexport: fix missed pmonitor set for opengl
...
ref #4165
2023-12-15 21:20:13 +00:00
4e5d9b90c0
toplevelexport: fix missing GL_READ_FRAMEBUFFER set in shm copy
...
ref #4165
2023-12-15 21:04:34 +00:00
aa020a2a1a
toplevel-export: commence render pass before reading
...
fixes #4070
2023-12-07 17:58:13 +00:00
83248b6936
toplevelexport: fix getPreferredReadFormat param in captureToplevel
...
fixes #4043
2023-12-05 14:43:54 +00:00
68783d904d
screencopy: use buffer format for glReadPixels
...
fixes #4029
2023-12-04 03:52:54 +00:00
45d3fbb8d8
opengl: free window framebuffers in ~dtor
...
ref #4036
2023-12-04 01:44:16 +00:00
e496b0f250
screencopy: fix detecting gl shm formats
...
ref #4029
2023-12-03 22:04:07 +00:00
9c09f2a847
screencopy: fix shm exports with 10-bit
...
fixes #4019
2023-12-01 17:20:56 +00:00
ab40f240c3
screencopy: use drmFormat instead of wlr funcs
...
ref #4014
2023-12-01 00:23:48 +00:00
b9937484f4
screencopy: fix broken shm copying
...
fixes #4001
2023-11-30 10:14:35 +00:00
b281d8647a
screencopy: use new isNvidia() for format
2023-11-25 17:56:38 +00:00
Vaxry
2ebfd0c745
renderer: Move to a full Hyprland GL rendering pipeline ( #3920 )
...
Also updates wlroots
2023-11-24 10:54:21 +00:00
c619e6976f
screencopy: round boxes
...
fixes #3795
2023-11-08 12:43:07 +00:00
Vaxry
55b4f84fea
Internal: Hyprland box implementation ( #3755 )
...
* box impl
* remove unused operators
* missed applyfromwlr
2023-11-04 17:03:05 +00:00
df00727310
deps: update wlroots
2023-10-25 00:27:16 +01:00
memchr
3785defaf1
logging: implement std::formatter for some types ( #3380 )
2023-09-20 16:25:03 +01:00
398e861b55
internal: fix warnings
2023-09-07 16:43:01 +02:00
Vaxry
61a71c65ac
internal: Formatter rework ( #3186 )
2023-09-06 12:51:36 +02:00
8e04a80e60
toplevelexport: minor fixes to dmabuf
2023-08-08 19:10:53 +02:00
vaxerski
b65adf8d4a
toplevelexport: support dmabuf + various fixes
2023-07-20 12:42:25 +02:00
Vaxry
89b87158db
internal: Wrap regions ( #2750 )
2023-07-19 20:09:49 +02:00
vaxerski
7762ac0173
toplevelexport: ignore defunct windows
2023-06-13 20:13:21 +02:00
vaxerski
a31dceb2c6
includes: remove redundant from screencopy
2023-05-07 00:11:33 +01:00
vaxerski
ae82c3a639
screencopy: improve consistency of share indicator
2023-04-17 22:57:24 +01:00
vaxerski
8b3d8dc792
Format: use %lx for all addresses
2023-04-17 17:35:28 +01:00
vaxerski
edad24c257
Screencopy: unify frame and client between impls + event
...
Adds a new event to both hooks and ipc: screencopy
2023-04-15 23:43:41 +01:00
vaxerski
882be7765b
toplevelExport: honor overlay_cursor
2023-04-04 00:58:30 +01:00
Vaxry
0a099ca2ab
Hyprland Screencopy impl ( #1800 )
...
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-04-03 17:01:05 +01:00
Vaxry
1b56cc4e99
Added an Event Hook System ( #1578 )
...
* added an eventHookSystem
* Add all socket2 events to hooks
2023-02-19 20:54:53 +00:00
vaxerski
dbfa6eea7b
fixup stutter in rendering with toplevel_export
2023-02-16 22:51:38 +00: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
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
Vaxry
98a4fa2b0d
Added clang format ( #1239 )
...
* clang-format stuff and format files
2022-12-16 17:17:31 +00:00
Vaxry
111d209bff
Added toplevel handle sharing Rev2 ( #1203 )
...
* Added toplevel handle sharing
* nix: fix build
* update hyprland-protocols
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2022-12-12 14:56:42 +00:00
vaxerski
fba03540d5
fix sharing scaled windows
2022-12-09 14:44:20 +00:00
vaxerski
6c8d993477
minor toplevel sharing fixups
2022-12-06 18:58:42 +00:00
vaxerski
da76a1ed9e
block surface feedback on window sharing
2022-12-05 19:12:15 +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