2pt conical stage for focal-pt-on-edge case

When the focal point is on the edge of the end circle, the quadratic
equation devolves to linear.  Add a stage to handle this case.

As a complication, this case can produce "degenerate" values:

 1) t == NaN
 2) R(t) < 0

For these, we're supposed to draw transparent black - which means
overwriting the color from the gradient stage.  To support this, build
a 0/1 vector mask in the context, and apply it post-gradient-stage.

Change-Id: Ice4e3243abfd8c784bb810f6c310aed7a4ac7dc8
Reviewed-on: https://skia-review.googlesource.com/21111
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
diff --git a/src/shaders/gradients/SkLinearGradient.cpp b/src/shaders/gradients/SkLinearGradient.cpp
index d6875ce..9863b92 100644
--- a/src/shaders/gradients/SkLinearGradient.cpp
+++ b/src/shaders/gradients/SkLinearGradient.cpp
@@ -81,7 +81,8 @@
 
 bool SkLinearGradient::adjustMatrixAndAppendStages(SkArenaAlloc* alloc,
                                                    SkMatrix* matrix,
-                                                   SkRasterPipeline* p) const {
+                                                   SkRasterPipeline* p,
+                                                   SkRasterPipeline*) const {
     *matrix = SkMatrix::Concat(fPtsToUnit, *matrix);
     // If the gradient is less than a quarter of a pixel, this falls into the
     // subpixel gradient code handled on a different path.