mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-27 01:50:24 +00:00
bcf3a4457f
The old implementation of sin() had a very unacceptable amount of error that was causing a lot of texture perspective issues in Quake. This has been remedied through the use of the hardware `fsin` x87 instruction. As has been noted in #246, this instruction is both very slow, and can become wildly inaccurate for more precise values, however the current implementation made an incorrect assumption about applications "will end up writing their own implemtnation anyways", which is not the case for Quake in Software mode, which relies heavily on a correct `sin()` and `cos()` function for `R_ScanEdges()`. Realistically, we should be using something like the CORDIC algorithm (https://en.wikipedia.org/wiki/CORDIC) or `Taylor Expansion`, however for now these provides a somewhat accurate result that allows Quake to run without any texture or geometry issues. |
||
---|---|---|
.. | ||
LibAudio | ||
LibC | ||
LibCore | ||
LibDraw | ||
LibGUI | ||
LibHTML | ||
LibIPC | ||
LibM | ||
LibMarkdown | ||
LibPCIDB | ||
LibThread | ||
LibVT |