Remove SkScalarSinCos

This differed from the separate versions in that it snapped to zero.
It was also strictly worse than calling the two separate versions.
Most clients don't need the snapping, so just call the two existing
functions. For clients that need the snapping, call new variants of
each that do snap.

Change-Id: Ia4e09fd9651932fe15caeab1399df7f6281bdc17
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205303
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/modules/particles/src/SkParticleAffector.cpp b/modules/particles/src/SkParticleAffector.cpp
index b5308f4..82ea43f 100644
--- a/modules/particles/src/SkParticleAffector.cpp
+++ b/modules/particles/src/SkParticleAffector.cpp
@@ -43,7 +43,9 @@
     void onApply(const SkParticleUpdateParams& params, SkParticleState ps[], int count) override {
         for (int i = 0; i < count; ++i) {
             float angle = fAngle.eval(params, ps[i]);
-            SkScalar c_local, s_local = SkScalarSinCos(SkDegreesToRadians(angle), &c_local);
+            SkScalar rad = SkDegreesToRadians(angle);
+            SkScalar s_local = SkScalarSin(rad),
+                     c_local = SkScalarCos(rad);
             SkVector heading = ps[i].getFrameHeading(static_cast<SkParticleFrame>(fFrame));
             SkScalar c = heading.fX * c_local - heading.fY * s_local;
             SkScalar s = heading.fX * s_local + heading.fY * c_local;
@@ -145,7 +147,9 @@
     void onApply(const SkParticleUpdateParams& params, SkParticleState ps[], int count) override {
         for (int i = 0; i < count; ++i) {
             float angle = fAngle.eval(params, ps[i]);
-            SkScalar c_local, s_local = SkScalarSinCos(SkDegreesToRadians(angle), &c_local);
+            SkScalar rad = SkDegreesToRadians(angle);
+            SkScalar s_local = SkScalarSin(rad),
+                     c_local = SkScalarCos(rad);
             SkVector heading = ps[i].getFrameHeading(static_cast<SkParticleFrame>(fFrame));
             ps[i].fPose.fHeading.set(heading.fX * c_local - heading.fY * s_local,
                                      heading.fX * s_local + heading.fY * c_local);
diff --git a/modules/particles/src/SkParticleEffect.cpp b/modules/particles/src/SkParticleEffect.cpp
index 39fdc9b..1cd0eab 100644
--- a/modules/particles/src/SkParticleEffect.cpp
+++ b/modules/particles/src/SkParticleEffect.cpp
@@ -141,7 +141,8 @@
     for (int i = 0; i < fCount; ++i) {
         fParticles[i].fPose.fPosition += fParticles[i].fVelocity.fLinear * deltaTime;
 
-        SkScalar c, s = SkScalarSinCos(fParticles[i].fVelocity.fAngular * deltaTime, &c);
+        SkScalar s = SkScalarSin(fParticles[i].fVelocity.fAngular * deltaTime),
+                 c = SkScalarCos(fParticles[i].fVelocity.fAngular * deltaTime);
         SkVector oldHeading = fParticles[i].fPose.fHeading;
         fParticles[i].fPose.fHeading = { oldHeading.fX * c - oldHeading.fY * s,
                                          oldHeading.fX * s + oldHeading.fY * c };
diff --git a/modules/skottie/src/SkottieAdapter.cpp b/modules/skottie/src/SkottieAdapter.cpp
index 663f6cb..9bb6962 100644
--- a/modules/skottie/src/SkottieAdapter.cpp
+++ b/modules/skottie/src/SkottieAdapter.cpp
@@ -386,9 +386,9 @@
     fDropShadow->setColor(SkColorSetA(fColor, SkTPin(SkScalarRoundToInt(fOpacity), 0, 255)));
 
     // The offset is specified in terms of a bearing angle + distance.
-    SkScalar sinV, cosV;
-    sinV = SkScalarSinCos(SkDegreesToRadians(90 - fDirection), &cosV);
-    fDropShadow->setOffset(SkVector::Make(fDistance * cosV, -fDistance * sinV));
+    SkScalar rad = SkDegreesToRadians(90 - fDirection);
+    fDropShadow->setOffset(SkVector::Make( fDistance * SkScalarCos(rad),
+                                          -fDistance * SkScalarSin(rad)));
 
     // Close enough to AE.
     static constexpr SkScalar kSoftnessToSigmaFactor = 0.3f;