Commit Graph

344 Commits

Author SHA1 Message Date
Pasalc
11666abf32 Added scaling and clamp support 2023-11-13 21:38:56 +03:00
Pasalc
4212095335 Added zoom fill 2023-11-08 20:14:22 +03:00
Pasalc
f6bff679ca Added --clamp-strategy option 2023-11-06 17:30:48 +03:00
Pasalc
3dee616cf6 Fixed not full texture rendering on viewport resulting in clamping 2023-11-04 17:08:59 +03:00
Alexis Maiquez
21c38d9fd1 Add support for disabling mouse interactions with the background (#176)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-09-23 18:20:35 +02:00
Phantasm
89612ea6c2 Reuse the same no output handling from wayland mode, remove the old one. 2023-09-23 18:04:37 +02:00
Phantasm
a853b50efe Unify error with the Wayland mode 2023-09-23 18:04:37 +02:00
Phantasm
d4c3ca3b44 Handle bad screen-root arguments in X11 mode
Still leaves a SIGABRT after the thrown exception from the logging
system.
2023-09-23 18:04:37 +02:00
Phantasm
ab9486b2f6 Add comments 2023-09-23 18:04:37 +02:00
Phantasm
ee499b06e2 Fix crash when 2+ screens are connected but not all are active in X11
When not all connected screens are active XRRGetCrtcInfo returns NULL
for the inactive screens resulting in a SIGSEGV when trying to push it
to the screens vector.
2023-09-23 18:04:37 +02:00
Alexis Maiquez
660f798d9a Move cstdint and cstdio for fft to the header file
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-05-07 19:54:39 +02:00
Alexis Maiquez
181dd1eef8 Fix for #161, texture priorities were not being properly taken into account
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-05-07 18:54:01 +02:00
Alexis Maiquez
e18e6f01be Added cstdint to ftt.cpp and CFileEntry.h
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-05-06 16:41:31 +02:00
Alexis Maiquez
1d45e2c88c Fix compilation on Ubuntu 20.04
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-05-06 14:27:06 +02:00
Alexis Maiquez
723fca552c Wayland: Moved frame-time checking to CWaylandOpenGLDriver instead of viewports
Wayland doesn't require specifics timings, each frame drawn re-queues a new frame
  so treating it as "render the screens" seems to be a safe bet for now
  As indicated in the TODOs once actual work is being done in the event loop
  it should be replaced by a non-blocking option in case no surface is being rendered

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-05-06 14:14:21 +02:00
Alexis Maiquez
dad98d93bd Brought back missing EGL code
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-23 04:33:32 +02:00
Alexis Maiquez
bd6fd9a100 Output rendering is now responsibility of the drivers (as it should be) instead of being handled by the CRenderContext
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-23 00:12:23 +02:00
Alexis Maiquez
21bcb7008f Prevent crashing on the PulseAudioPlayingDetector
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-22 14:02:25 +02:00
Alexis Maiquez
7c39db8b4b Added unistd.h missing from CWaylandOutputViewport
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-22 13:44:56 +02:00
Alexis Maiquez
b9dbb652d3 Hopefully last missed ENABLE_WAYLAND check
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-22 13:13:00 +02:00
Alexis Maiquez
ddd448b1e3 Added wayland build to github actions
Ensure wayland included files are ignored unless ENABLE_WAYLAND is enabled

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-22 13:09:31 +02:00
Alexis Maiquez
f047bdd2d6 Fixed oversight on Video backgrounds not working on X11
Added unistd.h to fix compilation error on ubuntu

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-22 12:57:47 +02:00
Alexis Maiquez
f21a6e64a7 Wayland implementation cleanup
Removed wayland-display in favour of screen-root, it should automatically switch between X11 and Wayland implementations
Removed all the window-server-specific code from CWallpaperApplication
Moved COutput from CWallpaperApplication to each CVideoDriver as the output is tied to the driver
Moved CFullScreenDetector from CWallpaperApplication to each CVideoDriver as the detection is tied to the video driver
Applied the Driver treatment to the Input, this way CInputContext doesn't depend on the driver used
Updated CRenderContext to be aware of viewport-specific context updates
Viewport information is now held inside COutputViewport instead of being a simple map
Merged CLayerSurface and SWaylandOutput, inheriting from the new COutputViewport to standarize the minimum requirements of a viewport
  (makeCurrent and swapOutput are common requirements, X11 was the outlier not needing these per-viewport)
Moved all the viewport-specific code of Wayland from CWaylandOpenGLDriver to It's own class CWaylandOutputViewport
Fixed an issue under Wayland where sometimes the background surfaces wouldn't get anything drawn because the CWaylandOutput wasn't reset
Updated screenshot-taking code to be standard for all drivers again

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-22 11:31:50 +02:00
vaxerski
2b7367662f Fix multi-bg screenshots 2023-04-21 18:24:19 +01:00
vaxerski
031ed01c42 properly flip screenshots 2023-04-21 18:03:08 +01:00
vaxerski
723be5af70 ignore empty viewports in geom 2023-04-21 17:59:13 +01:00
vaxerski
280ef71448 calculate full size more reasonably part 2 2023-04-21 17:33:57 +01:00
vaxerski
8684c8d60f calculate full size more reasonably 2023-04-21 17:33:19 +01:00
vaxerski
a782fdd1f2 fix crash on 1 wp 2023-04-21 16:11:48 +01:00
vaxerski
ea15895916 remove newline after private 2023-04-21 15:25:13 +01:00
vaxerski
87b765e618 properly adhere to fps limits 2023-04-21 15:23:10 +01:00
vaxerski
997b9b8ec4 fix videos 2023-04-21 15:10:20 +01:00
Vaxry
8e1ae5e627
Merge branch 'Almamu:main' into main 2023-04-21 02:10:36 +01:00
Alexis Maiquez
0387ebc588 Catch readTexture exceptions on CTextureCache::resolve so multi-background setups can properly lookup files...
This might need further improvements to use a texture cache by background instead of globally...

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-21 03:09:18 +02:00
vaxerski
997f780f4c minor improvements to pointer handling 2023-04-21 02:07:27 +01:00
vaxerski
ee3f000ab1 multimon improvements part 1 2023-04-21 01:45:01 +01:00
vaxerski
c5b27cd3dc split mouse input by backend 2023-04-21 00:17:55 +01:00
vaxerski
bab0e7b65f ifdef mouse wayland impl 2023-04-20 23:05:13 +01:00
vaxerski
5c8992bafc better handling of monitors 2023-04-20 23:04:32 +01:00
Vaxry
90720fc948
Merge branch 'Almamu:main' into main 2023-04-20 22:55:17 +01:00
vaxerski
75bb8cc156 Mouse handling 2023-04-20 22:54:18 +01:00
Alexis Maiquez
a713ad001a Fixes #160, xray effects on full image layers weren't working properly. Should fix anything using the inverse matrix of modelViewProjection
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-20 23:40:16 +02:00
vaxerski
1f6cc8206f Merge remote-tracking branch 'upstream/main' 2023-04-20 22:11:54 +01:00
vaxerski
ebc80b28e1 fix minor oopsies with the ls move 2023-04-20 22:07:59 +01:00
vaxerski
ce2dc8395f move ls to a class 2023-04-20 22:02:47 +01:00
Alexis Maiquez
73ef4d6dbf Added support for g_Daytime in shaders
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-20 22:48:08 +02:00
Alexis Maiquez
96b931d931 Added g_ModelMatrix, g_NormalModelMatrix, g_ViewProjectionMatrix, g_LightAmbientColor and g_LightSkylightColor to shaders
Added support for specifying array variables for shaders

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-20 21:54:45 +02:00
vaxerski
d13918697a added protocol making 2023-04-20 14:11:56 +01:00
vaxerski
ffeec7f1dd make wayland impl optional 2023-04-20 13:52:25 +01:00
vaxerski
43409229a9 proper scaling + recalc on geom change 2023-04-20 13:28:36 +01:00
vaxerski
244722387b flip v in LS output 2023-04-20 13:00:03 +01:00
Vaxry
6838ca66cc
Merge branch 'Almamu:main' into main 2023-04-19 22:37:56 +01:00
Alexis Maiquez
37b40ec29f Do not block on calls to pa_mainloop_iterate for sound recorder, should improve #158
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-19 23:34:48 +02:00
vaxerski
e473516bb7 fix rendertime inaccuracy 2023-04-19 22:10:08 +01:00
vaxerski
b505db103c allow specifying outputs with a flag 2023-04-19 21:02:44 +01:00
vaxerski
5b1ea68164 fix egl config 2023-04-19 20:52:35 +01:00
vaxerski
d14442fd7f fix full size 2023-04-19 20:26:09 +01:00
vaxerski
fd810295d7 fix monitor geom 2023-04-19 20:24:15 +01:00
vaxerski
e5b447bdc9 initial impl 2023-04-19 20:18:20 +01:00
Alexis Maiquez
13e43bada7 Added parameter to configure fullscreen detection
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-04-18 06:56:25 +02:00
Alexis Maiquez
9a5913921c Hopefully properly support Fullscreen and Passthrough images
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-30 02:01:07 +02:00
Alexis Maiquez
ee5c2b6106 Fixed visible value for effects not being correct
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-29 22:12:56 +02:00
Alexis Maiquez
bf47510d0d Hopefully improved pa_stream_unref issues
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-29 22:10:10 +02:00
Alexis Maiquez
b70264e54a Fix for #155
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-29 20:03:43 +02:00
Alexis Maiquez
93380ae229 Added some window hints
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-27 01:36:01 +02:00
Alexis Maiquez
a89d8ebb22 Added basic support for audio processing so backgrounds can react to sound playing in the system
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-26 18:18:21 +02:00
Alexis Maiquez
ca471c04fc Placed audio detectors in the right folder
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-24 02:51:17 +01:00
Alexis Maiquez
45761fb858 Added sound muting when apps are fullscreen too
Finally closes #150 and #152

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-24 02:48:49 +01:00
Alexis Maiquez
978f56cdca Added sound playback detection to mute when something else plays audio
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-24 02:36:42 +01:00
Alexis Maiquez
cc7ec0561d Separated X11 fullscreen code detection from the output driver as they don't have to work at the same time
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-23 23:38:23 +01:00
Alexis Maiquez
84f6018e1a Added application state to keep track of enable/disable audio and volume changes when things go fullscreen
Removed .clang-format as it's not useful

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-23 09:10:51 +01:00
Alexis Maiquez
f499454957 Fixed identation problems
Added comments all over the codebase to explain things a bit better
Improved CApplicationContext to be a bit more self-explanatory
Abstracted CRenderContext access away into a helper that every render class should use

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-23 01:42:01 +01:00
Alexis Maiquez
92fa11b0a6 Take into account g_KeepRunning for the fullscreen detection mechanism
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-21 23:42:52 +01:00
Alexis Maiquez
6802511bb9 Added support for detecting full-screen windows on X11 output
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-21 23:41:46 +01:00
Alexis Maiquez
847cd56ddf Add GLFW error handler to show error messages, hopefully gives more descriptive errors (hopefully helps #149)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-21 07:50:15 +01:00
Alexis Maiquez
6d5c5b7825 Hopefully addressed #148 while detecting the patches folder
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-21 07:35:41 +01:00
Alexis Maiquez
a0d1a7202f Fixed build of release versions
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-21 07:15:38 +01:00
Alexis Maiquez
b69ce8ba57 Added support for running multiple X11 backgrounds off the same instance
Window mode now has extra settings for setting the position and size
Fixed audio not muting when --silent was used

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-03-21 07:07:36 +01:00
Alexis Maiquez
e2d80a074c Add messages for [COMBO] types
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-11 05:51:35 +01:00
Alexis Maiquez
5e384d968d Fixed multiple defines of the same thing
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-11 05:34:35 +01:00
Alexis Maiquez
37631e9c40 Upgraded to shader version 330
Added support for shader patches
Removed useless DEBUG define in favour of NDEBUG

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-11 03:21:45 +01:00
Alexis Maiquez
4e0f02f64d Added support for using zcompat shaders, should fix audio bars shaders for the most part
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-10 22:33:48 +01:00
Alexis Maiquez
b16cc2fd3b Brought back some changes that were removed with previous revert
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-09 00:28:50 +01:00
Alexis Maiquez
64d9c2e4e6 Fix crash on effects parsing
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-09 00:22:48 +01:00
Alexis Maiquez
3d8452ee9a Revert "Properly clamp volume value"
This partially reverts commit 95713ae439.

# Conflicts:
#	src/WallpaperEngine/Application/CApplicationContext.cpp

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-08 23:59:39 +01:00
Alexis Maiquez
99a4935825 Add composelayer checks back until we figure out how they work
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-08 18:55:27 +01:00
Alexis Maiquez
732c60da46 More code cleanups
Update .clang-format

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-08 18:48:19 +01:00
Alexis Maiquez
48a91ff297 More code cleanup
Input is now handled by context

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-08 14:57:17 +01:00
Alexis Maiquez
a8ef45265c Fix build with old ffmpeg
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-08 14:34:22 +01:00
Alexis Maiquez
d2e82e72d8 Small code cleanups
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-08 14:27:41 +01:00
Alexis Maiquez
26f6156f34 MPV should respect volume levels now
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-07 11:29:57 +01:00
Alexis Maiquez
95713ae439 Properly clamp volume value
Removed all usages of std::make_pair

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-07 04:35:47 +01:00
Alexis Maiquez
55760aee4d More code cleanup:
- Separated program args parsing and validation from initialization code
 - Application's main body in it's own class

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-07 04:17:51 +01:00
Alexis Maiquez
476d45be0a Fix a possible crash when a packet was freed on audio playback
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-07 04:16:43 +01:00
Alexis Maiquez
490718c22b Fix missing #if body for number of out channels
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-07 00:45:44 +01:00
Alexis Maiquez
456dd531cf Cleanup and rewrite of the audio resampling code to use non-deprecated code when possible
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-07 00:40:51 +01:00
Alexis Maiquez
b79444cdd9 Fix typo in last commit
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-07 00:05:13 +01:00
Alexis Maiquez
3df27e289b Brought back deprecated code for older ffmpeg builds
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-07 00:03:51 +01:00
Alexis Maiquez
ecd8ff3757 Applied the same context-driver treatment to the audio subsystem (still needs some extra work to ensure all audio plays fine and a good cleanup)
Fixed README.md to properly reflect all dependencies in the command examples
Added support for audio looping

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-06 22:35:46 +01:00
Alexis Maiquez
97ddc91ff5 Hopefully solved #81, should be improved at least
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-05 06:52:44 +01:00