- 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>
Further improvements on detection of combo values for shaders
Support for detecting visibility settings on effects
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
~ 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>
~ 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>
~ 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>
~ 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>
+ added support for texture format definition (TEX0FORMAT) although it might need some more investigation (specially for multi-pass shaders)
+ added implicit conversion from vec3 to vec2 in shaders
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>
+ added texture resolution to CTexture so it can be properly used in the CPass
+ framebuffer textures now have filtering specified (prevents black screen), still need to adjust information about the texture
+ added proper uniform variable registration to ease the usage
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>