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);