* Add sampler2DComparison and uint to known types
* Ignore unsupported `#require` preprocessor directive
`#require LightingV1` is found in generic4.frag, genericimage4.frag, ...
* Mark _alias_* textures as FBOs
Currently not supported, but prevents loading from the file, thereby
avoiding CAssetLoadException
Added comments all over the codebase to explain things a bit better
Improved CApplicationContext to be a bit more self-explanatory
Abstracted CRenderContext access away into a helper that every render class should use
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
- 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>
- 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>
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>
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 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>
Simplified texture decision graph and preload it so render is quicker
Improved material detecion on shaders
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>
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>
~ 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>
+ 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>
~ 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>
~ 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>