Rounded rectangles work bizarrely with negative width. The rounding ain't right. I don't know if that's a library bug or a bug with my code for passing a negative width in? I've fixed my code for now...
I don't think I ever considered the case where it gets a negative width, so not surprised if it doesn't quite work! I guess I should either add an assert or make it work correctly..
Assert best - I suspect optimising for the (minor) performance benefit is better?
(It's a bit odd actually - looking at the code, it all seems to be just pure Path rendering, which should be OK with negative numbers, I can't see an obvious place where it'd go wrong.)