diff options
Diffstat (limited to 'chromium/third_party/skia/samplecode/SampleClamp.cpp')
-rw-r--r-- | chromium/third_party/skia/samplecode/SampleClamp.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/chromium/third_party/skia/samplecode/SampleClamp.cpp b/chromium/third_party/skia/samplecode/SampleClamp.cpp new file mode 100644 index 00000000000..2368ab2051d --- /dev/null +++ b/chromium/third_party/skia/samplecode/SampleClamp.cpp @@ -0,0 +1,67 @@ + +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#include "SampleCode.h" +#include "SkView.h" +#include "SkCanvas.h" +#include "SkGraphics.h" +#include "SkRandom.h" +#include "SkGradientShader.h" +#include "SkPicture.h" + +static SkShader* make_linear() { + SkPoint pts[] = { 0, 0, SK_Scalar1/500, SK_Scalar1/500 }; + SkColor colors[] = { SK_ColorRED, SK_ColorBLUE }; + return SkGradientShader::CreateLinear(pts, colors, NULL, 2, + SkShader::kClamp_TileMode); +} + +class ClampView : public SampleView { + SkShader* fGrad; + +public: + ClampView() { + fGrad = make_linear(); + } + + virtual ~ClampView() { + fGrad->unref(); + } + +protected: + // overrides from SkEventSink + virtual bool onQuery(SkEvent* evt) { + if (SampleCode::TitleQ(*evt)) { + SampleCode::TitleR(evt, "Clamp"); + return true; + } + return this->INHERITED::onQuery(evt); + } + + virtual void onDrawContent(SkCanvas* canvas) { + SkPaint paint; + paint.setShader(fGrad); + +// canvas->translate(this->width()/2, this->height()/2); + canvas->translate(64, 64); + canvas->drawPaint(paint); + + SkPicture pic; + SkCanvas* c = pic.beginRecording(100, 100, 0); + SkCanvas::LayerIter layerIterator(c, false); + layerIterator.next(); + layerIterator.done(); + } + +private: + typedef SampleView INHERITED; +}; + +////////////////////////////////////////////////////////////////////////////// + +static SkView* MyFactory() { return new ClampView; } +static SkViewRegister reg(MyFactory); |