add shader flag kConstInY_Flag
this signals blitters that the shader will return the same results for a given
x value, independent of y. Useful inside blitRect(), where it can cache the
first call to shadeSpan() and reuse it on all subsequent scans. Works with
(non-rotated) linear-gradients, and Nx1 bitmaps.



git-svn-id: http://skia.googlecode.com/svn/trunk@214 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleTestGL.cpp b/samplecode/SampleTestGL.cpp
index c12eb7c..210d779 100644
--- a/samplecode/SampleTestGL.cpp
+++ b/samplecode/SampleTestGL.cpp
@@ -9,6 +9,19 @@
 #include "SkShader.h"
 #include "SkUtils.h"
 
+static void show_ramp(SkCanvas* canvas, const SkRect& r) {
+    SkPoint pts[] = { r.fLeft, 0, r.fRight, 0 };
+    SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
+    SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, 2,
+                                                 SkShader::kRepeat_TileMode);
+    SkPaint p;
+    p.setShader(s)->unref();
+    canvas->drawRect(r, p);
+    canvas->translate(r.width() + SkIntToScalar(8), 0);
+    p.setDither(true);
+    canvas->drawRect(r, p);
+}
+
 class TestGLView : public SkView {
 public:
 	TestGLView() {
@@ -49,6 +62,9 @@
         canvas->translate(r.width() + SkIntToScalar(20), 0);
         paint.setStrokeWidth(SkIntToScalar(5));
         canvas->drawRect(r, paint);
+        
+        canvas->translate(r.width() * 10/9, 0);
+        show_ramp(canvas, r);
     }
     
 private: