Use Gmprat for Path bounds with TRANSFORM_BEZIERS_TO_PATH
authorSam Moore <matches@ucc.asn.au>
Sat, 27 Sep 2014 16:08:19 +0000 (00:08 +0800)
committerSam Moore <matches@ucc.asn.au>
Sat, 27 Sep 2014 16:08:19 +0000 (00:08 +0800)
commit58a6719da2337b3e6e20b581885f170bbe5fc480
tree0fab2ff84fc0fc55d0f06f5834f9f10e77529788
parent2d12d37f1657d6aef9bb80d735b6c7022aecba6e
Use Gmprat for Path bounds with TRANSFORM_BEZIERS_TO_PATH

So, the bounds of Paths are stored with Gmprat
The Bezier's are all stored relative to the Path, as floats

The transformations are only applied to the Path Gmprat bounds.

This seems to work rather well.

In other news, the DeCasteljau algorithm in the CPU
renderer had no upper limit, which is why it was slowing down so much.

The CPU renderer tends to suffer from SIGFPE-itis when using floats,
because when you do a cast there is a SIGFPE if the resultant type can't represent the operand.
This occurs in a few places that don't actually affect the rendering...
12 files changed:
src/Makefile
src/bezier.cpp
src/bezier.h
src/document.cpp
src/eye_of_the_rabbit.script
src/gmprat.h
src/objectrenderer.cpp
src/objectrenderer.h
src/path.cpp
src/path.h
src/real.h
src/view.h

UCC git Repository :: git.ucc.asn.au