8#ifndef skgpu_tessellate_AffineMatrix_DEFINED
9#define skgpu_tessellate_AffineMatrix_DEFINED
32 fScale =
skvx::float2(m.getScaleX(), m.getScaleY()).xyxy();
34 fTrans =
skvx::float2(m.getTranslateX(), m.getTranslateY()).xyxy();
39 return fScale * p0p1 + (fSkew * p0p1.yxwz() + fTrans);
48 sk_bit_cast<skvx::float2>(p1)));
52 return fScale.
lo * p + (fSkew.
lo * p.yx() + fTrans.
lo);
60 return sk_bit_cast<SkPoint>(this->
mapPoint(sk_bit_cast<skvx::float2>(p)));
AffineMatrix(const SkMatrix &m)
SK_ALWAYS_INLINE skvx::float4 map2Points(const SkPoint pts[2]) const
SK_ALWAYS_INLINE skvx::float2 map1Point(const SkPoint pt[1]) const
SK_ALWAYS_INLINE skvx::float2 mapPoint(skvx::float2 p) const
AffineMatrix & operator=(const SkMatrix &m)
SK_ALWAYS_INLINE SkPoint mapPoint(SkPoint p) const
SK_ALWAYS_INLINE skvx::float4 map2Points(skvx::float4 p0p1) const
SK_ALWAYS_INLINE skvx::float4 map2Points(SkPoint p0, SkPoint p1) const
static SKVX_ALWAYS_INLINE Vec Load(const void *ptr)