Commit Graph

56 Commits

Author SHA1 Message Date
Alexis Maiquez
d2e82e72d8 Small code cleanups
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-08 14:27:41 +01:00
Alexis Maiquez
95713ae439 Properly clamp volume value
Removed all usages of std::make_pair

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-07 04:35:47 +01:00
Alexis Maiquez
55760aee4d More code cleanup:
- 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>
2023-02-07 04:17:51 +01:00
Alexis Maiquez
e888bb452d Fix bloom effect FBO's not using GL_LINEAR, no more blocky bloom
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-05 06:45:14 +01:00
Alexis Maiquez
30bb8d6d72 Small cleanup of pass initialization code
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-05 06:36:07 +01:00
Alexis Maiquez
a24b1923f6 Cleanup of code:
- 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>
2023-02-03 18:41:51 +01:00
Alexis Maiquez
d370e028ff Renamed CContext to CRenderContext to allow for the introduction of CAudioContext in following iterations
Improved logging and error reporting to be a bit more flexible

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-03 00:00:17 +01:00
Alexis Maiquez
4dc3a4bc01 Added g_PointerPositionLast
Improved delay calculation for parallax (should prevent backgrounds from flickering with big delays)
Fixed g_TexelSize having the wrong value and g_TexelSizeHalf not being defined

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2023-02-01 18:40:38 +01:00
Alexis Maiquez
ed1efdcd66 Added parsing for text properties
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>
2022-11-04 10:16:15 +01:00
Alexis Maiquez
cdaebbe893 Added support for camera bloom
Added support for virtual files

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-03 23:07:13 +01:00
Alexis Maiquez
c13d743022 Container access should happen through CContext
Textures now have a cache system that prevents loading them more than once

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-03 14:27:05 +01:00
Alexis Maiquez
5521e90155 Ignore composelayers for now
Added support for color blend mode
Main pass' blendmode should be normal
Last pass' blendmode should be the first's
Fixed order of glClear's so _rt_FullFrameBuffer is the right color at the right time
Simplified effect and pass creation code a bit more
Non-visible images should render the full chain into the pingpong framebuffers instead of to screen
Fixed an integer division not producing float numbers

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-03 13:14:52 +01:00
Alexis Maiquez
261bc696df Added some object labels in opengl so they're reflected on RenderDoc while on debug
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-02 09:28:42 +01:00
Alexis Maiquez
7e6cb9a458 Simplified image rendering code further
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-11-01 04:00:34 +01:00
Alexis Maiquez
cb6f05ff27 Simplified image rendering code a bit so it's easier to follow
Improved detection of macros for shaders

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-31 12:09:14 +01:00
Alexis Maiquez
c9f8624b8b Reduced amount of glClears used in the rendering process
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-29 14:02:10 +02:00
Alexis Maiquez
7b7d699371 Implemented proper dependency detection for images
Simplified texture decision graph and preload it so render is quicker
Improved material detecion on shaders

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-28 18:21:29 +02:00
Alexis Maiquez
9ff33ef61f Support for specifying FBOs texture flags
Further improvements on detection of combo values for shaders
Support for detecting visibility settings on effects

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-28 15:45:35 +02:00
Alexis Maiquez
4e3254e843 Improved detection of "previous" textures (fixes 2370927443)
Added support for PKGV0018
Try to prevent crashing when shaders do not compile and go with whatever can be displayed

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-10-26 09:09:13 +02:00
Alexis Maiquez Murcia
693f3c5d0e Added different PKGV versions to the list of supported packages, should fix #85
Added some extra logging to the shader compilation to have an easier debugging experience

Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com>
2022-04-04 20:59:04 +02:00
Alexis Maiquez
cad78c58f9 + Support animated images in the background
~ 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>
2022-03-06 01:28:31 +01:00
Alexis Maiquez
64d2f77d41 + added support for reading multiple images from a texture
first steps to fix #79

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-02-28 23:48:43 +01:00
Alexis Maiquez
131801b7f0 ~ quick and dirty fix for composite color not being the right value (need to verify that this is actually what should happen)
fixes @C0nvert's #59 issue

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2022-02-23 09:50:55 +01: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
49a5f9e2ab + added proper framebuffer clearing for passes
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-12-04 02:50:11 +01:00
Alexis Maiquez
b55f2e8bf4 + Added PKGV0015 support
+ 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>
2021-12-03 02:02:46 +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
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
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
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
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
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
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
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
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
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