extend asAGradient for Conical type (to be implemented by PDF and XPS)
Review URL: https://codereview.appspot.com/6308051
git-svn-id: http://skia.googlecode.com/svn/trunk@4207 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/device/xps/SkXPSDevice.cpp b/src/device/xps/SkXPSDevice.cpp
index 1896fef..7b6aa45 100644
--- a/src/device/xps/SkXPSDevice.cpp
+++ b/src/device/xps/SkXPSDevice.cpp
@@ -1001,7 +1001,8 @@
return S_OK;
}
- if (SkShader::kRadial2_GradientType == gradientType) {
+ if (SkShader::kRadial2_GradientType == gradientType ||
+ SkShader::kConical_GradientType == gradientType) {
//simple if affine and one is 0, otherwise will have to fake
}
diff --git a/src/effects/SkGradientShader.cpp b/src/effects/SkGradientShader.cpp
index 5c53e8e..ac4a2d4 100644
--- a/src/effects/SkGradientShader.cpp
+++ b/src/effects/SkGradientShader.cpp
@@ -2303,7 +2303,18 @@
return true;
}
-
+
+ SkShader::GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE {
+ if (info) {
+ commonAsAGradient(info);
+ info->fPoint[0] = fCenter1;
+ info->fPoint[1] = fCenter2;
+ info->fRadius[0] = fRadius1;
+ info->fRadius[1] = fRadius2;
+ }
+ return kConical_GradientType;
+ }
+
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Two_Point_Conical_Gradient)
protected:
diff --git a/src/pdf/SkPDFShader.cpp b/src/pdf/SkPDFShader.cpp
index 152c693..4ebcb49 100644
--- a/src/pdf/SkPDFShader.cpp
+++ b/src/pdf/SkPDFShader.cpp
@@ -466,6 +466,7 @@
break;
case SkShader::kColor_GradientType:
case SkShader::kNone_GradientType:
+ case SkShader::kConical_GradientType: // similar to twoPointRadialCode?
default:
return;
}