- 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>
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>
- 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>
CUserSettingVector3 are initializable with just one float value
Objects' origin and scale are now UserSettings too
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
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>
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>
~ 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>
+ 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>
~ 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>
~ 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>
+ 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>
+ 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>
- 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>
~ 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>
+ 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>
* 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
+ 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>
+ 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>
+ 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>
~ 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>
+ 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>
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>
~ Updated #include directives to include full paths to files
~ Re-organized folder structure for the project
Signed-off-by: Alexis Maiquez <almamu@almamu.com>