Commit Graph

97 Commits

Author SHA1 Message Date
Almamu
65f5c46a1c chore: added clang-tidy to linting.sh (needs cleanup first) 2024-05-11 19:32:46 +02:00
Almamu
0d36d6e222 fix: X11 support should not be enabled if partial installation is detected 2024-05-11 17:22:40 +02:00
Almamu
953ef01749 feat: conditionally enable wayland and x11 support 2024-05-11 17:19:42 +02:00
Almamu
ac62d5470a fix: CWebBrowserContext wasn't in the right place 2024-05-07 14:00:31 +02:00
Almamu
235cda8c94 chore: move cef initialization to its own context 2024-05-07 03:59:40 +02:00
Almamu
006d4ee3d0 chore: move wallpaper types to their own folder 2024-05-07 02:55:10 +02:00
Pasalc
ca3c73740c
Basic support for web wallpapers (#196)
* Updated gitignore

* Basic Web support

* Basic Cmake(not working)

* Working CEF

* Clean up Render/CWeb

* Download CEF in CMAKE

* Fixed compile error(excesive comma)

* Fixed CWeb compile error(scaling mode)

* Commented flag in CEF flag(-fno-rtti) which disabled dynamic cast

* Commented CEF compiler flags for MacOS

* Added third_party to gitignore

* Fixed libvulkan.so.1 error (deleted file entirely)

* Removed cefsimple, CefShutdown in signal, cleaned up cmake a bit

* Updated .gitignore

* Get render function to previous version

* Fixed typo in coment

* Fixed tab

* Removed shaders too

* Fix codefactor issues
2024-05-05 23:44:26 +02:00
Pasalc
11666abf32 Added scaling and clamp support 2023-11-13 21:38:56 +03:00
Alexis Maiquez
af72b8163b Enable wayland support automatically if all libraries are available instead of having an individual switch
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-05-07 21:31:51 +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
c5b27cd3dc split mouse input by backend 2023-04-21 00:17:55 +01:00
vaxerski
c84ec9aedd Build protocols in cmake 2023-04-20 21:27:47 +01:00
vaxerski
4e03774cf8 use egl from cmake find opengl 2023-04-20 21:17:45 +01:00
vaxerski
0838ea2b00 check for wayland modules 2023-04-20 14:23:39 +01:00
vaxerski
8bae933073 better searching for egl 2023-04-20 14:22:03 +01: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
e5b447bdc9 initial impl 2023-04-19 20:18:20 +01: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
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
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
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
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
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
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
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
59bff58f5c Updated README with mpv dependencies
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-05 06:15:48 +01:00
Alexis Maiquez
7079d12e2a Switched video backgrounds to mpv (should fix all the videos that weren't playing sound or had random issues)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-05 06:11:04 +01:00
Alexis Maiquez
a24b1923f6 Cleanup of code:
- use of auto in some places (more of this to come)
 - use for loops instead of iterators for most of the loops
 - extracted glfw/glew code into it's own class
 - make usage of std::filesystem instead of checking things with old C libraries

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-03 18:41:51 +01:00
Alexis Maiquez
d370e028ff Renamed CContext to CRenderContext to allow for the introduction of CAudioContext in following iterations
Improved logging and error reporting to be a bit more flexible

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-03 00:00:17 +01:00
Alexis Maiquez
92bdde2bd1 Renamed CUserSettingColor to CUserSettingVector3 as it makes more sense
CUserSettingVector3 are initializable with just one float value
Objects' origin and scale are now UserSettings too

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-01 03:10:38 +01:00
Alexis Maiquez
176470dad9 Image color and alpha can now be user-settings
Removed old Color structures not useful anymore

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-01 02:08:05 +01:00
Alexis Maiquez
fc150576eb Object and effect visibility can now be compared to project's properties
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-01-30 13:34:02 +01:00
Alexis Maiquez
62af627ffa Added some missing texture formats to the definition
Added some extra settings for debugging

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-01-29 21:15:26 +01:00
Alexis Maiquez
ed1efdcd66 Added parsing for text properties
Simplified how passes rendering works and separated it into a two stages process
  Setup (prepares shaders, uniforms, attributes, etc)
  Render (only performs the actual rendering)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-04 10:16:15 +01:00
Alexis Maiquez
cdaebbe893 Added support for camera bloom
Added support for virtual files

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-03 23:07:13 +01:00
Alexis Maiquez
c13d743022 Container access should happen through CContext
Textures now have a cache system that prevents loading them more than once

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-03 14:27:05 +01:00
Alexis Maiquez
91d8dbdaec Update binary name and provide a rudimentary fallback for old binary name (unsupported)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-08-24 03:28:36 +02:00
Alexis Maiquez
09effd0303 CFBO frame dummy values added
Added combo properties support
Bumped up GLSL version to 130 and added some extra definitions

This work goes on to #115, although the background won't start up yet because of shader compilation issues

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-07-14 22:12:46 +02:00
Alexis Maiquez
4561f5ca7f Raised minimum cmake version to 3.12, should fix errors about add_compile_definitions
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-07-14 20:01:41 +02:00
Alexis Maiquez
28f0868caa Check for XSetIOErrorExitHandler so old Xlib versions can work just fine
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-05-08 14:47:34 +02:00
Alexis Maiquez
eb14099c4c Removed SDL_mixer in favour of ffmpeg for audio decoding
Added extra option for general audio volume

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-05-08 03:37:32 +02:00
Alexis Maiquez
746d0943ff Fix warnings on cmake execution to make it easier to understand the output of the process
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-05-01 23:36:36 +02:00
Alexis Maiquez
f4955f1531 - removed dependency on std::filesystem
~ moved some things into CContext so main is a bit cleaner
~ moved wallpaper object creation into CWallpaper so main is a bit cleaner

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-02-28 14:54:45 +01:00
Alexis Maiquez
009321572e - removed custom glfw3 from the project as it's not needed anymore
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-02-28 02:31:51 +01:00
Alexis Maiquez
20c4ad3652 + Added better logging for asset loading errors and some extra information, should help get better information on #59
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-01-31 19:40:22 +01:00
Alexis Maiquez
b55f2e8bf4 + Added PKGV0015 support
+ Added basic support for mouse position on shaders (still needs to be adjusted for backgrounds that are too big for the screen)
  (this makes XRAY effects work)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-12-03 02:02:46 +01:00
Alexis Maiquez
7db3618350 + Added parsing for shader constants that have extra information
+ Added support for slider properties

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-11-29 13:56:50 +01:00