Commit Graph

13 Commits

Author SHA1 Message Date
Patrick Walton b29ffdf3fa Add missing packed comparisons to the scalar implementation of `I32x2` 2020-03-27 10:04:42 -07:00
Patrick Walton 5a21557a6d Implement basic linear gradients.
This is not a very efficient implementation yet, but it seems to work.
2020-02-10 16:01:05 -08:00
Sebastian K de0f9055ed fix scalar simd impls 2020-01-24 00:24:22 +03:00
Patrick Walton 3f72847294 Add a few missing methods to geometry and SIMD; fix SIMD tests 2020-01-14 21:31:22 -08:00
Patrick Walton eb66459ef4 Fold the `.round()` method on SIMD vectors into float-to-int conversion.
This drops our requirements from SSE4.1 to SSE2.

Closes #241.
2019-12-29 15:05:01 -08:00
Patrick Walton 0bb6b88859 Stop using AVX2 when packing pixels.
Partially addresses #241.
2019-12-29 12:38:36 -08:00
Patrick Walton 986792349f Use the SSE2 `_mm_movemask_ps` on x86 instead of the SSE4.1 `_mm_test_all_ones`
and `_mm_test_all_zeros`.

Partially addresses #241.
2019-12-29 12:13:58 -08:00
Patrick Walton b886c157c1 Use 2-lane instead of 4-lane SIMD types for 2D vectors.
Also, this commit rewrites the `add_fill()` method to stop using shuffle
instructions, which can be slow and make the code overly complicated. The
shuffle instructions have been removed from the various SIMD backends.
2019-06-26 16:38:37 -07:00
Patrick Walton 5133bbfe1a Use unit vectors instead of angles for arcs.
This makes things faster and will also simplify the implementation of round
joins.
2019-05-29 12:14:47 -07:00
Luis de Bethencourt 8c0415c9b9 Remove cross method from F32x4
Silencing the following rustc warning:
warning: unused variable: `other`

Followup to Pull Request #152.
Instead of marking `other` unused (`_other`) we can remove the method
entirely.
2019-05-24 12:19:13 -04:00
Patrick Walton 639a8f39e8 Add Moiré demo 2019-05-11 11:53:50 -07:00
Patrick Walton 328e804378 Run `rustfmt` on the SIMD crate 2019-04-29 16:57:21 -07:00
Patrick Walton 79b26bb9bd Split out the swizzles into separate modules 2019-03-28 21:25:33 -07:00