GPU uses an alternative projection to avoid vertex snapping. Usually this doesn't matter much, and in the worst case causes the discrepancy to be only a few pixels, but with the model outline feature it causes the outlines to be noticibly off when GPU is enabled. This adds a second model-to-canvas method using the alternative projection and uses it when GPU is enabled.