diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-07-27 18:21:37 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-07-27 18:21:37 +0000 |
commit | ceff2870bc5e9114c2b5262423b13cf1e84a76fb (patch) | |
tree | 785c7adcdb732187eff6c8c87995400273a58114 /samplecode | |
parent | 325bdc3c355353c16eb42e477e3789c2d3fe3793 (diff) |
add simple test for writepixels
git-svn-id: http://skia.googlecode.com/svn/trunk@1972 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode')
-rw-r--r-- | samplecode/SampleWritePixels.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/samplecode/SampleWritePixels.cpp b/samplecode/SampleWritePixels.cpp new file mode 100644 index 0000000000..5f84a1c815 --- /dev/null +++ b/samplecode/SampleWritePixels.cpp @@ -0,0 +1,63 @@ +#include "SampleCode.h" +#include "SkView.h" +#include "SkCanvas.h" +#include "SkCornerPathEffect.h" +#include "SkCullPoints.h" +#include "SkGradientShader.h" +#include "SkPath.h" +#include "SkRegion.h" +#include "SkShader.h" +#include "SkUtils.h" + +static void create_bitmap(SkBitmap* bitmap) { + const int W = 100; + const int H = 100; + bitmap->setConfig(SkBitmap::kARGB_8888_Config, W, H); + bitmap->allocPixels(); + + SkCanvas canvas(*bitmap); + canvas.drawColor(SK_ColorRED); + SkPaint paint; + paint.setColor(SK_ColorBLUE); + canvas.drawCircle(SkIntToScalar(W)/2, SkIntToScalar(H)/2, SkIntToScalar(W)/2, paint); +} + +class WritePixelsView : public SampleView { + SkPath fPath; +public: + WritePixelsView() {} + +protected: + // overrides from SkEventSink + virtual bool onQuery(SkEvent* evt) { + if (SampleCode::TitleQ(*evt)) { + SampleCode::TitleR(evt, "WritePixels"); + return true; + } + return this->INHERITED::onQuery(evt); + } + + virtual void onDrawContent(SkCanvas* canvas) { + SkBitmap bitmap; + create_bitmap(&bitmap); + int x = bitmap.width() / 2; + int y = bitmap.height() / 2; + + SkBitmap subset; + bitmap.extractSubset(&subset, SkIRect::MakeXYWH(x, y, x, y)); + + canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); + + canvas->writePixels(bitmap, 0, 0); + canvas->writePixels(subset, 0, 0); + } + +private: + typedef SampleView INHERITED; +}; + +////////////////////////////////////////////////////////////////////////////// + +static SkView* MyFactory() { return new WritePixelsView; } +static SkViewRegister reg(MyFactory); + |