mirror of
https://github.com/RGBCube/serenity
synced 2025-10-27 07:02:33 +00:00
With 6 bits of precision, the maximum triangle coordinate we can handle is sqrt(2^31 / (1 << 6)^2) = ~724. Rendering to a target of 800x600 or higher quickly becomes a mess because of integer overflow. By reducing the subpixel precision to 4 bits, we support coordinates up to ~2896, which means that we can (try to) render to target sizes like 2560x1440. This fixes the main menu backdrop for the Half-Life port. It also introduces more white pixel artifacts in Quake's water / lava rendering, but this is a level geometry visualization bug (see `r_novis`). |
||
|---|---|---|
| .. | ||
| Buffer | ||
| AlphaBlendFactors.h | ||
| Clipper.cpp | ||
| Clipper.h | ||
| CMakeLists.txt | ||
| Config.h | ||
| Device.cpp | ||
| Device.h | ||
| Image.cpp | ||
| Image.h | ||
| PixelConverter.cpp | ||
| PixelConverter.h | ||
| PixelQuad.h | ||
| Sampler.cpp | ||
| Sampler.h | ||
| SIMD.h | ||
| Triangle.h | ||