aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode/SamplePatch.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-02-14 10:59:19 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-02-14 19:45:24 +0000
commitdf85c38163245c7fc3c23cad3a4ad104949f3a62 (patch)
tree9f56ae6ce07ee9ae6a87e2bd2c52ee787fee7b32 /samplecode/SamplePatch.cpp
parent78c0c4c5a0bed8ac54542d2d378a0fc9ec8c034b (diff)
stop using SkScalarMul
BUG=skia: Change-Id: Ie41d8665a1c62ba8eddc93d8cfefaf64ddc52ff8 Reviewed-on: https://skia-review.googlesource.com/8411 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'samplecode/SamplePatch.cpp')
-rw-r--r--samplecode/SamplePatch.cpp30
1 files changed, 12 insertions, 18 deletions
diff --git a/samplecode/SamplePatch.cpp b/samplecode/SamplePatch.cpp
index b105090db2..54de942fc8 100644
--- a/samplecode/SamplePatch.cpp
+++ b/samplecode/SamplePatch.cpp
@@ -87,24 +87,18 @@ static void eval_sheet(const SkPoint edge[], int nu, int nv, int iu, int iv,
SkScalar u = SkIntToScalar(iu) / nu;
SkScalar v = SkIntToScalar(iv) / nv;
- SkScalar uv = SkScalarMul(u, v);
- SkScalar Uv = SkScalarMul(SK_Scalar1 - u, v);
- SkScalar uV = SkScalarMul(u, SK_Scalar1 - v);
- SkScalar UV = SkScalarMul(SK_Scalar1 - u, SK_Scalar1 - v);
-
- SkScalar x0 = SkScalarMul(UV, edge[TL].fX) + SkScalarMul(uV, edge[TR].fX) +
- SkScalarMul(Uv, edge[BL].fX) + SkScalarMul(uv, edge[BR].fX);
- SkScalar y0 = SkScalarMul(UV, edge[TL].fY) + SkScalarMul(uV, edge[TR].fY) +
- SkScalarMul(Uv, edge[BL].fY) + SkScalarMul(uv, edge[BR].fY);
-
- SkScalar x = SkScalarMul(SK_Scalar1 - v, edge[TL+iu].fX) +
- SkScalarMul(u, edge[TR+iv].fX) +
- SkScalarMul(v, edge[BR+nu-iu].fX) +
- SkScalarMul(SK_Scalar1 - u, edge[BL+nv-iv].fX) - x0;
- SkScalar y = SkScalarMul(SK_Scalar1 - v, edge[TL+iu].fY) +
- SkScalarMul(u, edge[TR+iv].fY) +
- SkScalarMul(v, edge[BR+nu-iu].fY) +
- SkScalarMul(SK_Scalar1 - u, edge[BL+nv-iv].fY) - y0;
+ SkScalar uv = u * v;
+ SkScalar Uv = (1 - u) * v;
+ SkScalar uV = u * (1 - v);
+ SkScalar UV = (1 - u) * (1 - v);
+
+ SkScalar x0 = UV * edge[TL].fX + uV * edge[TR].fX + Uv * edge[BL].fX + uv * edge[BR].fX;
+ SkScalar y0 = UV * edge[TL].fY + uV * edge[TR].fY + Uv * edge[BL].fY + uv * edge[BR].fY;
+
+ SkScalar x = (1 - v) * edge[TL+iu].fX + u * edge[TR+iv].fX +
+ v * edge[BR+nu-iu].fX + (1 - u) * edge[BL+nv-iv].fX - x0;
+ SkScalar y = (1 - v) * edge[TL+iu].fY + u * edge[TR+iv].fY +
+ v * edge[BR+nu-iu].fY + (1 - u) * edge[BL+nv-iv].fY - y0;
pt->set(x, y);
}