Commit Graph

101 Commits

Author SHA1 Message Date
Alexis Maiquez
d0572b257f ~ Combos can have no default value
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-12-02 22:00:43 +01:00
Alexis Maiquez
342522cd1d + Added handling for floating point precision qualifiers on type detection
+ Fixed textures not being detected properly on images that do not have any source

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-12-02 21:33:50 +01:00
Alexis Maiquez
13bcd52e8c ~ Fixed regression in composite layer handling
~ Properly fixed usage of "previous" as texture

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-11-30 23:49:08 +01:00
Alexis Maiquez
b920e94870 ~ Fixed some backgrounds being black because of wrong composite layer ordering
~ Videos should no longer appear vertically mirrored

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-11-30 21:32:19 +01:00
Alexis Maiquez
96fb8a6700 + Added some more default values for shaders so genericimage2 displays properly
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-11-29 14:37:09 +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
9d2e9b43ee ~ Fixed an infinite loop in the shader compiler
+ Added more valid variable types to the shader compiler so compilation doesn't fail

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-11-29 13:36:15 +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
d041e6455e ~ Better error handling to show relevant messages when a package load doesn't work
+ Added support for loading PKGV0014

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-11-29 12:33:15 +01:00
Alexis Maiquez
332507351f ~ use glClear instead of allocating pixels for FBOs creation
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-10-01 15:46:04 +02:00
Alexis Maiquez
4744304a3d ~ fixed multiple-screen rendering of backgrounds
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-10-01 04:16:13 +02:00
Alexis Maiquez
13ef4a96c2 ~ changed orthographic camera to use the center as 0, might get reverted,
~ shader passes now won't try to detect projection, texcoord or position, as this'll be specified as parameters
~ removed useless variables being stored
~ model view projection matrix is now stored by image, not by pass
~ proper calculation of centered images

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-10-01 04:06:27 +02:00
Alexis Maiquez
f86eba347c ~ changed priority of assets loading, so background's assets should be loaded before looking into the assets folder
~ hopefully fixed effects that use shader targets so they now display properly

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-29 01:21:35 +02: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
50c9aebab0 - removed references to irrlicht (thanks to @mihawk90)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-10 14:38:29 +02:00
Alexis Maiquez
03089ec35d + added mentions of glew and glut requirements in the readme
+ added PKGV0013 to the list of supported packages

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-09 20:59:49 +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
73c40c3d4e ~ fix resolutions higher than your current window
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-08 21:03:50 +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
0a95b27272 + added somewhat proper scaling of (small) backgrounds
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-08 19:47:49 +02:00
Alexis Maiquez
48da16f7e5 ~ listen for screen size changes and setup proper viewport so everything is rendered from the center of the screen
~ fixed a typo on one of the vertex positions for the CWallpaper::render function

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-08 19:42:27 +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
0dc5228cf0 ~ fixed build issue with the tests on glfw3 native functions
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-08 16:16:45 +02:00
Alexis Maiquez
2432ec9a36 ~ some cleanup of todos and dead code
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-05 22:02:58 +02:00
Alexis Maiquez
03c4660f5c ~ brought back path fixing functionality so all paths given in the command line now end with a /
+ 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>
2021-09-05 21:53:37 +02:00
Alexis Maiquez
154fe905bc ~ brought back video support
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-05 21:52:16 +02:00
Alexis Maiquez
113d84173e ~ changed readTexture for containers to produce a CTexture file ready to be used (simplifies loading textures)
~ fixed a write to null error on CDirectory that wasn't taking into account that length can be null

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-05 14:29:11 +02:00
Alexis Maiquez
5c56d68a69 ~ fixed texture resolution variable not being correct (prevented texture scaling on things like masks)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-05 14:15:12 +02:00
Alexis Maiquez Murcia
30b4eb4cd4 ~ fix type extraction on shaders not working properly
+ added uint4 and mat4x3 types

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2021-09-04 21:49:48 +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
2ffb5f1b24 + added an extra render pass to render the scene upside down (so it looks fine)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-03 03:24:55 +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
9d7d344b80 - removed commented code from main.cpp that is not useful anymore
~ changed how g_Time is calculated so any shader that uses it should behave properly
~ changed how the uniforms are set to a reinterpret_cast instead of static_cast to perform a direct pointer conversion (safe as we know the types were actually those types)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-02 22:30:38 +02:00
Alexis Maiquez
59e6800f81 + added depthtesting and blending support for shader passes
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-02 09:05:12 +02:00
Alexis Maiquez
09d53e8dd7 + added proper value for a_TexCoord when the rendering is not hapening from the main texture
TODO: THIS IS ALL EXPERIMENTAL CODE, THESE VALUES WILL BE SETUP ON STARTUP AND NOT ON RUNTIME

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-01 20:10:21 +02:00
Alexis Maiquez
06c519ce79 - removed useless debugging output
~ changed attribs to be registered at a list too to make it easier to use

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-01 19:55:03 +02:00
Alexis Maiquez
8ae77aa7c0 - removed useless casting on CTexture
~ updated TEXTURE_FORMAT.md documentation to reflect real format

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-01 16:39:25 +02:00
Alexis Maiquez
d9c12d0b58 - removed .idea folder as that shouldn't have been uploaded in the first place
~ changed g_Time to float instead of double

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-09-01 15:30:00 +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
7613bf254a ~ updated readme to reflect current status
+ 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>
2021-09-01 01:27:01 +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
861f2261ef ~ changed the texture resolution constant on shaders, although it is 100% incorrect, seems to get some more wallpapers working
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-08-08 09:41:25 +02:00
Alexis Maiquez
537acb97bd ~ shader precompilation should be done in order to ensure that the vertex shader has information discovered by the fragment shader (like new combos) should fix some effects on backgrounds
+ added partial support for shader constant values from the scene.json

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-08-08 08:41:03 +02:00
Alexis Maiquez
8d0eb6d63c ~ combo value detection should now update combo list on shaders too instead of writting them directly
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-08-08 07:46:06 +02:00
Alexis Maiquez
b4a6dc9bcd ~ fragment shaders can set new combos on rare occasions, so updated shader compiler to reflect this possibility
~ also updated shader passes to ensure it takes this into account

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-08-08 07:41:12 +02:00