Commit Graph

140 Commits

Author SHA1 Message Date
Alexis Maiquez
f4ccf40e14 Fixed background scaling (should improve #81)
Added some more debug information for renderdoc

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-06 12:48:55 +01:00
Alexis Maiquez
fa67fa5b00 Fixed bloom effect not being properly applied
Added support for userparameter on the clearcolor of the scene
Scenes should draw into the full framebuffer

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-05 10:50:55 +01:00
Alexis Maiquez
56ebb78287 Fix videos being flipped vertically (missed from last commit)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-04 19:09:29 +01:00
Alexis Maiquez
672ea47d23 Bumped up to OpenGL 3.3
Added base VAO
Fixed scene image align issues and things being flipped vertically under specific situations

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-04 18:41:23 +01:00
Alexis Maiquez
0843f69edf Fix some backgrounds appearing flipped upside down, bloom effect now renders directly into the _rt_FrameBuffer as the flip happens after the scene is drawn completely
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-04 11:28:10 +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
d8d05363a9 Implemented proper alignment for images
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-04 10:13:01 +01:00
Alexis Maiquez
e24c19ff81 Added Missing braces that caused crashing on non-bloom backgrounds
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-03 23:34:21 +01:00
Alexis Maiquez
b5b7824233 Better approach on rendering the bloom effect, uses one less draw call
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-03 23:32:49 +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
625397ea0c Added a basic (and somewhat convincing) parallax effect for the camera
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-03 18:43:05 +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
5521e90155 Ignore composelayers for now
Added support for color blend mode
Main pass' blendmode should be normal
Last pass' blendmode should be the first's
Fixed order of glClear's so _rt_FullFrameBuffer is the right color at the right time
Simplified effect and pass creation code a bit more
Non-visible images should render the full chain into the pingpong framebuffers instead of to screen
Fixed an integer division not producing float numbers

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-03 13:14:52 +01:00
Alexis Maiquez
261bc696df Added some object labels in opengl so they're reflected on RenderDoc while on debug
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-02 09:28:42 +01:00
Alexis Maiquez
69657a0014 Ignore effects if there's none in the list
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-01 21:38:12 +01:00
Alexis Maiquez
4641420bb3 Fix image's GBO's not being the right size
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-01 21:12:30 +01:00
Alexis Maiquez
082af30c63 Cleanup of rendering code for images, there's functions not needed anymore
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-01 05:43:18 +01:00
Alexis Maiquez
7e6cb9a458 Simplified image rendering code further
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-01 04:00:34 +01:00
Alexis Maiquez
cb6f05ff27 Simplified image rendering code a bit so it's easier to follow
Improved detection of macros for shaders

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-31 12:09:14 +01:00
Alexis Maiquez
157966a528 Move glClear to the common point before the actual render of an image
Added work in progress reverse engineering of MDL files

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-31 07:05:22 +01:00
Alexis Maiquez
da6dca0473 Added missing glClear for simple images
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-29 14:03:05 +02:00
Alexis Maiquez
c9f8624b8b Reduced amount of glClears used in the rendering process
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-29 14:02:10 +02:00
Alexis Maiquez
a13d2f265b Fixed regression for spritesheets not working properly
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-28 18:43:12 +02:00
Alexis Maiquez
7b7d699371 Implemented proper dependency detection for images
Simplified texture decision graph and preload it so render is quicker
Improved material detecion on shaders

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-28 18:21:29 +02:00
Alexis Maiquez
9ff33ef61f Support for specifying FBOs texture flags
Further improvements on detection of combo values for shaders
Support for detecting visibility settings on effects

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-28 15:45:35 +02:00
Alexis Maiquez
4d5cdf57b2 First attempt at automatically detect orthographic projection's size
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-28 09:29:56 +02:00
Alexis Maiquez
1b1bec879d Added missing code for previous video FPS settings
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-28 07:38:57 +02:00
Alexis Maiquez
4e3254e843 Improved detection of "previous" textures (fixes 2370927443)
Added support for PKGV0018
Try to prevent crashing when shaders do not compile and go with whatever can be displayed

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-26 09:09:13 +02:00
Alexis Maiquez
8955ba791c Bumped up shader version to 150 (work on shaders not compiling for #115 and #117)
Improved jsonFindDefault to not crash when the value types do not match (should partially fix #116)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-07-15 12:20:12 +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
e5ef7bd53e ~ updated shader compiler to look for the first function, not just main
should fix #106

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-06-10 14:04:22 +02:00
Alexis Maiquez
e51734e4f9 ~ better fix for #103
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-06-09 12:33:38 +02:00
Alexis Maiquez
cf2e31a606 ~ quick fix for shader compilation with nested includes, should fix #103
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-06-09 12:12:50 +02:00
Alexis Maiquez Murcia
a12d05a61d + added placeholder code for audio playback inside videos (disabled for now)
~ fixed video looping not working properly (fixes #102)

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2022-06-01 20:35:15 +02:00
Alexis Maiquez Murcia
7acac874fa ~ Includes should be after all variable declarations and before the main function, fixes #97 and #100
Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2022-06-01 20:12:23 +02:00
Alexis Maiquez Murcia
f4988158ad ~ Keep original X messages as they're kind of useful for debugging
Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2022-05-10 00:18:26 +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
6808f31cd6 Handle XIO errors to keep the background running as much as possible, should fix #91
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-05-08 14:14:36 +02:00
Alexis Maiquez
cd3c024c48 Merge branch 'main' of git@github.com:Almamu/linux-wallpaperengine.git 2022-05-08 03:49:36 +02:00
Alexis Maiquez
e3aa82c2ed Fix ratio calculation not being exactly right
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-05-08 03:49:30 +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 Murcia
fca645b25a ~ Fixed RG88 and R8 textures not loading properly
~ Fixed combo setting based on the textures supplied to the image
~ Fixed vec4 shader constants not using the default value
  Should fix #87

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2022-04-07 23:34:03 +02:00
Alexis Maiquez Murcia
8450413105 The "max" function has the parameters in the reverse order, fixes #86 not booting up
Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2022-04-07 20:45:19 +02:00
Alexis Maiquez Murcia
693f3c5d0e Added different PKGV versions to the list of supported packages, should fix #85
Added some extra logging to the shader compilation to have an easier debugging experience

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2022-04-04 20:59:04 +02:00
Alexis Maiquez
cad78c58f9 + Support animated images in the background
~ ITextures can now also return sub-textures width and height
+ added proper code to handle animated images to properly play at normal speed

  this should actually fix #79 for good

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-03-06 01:28:31 +01:00
Alexis Maiquez
64d2f77d41 + added support for reading multiple images from a texture
first steps to fix #79

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-02-28 23:48:43 +01: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
0aefcbe1a0 ~ fixed backgrounds not rendering in the proper positions under some specific configurations
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-02-28 02:22:46 +01:00
Alexis Maiquez
5bc0525493 ~ reorganized context initialization so opengl is ready
~ moved pixmap, gc and image creation to the initialization
  TODO: SUPPORT SCREEN SIZE CHANGES (THIS MIGHT NEED REINITIALIZATION OF THINGS)
~ moved fbo creation to initialization as it won't change anymore
~ reverted render code to the original loop as now the framebuffer is exactly as big as the whole display
~ moved glReadPixels off the wallpaper as that's code is exclusively used for screen rendering and not general rendering
~ XChangeProperty forces the update of the background, otherwise the compositor stops refreshing the screen and the background gets stuck
~ updated viewport variables to be integers instead of floats
~ reverted frame rendering code to be simpler and added the option to specify a framebuffer as target instead of screen

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-02-28 02:03:47 +01:00
Hynak
a2222b05ef Revert changes due to introducting flickering. 2022-02-26 19:41:02 -05:00