Commit Graph

93 Commits

Author SHA1 Message Date
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
e08a252f03 + Added brightness reading for image objects
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-12-04 23:15:56 +01:00
Alexis Maiquez
afe7452340 + added support for alpha and color loading for images
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-12-04 21:57:21 +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
Alexis Maiquez
adad3bd18c ~ Changed parser to give sane defaults to some values (like origin, scale and size for each object)
~ Improved path detection on command line arguments
- Removed references to old, deprecated options

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-11-29 12:57:15 +01:00
Alexis Maiquez
f5e943b0fc + added ansiotropic filtering
~ material's binds are now a map by index so it's easier to use
- removed depth buffer for FBOs as they're not really useful (at least for now)
~ separated image setup in two stages so FBO creation happens before actually requiring them
- removed ping-pong FBOs where they didn't make sense
~ image's should now render to scene buffer directly whenever possible
~ better support for FBO scaling
~ rendering should now take into account targets and binds in a much better way

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-28 21:41:24 +02:00
Alexis Maiquez
5828b2ee80 + added some extra documentation on rendering based on observations and trial and error
~ deprecated --dir --pkg options, the software will automatically detect the background we're loading
+ first draft of FBO support, there's still some extra work to do
~ texture header is now hidden behind getters so the textures can be any kind of source
~ proper setting of resolution and translation variables for textures
~ simplified call flow for any pass rendering, removing render functions on effect and material
~ framebuffer setup has to happen before object setup in the scene

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-27 01:39:23 +02:00
Alexis Maiquez
93456940e3 ~ fix videos not being rendered properly
~ fix some combos not having the correct casing for shaders

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-08 21:57:57 +02:00
Alexis Maiquez
3f4996234e ~ changed some json data to have a default value if it's null or not-existant
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-08 21:17:02 +02:00
Alexis Maiquez
3736c0c1b9 - removed some irr:: types left on the code that I missed
~ quick and dirty hack to make combos propagate between shaders (this needs to be improved, left TODOs for that)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-08 20:30:03 +02:00
Alexis Maiquez
b152913d90 - removed useless variable types that are not being used anymore
~ updated some strings to ensure the type-checking matches
+ added support for integer <-> float casting on constants
+ added support for vec2 variables

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-04 15:44:39 +02:00
Alexis Maiquez
65bfbe1493 + added some default values for TextureMipmap as they were not being set automatically by the compiler sometimes (and thus breaking the texture load)
+ added helper to parse vector4 data from json
- removed some old, commented out code
+ added support for getting textures from the shader's code too (fixes masks on some backgrounds)
+ added support for shader varibles with default values from shader's source code

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-04 15:02:11 +02:00
Alexis Maiquez
eb29078cfe - removed duplicated list of variables and unified under the new way of registering uniforms, simplifying required code
- removed commented out code on CPass as there's already almost equivalent code working

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-01 01:48:21 +02:00
Alexis Maiquez
8bc19b20ae + added support for the isVisible flag on images
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-08-31 02:51:10 +02:00
Alexis Maiquez
dd76439901 ~ fixed a_TexCoord variable not having the correct values
- removed irrlicht functions and types from the active codebase so it's no longer required at compile time (CContext still there as the code might be still be useful)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-08-31 02:29:28 +02:00
Alexis Maiquez
291b7e364a - removed/commented out most irrlicht-specific code
~ written close to equivalent versions in OpenGL code using GLM and GLFW
~ written replacements for texture and package loading to not use irrlicht anymore
~ updated shader compiler as we now don't need to replace attributes anymore
+ added support for texture flags in the texture header (as they're needed for opengl to get proper information)

TODO: REWRITE VIDEO PLAYER SUPPORT AS THIS UPDATE EFFECTIVELY BREAKS IT

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-08-31 01:14:08 +02:00
Alexis Maiquez
10191202df + added light element type to the detection list, not supported yet
+ added PKGV0004, PKGV0005, PKGV0006 to the list

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-06-16 18:10:05 +02:00
Alexis Maiquez
a0ed644491 ~ added search for text objects in the backgrounds to prevent crashes for now
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2020-08-25 15:19:45 +02:00
Alexis Maiquez
27b50ffac9 ~ some settings for the camera are optional, so treat them that way (camera shake and parallax)
+ added helper functions to get optional values in an easy way

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2020-08-25 15:09:29 +02:00
Alexis Maiquez
d5ee71540d ~ ignore particle loading errors as the required data is not yet 100% clear
+ added support for PKGV0009 packages (should fix #24 for @UltraBlackLinux)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2020-08-24 17:51:24 +02:00
Alexis Maiquez
cf70484188 ~ forward port changes on the pull request #22 by @ambidot
Added positioning code based on material origin, size, and scale.
  Fixed mirrored vertices and mirrored BGRA pixels.
  Added DXT3 support.
  Fixed DXT decompression segfault due to sizeof (long).
  Fixed RGBA packing order.
  Enabled PKGV0008 support.
  Fixed detection of json "scene" string with uppercase characters.
  Fixed positioning of miscellaneous foreground objects.
  (commits 72831e1b2f, 9017a5732e, 853d128830, af846053c8 and c45b58bc96)

~ updated CRotationRandom to support numeric and vectorial rotations

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2020-07-29 13:21:54 +02:00
Alexis Maiquez Murcia
79e9ead2ee Merge branch 'data-separation' of github.com:Almamu/linux-wallpaperengine into data-separation
# Conflicts:
#	CMakeLists.txt
#	src/WallpaperEngine/Core/Objects/Particles/Initializers/CRotationRandom.cpp
#	src/WallpaperEngine/Core/Objects/Particles/Initializers/CRotationRandom.h
#	src/WallpaperEngine/Core/Projects/CProperty.cpp
#	src/WallpaperEngine/Render/CScene.cpp
#	src/WallpaperEngine/Render/Objects/CSound.cpp
#	src/WallpaperEngine/Render/Objects/CSound.h

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2020-07-06 20:26:04 +02:00
Alexis Maiquez Murcia
7d7c51a3bc ~ moved camera initialization before the actual items initialization
+ added PKGV0007 to the list of supported packages (experimental)
+ added support for parsing properties of type bolean
+ added parsing of a missing particle initializer (turbulentvelocityrandom)
+ added back sound playinh which was left out when rewritting

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2020-07-06 20:05:15 +02:00
IceCryptonym
5d5ce361fe
Initial video support without audio (#14)
* Adds FFmpeg to CMake
* Refactors to allow support for other wallpaper types
* Updates README.md for compilation requirements
* Initial video support without audio
* Properly support different wallpapers
* Fixes videos not rendering
* Nitpicks
* Moves code related to rendering from Core::CVideo to Render::CVideo
2020-04-27 18:50:17 +02:00
Alexis Maiquez
838c9499e7 ~ changed missed nlohmann::json::iter_imp<nlohman::json> to nlohmann::json::iterator from PR #12
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2020-03-25 14:36:07 +01:00
IceCryptonym
b37c519209 Nitpicks 2020-03-25 10:20:34 +10:00
IceCryptonym
8172c970b1 Forgot to change key parameter to correct value 2020-03-24 20:41:32 +10:00
IceCryptonym
52fc0ffbac Forgot to change key parameter to correct value 2020-03-24 20:31:31 +10:00
IceCryptonym
7baa77ef7e Missed a few replacements of content.find 2020-03-24 19:04:44 +10:00
IceCryptonym
5122206d83 Renames jsonFindValueRequired to jsonFindRequired 2020-03-24 15:38:56 +10:00
IceCryptonym
e30f62d7a1 Clean up json.find(...) calls 2020-03-24 15:32:27 +10:00
Alexis Maiquez
cbe79b535b ~ changed wrong class name crom CPassess to CPass
+ added parsing of bind section for shader passes
~ various new classes to properly handle texture targets, shader passes and materials

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-11 15:32:57 +02:00
Alexis Maiquez
5e94fc7bab + added parsing of dependencies for objects
+ added fbos parsing from effect files
~ cleaned up effect parsing code
~ support for texture target parsing in materials for texture render targets
~ changed way of modifying textures from passes to a more abstracted way
~ moved shader constants to it's own namespace

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-11 09:15:50 +02:00
Alexis Maiquez
e32bc4d6f1 ~ effect parsing now takes into account combos and assigns the shader constants to the proper shader pass
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-10 15:28:59 +02:00
Alexis Maiquez
318a99d5ca + added vector3 support for shader constants (looks like strings were vector3 after all)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-10 15:01:59 +02:00
Alexis Maiquez
4358e7c173 - removed shader string constants, shaders do not have any, for future reference, these might be vectors or colors
+ shader constants now should be correctly applied as values for variables whenever possible

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-10 14:54:49 +02:00
Alexis Maiquez
3587fdec1e ~ changed all iterators to auto
~ changed most pointers to const references to prevent modification, specially from the background parser

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-10 11:02:45 +02:00
Alexis Maiquez
3371e10b01 ~ fixed segmentation fault when creating a scene
+ added check for texture rendering on startup
~ fixed possibly wrong texture size for passes
~ changed camera position

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-09 16:06:28 +02:00
Alexis Maiquez
7ab533aaab + Support for multi-passes materials added
Take in mind that this feature is still in development, so the result most likely will be very different from the actual wallpaper engine
  The final approach might be different from what's currently in use, but It's just a nice proof of concept approach

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-09 02:30:29 +02:00
Alexis Maiquez
32a6a7af65 + Added parsing of shader constants for effects
~ Improved Shader Compiler parameter list to a better approach
+ Added support for one-pass effects with shaders (only first shader/pass will be applied)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-08 21:09:19 +02:00
Alexis Maiquez
fc8778ab64 ~ More changes to the new parser to properly load object passes from JSON (combos, elements missing, shader, etc)
+ Added camera for new renderization code
+ Added scene for new renderization code
+ Added object for new renderization code
+ Added image for new renderization code
  WARNING: THIS IS A REGRESSION AS IN SHADERS ARE NOT AS COMPLETE AS IN THE MASTER BRANCH
~ New renderization code in place

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-06 15:54:41 +02:00
Alexis Maiquez
1c50095ead ~ Changed FileSystem/utils.h to FileSystem/FileSystem.h following the same criteria used in Core namespace
~ Updated #include directives to include full paths to files
~ Re-organized folder structure for the project

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-04 09:18:33 +02:00