Rearrange soucre files into subdirectories
Minor comment adjustments
Refactor setting uniform values in ProgramData This eliminates copies when changing values of existing uniforms.
Throw an exception if there's too many uniforms in a ProgramData I'd rather find out I need to make the mask wider than have a program unexplainably slow down.
Make buffer storage immutable and use ARB_buffer_storage
Deprecate some Buffer features which don't translate to Vulkan
Move buffer resizing out of Bufferable Required for immutable buffer storage. This commit has a couple warts I didn't bother to fix because those parts will be rewritten.
Require all uniforms in a buffer-backed block to be present
Make setting a nonexistent uniform only a warning in debug builds During development it's sometimes necessary to disable parts of a shader, which causes variables to disappear.
Check uniforms as a hint for texunit to use for material textures
Recreate RenderPass shdata if a new program is specified
Copy the tied program of ProgramData
Add support for non-square matrix uniforms
Rewrite ProgramData update in a more efficient way This method does not do any map lookups on the fast path.
Add functions for setting arrays of 2x2 and 3x3 matrix uniforms
Fix a bug in ProgramData when all uniforms in a block are removed Program blocks continued using the previously generated uniform blocks, but because the uniform values were removed the blocks were not updated anymore.
Support overriding uniforms in inherited Techniques
Allow setting uniform values using a Uniform object
Cosmetic changes and TODOs
Allow tying ProgramData to a Program for name-checking purposes