* Implement Area sampler for scaling the internal resolution
* Move resampling to before RmlUi instead of inside it
Allows non-Bilinear resampling to work regardless of RmlUi being init
Getting a *lot* of crashes in Sentry that seem to be this function allocating invalid render textures? So let's add a guard so we maybe can catch it in the act.
* Fix handling of Unicode paths on Windows
I love C++
* Reduce the amount of reinterpret_casts
* Okay? Don't commit the file CLion? Why not?
* Fix texture replacements too
* begin work on integration
* draw null tex when tex handle is null, switch to immediates for geometry translation
* fix window resizing and texture loads, switch to dynamic ubo
* remove immediate usage
* Add initial rmlui public API
* Use proper dimensions; fix texture resolution
* Remove unnecessary SetDimensions
* Cleanup & add clip mask support
* Implement blur and shadow filters
---------
Co-authored-by: Luke Street <luke@street.dev>
This is a breaking change: `GXSetViewport`, `GXSetScissor`, `GXSetTexCopySrc`, `GXSetTexCopyDst` now accept logical coords relative to the `VIConfigure` EFB size.
`GXSetViewportRender` and `GXSetScissorRender` are used to override the scaled viewport/scissor from the logical coords.
* Set up dawn cache
Massively speeds up pipeline compilation on the second go around, especially for D3D12.
Currently, uses SQLite for the cache. SQLite is committed in as the "amalgam" blob, but I'm open for better ways to fetch it.
* Compress cache contents with zstd
More significantly for Vulkan, less so for D3D12.
* Store cache keys as XXH128 instead
This reduces the size of the D3D12 cache by a ridiculous amount
* Stop using exceptions for error handling
* FetchContent for sqlite; cleanup & make zstd optional
---------
Co-authored-by: Luke Street <luke@street.dev>