ColorShaders report no bitmaps, but only a color_gradient, which we now detect
on the gpu side.
git-svn-id: http://skia.googlecode.com/svn/trunk@1810 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 0f18726..b8cc2bb 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -481,6 +481,21 @@
GrSamplerState::SampleMode sampleMode = sk_bmp_type_to_sample_mode[bmptype];
if (-1 == sampleMode) {
+ SkShader::GradientInfo info;
+ SkColor color;
+
+ info.fColors = &color;
+ info.fColorOffsets = NULL;
+ info.fColorCount = 1;
+ if (SkShader::kColor_GradientType == shader->asAGradient(&info)) {
+ SkPaint copy(skPaint);
+ copy.setShader(NULL);
+ copy.setColor(SkColorSetA(color, copy.getAlpha()));
+ return this->skPaint2GrPaintNoShader(copy,
+ false,
+ grPaint,
+ constantColor);
+ }
return false;
}
GrSamplerState* sampler = grPaint->getTextureSampler(kShaderTextureIdx);