Commit Graph

97 Commits

Author SHA1 Message Date
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
6c8187324e - removed -fpermissive from the C++ flags compiler as it was screwing up the compilation
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-10 15:51:05 +02:00
Alexis Maiquez
0225cac917 ~ changed glfw to use a custom library version until upstream adds proper support for this
~ brought back proper background rendering and position detection

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-08 19:09:43 +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
16ed2f30de + added FreeImage for loading all the non-compiled textures (jpg, pngs, etc)
+ set proper glViewport instead of hardcoded 1920 by 1080 (this might require some changing and instead do a glViewport of the screen/window size and then scaling the backbuffers)
~ set proper texture size for pingpong buffers (to work with the viewport fixes)
- removed FREE_IMAGE_FORMAT as it's already included in the FreeImage library

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-02 23:59:00 +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 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
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
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
dc36adb200 + added mouse input handling and mouse position variable to shaders
+ added vector2 pointer class for shader parameters

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-10 13:55:12 +02:00
Alexis Maiquez
d7cf8af7ca + created global variable storage for shaders
+ added g_Time to global variable storage
- removed global g_Time from main
~ changed "shader parameters" to "shader variables" as it's a more apt naming

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-10 13:27:18 +02:00
Alexis Maiquez
f7be32eed3 ~ moved OnRegisterSceneNode to CObject as this function should barely change
+ support for sounds added

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-09 10:13:06 +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
75fd581eac Merge branch 'data-separation' of https://github.com/Almamu/linux-wallpaperengine into data-separation
# Conflicts:
#	main.cpp
#	src/WallpaperEngine/video/renderer.cpp

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-05 17:26:58 +02:00
Alexis Maiquez
b8b3c2899d ~ Removed static variables in namespace WallpaperEngine::Irrlicht and moved to a context approach
This includes changes to old code to be compatible, the externs won't be used once the renderer is rewritten and the old code removed

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-05 17:24:16 +02:00
Alexis Maiquez
eb60ea9029 Merge branch 'master' of github.com:Almamu/linux-wallpaperengine into data-separation
# Conflicts:
#	CMakeLists.txt
#	main.cpp
#	src/WallpaperEngine/video/renderer.cpp

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-04 23:04:01 +02:00
Alexis Maiquez
82c187fa76 ~ Support for displaying on background of specific screens instead of displaying on top, please carefuly read the README.md before using
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-04 22:08:32 +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
Alexis Maiquez
06ecbcdd65 + Added property parsing (color parsing for now only)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-03 15:05:45 +02:00
Alexis Maiquez
5c56e0860b ~ Moved Shader compiler to the proper, new namespace
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-09-02 12:19:42 +02:00
Alexis Maiquez
69724adfdc ~ More class name changes and namespace modifictions (fs and irr)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-08-16 14:56:16 +02:00
Alexis Maiquez
654918904a ~ Changed namespace names for wp::core and wp to a more suited name
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-08-15 01:53:40 +02:00
Alexis Maiquez
b201cc2a79 ~ Added CMAkeLists.txt missing in last commit
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-08-15 00:55:19 +02:00
Alexis Maiquez
c2bc23414e + Added string to integer color conversion
+ Added partial parsing of particles
+ Support for particle emitter parsing
+ Support for particle initializers parsing
+ Support for particle controlpoints parsing

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-08-14 16:55:15 +02:00
Alexis Maiquez
e80ce94331 + Support for null textures in material passes
+ Basic parsing for object's effects (missing passes specified in the scene.json)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-08-14 10:42:10 +02:00
Alexis Maiquez
5e5dd47154 + Added parsing of sounds
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-08-14 01:23:44 +02:00
Alexis Maiquez
2ba3498517 + Added parsing of images info and their materials
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-08-14 00:23:27 +02:00
Alexis Maiquez
7410f238ac + Added SDL and SDL_Mixer to implement audio support
+ Added support for sound objects
  Supported formats: MP3, FLAC, OGG

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-08-07 18:27:20 +02:00
Alexis Maiquez Murcia
6abd73e843 + Added support for constant shader values
~ Fixed shader parameter setting that wasn't properly loading the values for the shader to use

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2019-05-15 11:35:48 +02:00
Alexis Maiquez
374f53be6a + Support for shader parameters with default values (TODO: read values from the constantvalues list in the json files)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-05-14 22:16:37 +02:00
Alexis Maiquez Murcia
e62ea3e2be + Updated .gitignore
- Removed config class as It's no longer used
+ Added a small readme with all the documentation needed up to now
+ Changed the way the application starts to take into account execution switches to allow the users to select a background without recompiling the software

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2019-04-05 16:41:33 +02:00
Alexis Maiquez Murcia
9f9d44834b - Removed the whole "fileResolver" class in favour of using the actual irrlicht file-handling functions
~ Added a small utils class to read full files to ram for the purpose of parsing json files
  Most of these files are really small, so there shouldn't really be any memory concerns
+ Added support for loading backgrounds directly from PKG files


Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2019-04-04 16:51:54 +02:00
Alexis Maiquez Murcia
82682ecf02 + Added LZ4 lib to the compilation process
+ Basic draft for the texture custom loader, only ARGB (partially) supported for now

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2019-04-02 17:08:34 +02:00
Alexis Maiquez
1c9db8c159 + Comments to FileResolver
~ Limit projects to scenes only
~ Updated shader definitions to compile all the WallpaperEngine shaders
+ Documented shader compiler

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2019-02-16 19:26:15 +01:00
Alexis Maiquez
32c36b8aee + Support for setting orthographic camera from scene information
- Removed specific stuff for the nier automata background I was using as test

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2018-09-21 21:10:02 +02:00
Alexis Maiquez
f5b3bd86d0 + Added renderization control to the file loading system (scenes control the whole renderization)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2018-08-27 16:15:31 +02:00
Alexis Maiquez Murcia
1821731d5a + Basic parsing for json files on project (just scene, project objects and basic images)
+ Re-structured some code to its (hopefully) final form (shader compiler, file finding, etc)

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2018-07-06 13:47:11 +02:00
Alexis Maiquez
c8534b9a6e + Support for json parsing and basic wallpaperengine json deserialization and loading
Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2018-07-06 01:59:39 +02:00
Alexis Maiquez Murcia
5944cb9715 + More shader compilation steps (broke with the origina, still some information to change)
Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2018-07-05 15:49:00 +02:00
Alexis Maiquez
ff59fcce41 ~ Current status of the project (basic shader support and shader precompilation steps)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2018-07-05 02:17:58 +02:00