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: