splitTransform func was creating multiple copies of f32.Affine2D
due to not having access to the internal and passing around non-pointer.
This makes splitTransform from ~8ns to .Split ~2ns.
It seems that the non-pointer receiver was ~0.6ns slower in this case.
Signed-off-by: Egon Elbre <egonelbre@gmail.com>
Implements 2D affine transformations. This commit is a step
towards full affine transformations for drawing operations.
Heavily based on the work by Péter Szilágyi in patch 9212
Signed-off-by: Viktor <viktor.ogeman@gmail.com>