diff options
author | reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2008-12-17 15:59:43 +0000 |
---|---|---|
committer | reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2008-12-17 15:59:43 +0000 |
commit | 8a1c16ff38322f0210116fa7293eb8817c7e477e (patch) | |
tree | fe40e07f6c8983318a2f79032b9a706ede1090c1 /samplecode/SampleNinePatch.cpp | |
parent | 2559c629078f738ac37095d896d580b681ac6a30 (diff) |
grab from latest android
git-svn-id: http://skia.googlecode.com/svn/trunk@27 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode/SampleNinePatch.cpp')
-rw-r--r-- | samplecode/SampleNinePatch.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/samplecode/SampleNinePatch.cpp b/samplecode/SampleNinePatch.cpp new file mode 100644 index 0000000000..5c075b52e1 --- /dev/null +++ b/samplecode/SampleNinePatch.cpp @@ -0,0 +1,63 @@ +#include "SampleCode.h" +#include "SkView.h" +#include "SkCanvas.h" +#include "SkImageDecoder.h" +#include "SkNinePatch.h" +#include "SkPaint.h" +#include "SkUnPreMultiply.h" + +class NinePatchView : public SkView { +public: + SkBitmap fBM; + + NinePatchView() { + SkImageDecoder::DecodeFile("/skimages/folder_background.9.png", &fBM); + } + +protected: + // overrides from SkEventSink + virtual bool onQuery(SkEvent* evt) { + if (SampleCode::TitleQ(*evt)) { + SampleCode::TitleR(evt, "NinePatch"); + return true; + } + return this->INHERITED::onQuery(evt); + } + + void drawBG(SkCanvas* canvas) { + canvas->drawColor(SK_ColorWHITE); + + canvas->drawBitmap(fBM, 0, 0); + + SkIRect margins; + SkRect dst; + int d = 25; + + margins.set(d, d, d, d); + dst.set(0, 0, SkIntToScalar(200), SkIntToScalar(200)); + dst.offset(SkIntToScalar(fBM.width()), 0); + dst.offset(SkIntToScalar(2), SkIntToScalar(2)); + + SkNinePatch::DrawNine(canvas, dst, fBM, margins); + + int cx = fBM.width()/2; + int cy = fBM.height()/2; + SkPMColor pm = *fBM.getAddr32(cx, cy); + SkColor c = SkUnPreMultiply::PMColorToColor(pm); + SkColor pm2 = SkPreMultiplyColor(c); + //SkDebugf("--- pm %x c %x pm2 %x\n", pm, c, pm2); + } + + virtual void onDraw(SkCanvas* canvas) { + this->drawBG(canvas); + } + +private: + typedef SkView INHERITED; +}; + +////////////////////////////////////////////////////////////////////////////// + +static SkView* MyFactory() { return new NinePatchView; } +static SkViewRegister reg(MyFactory); + |