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>
There are no public API that uses f32.Rectangle anymore. Move Rectangle
to an internal package for internal use.
Signed-off-by: Elias Naur <mail@eliasnaur.com>
Most widget code operate in integer coordinates. This change makes
gesture pointer coordinates integer, to lessen the number of float32
to int conversions.
Signed-off-by: Elias Naur <mail@eliasnaur.com>
Creating an image.Rectangle from a f32.Rectangle is used by two packages in Gio
and about to be used for a third. Add a Round method to f32.Rectangle to avoid
duplicating the implementation.
Signed-off-by: Elias Naur <mail@eliasnaur.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>
layout.FRect, layout.FPt for converting from integer to floating point,
useful for drawing operations.
f32.Pt is a shorthand that mirrors image.Pt.
Signed-off-by: Elias Naur <mail@eliasnaur.com>