aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode/SampleNinePatch.cpp
diff options
context:
space:
mode:
authorGravatar reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2008-12-17 15:59:43 +0000
committerGravatar reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2008-12-17 15:59:43 +0000
commit8a1c16ff38322f0210116fa7293eb8817c7e477e (patch)
treefe40e07f6c8983318a2f79032b9a706ede1090c1 /samplecode/SampleNinePatch.cpp
parent2559c629078f738ac37095d896d580b681ac6a30 (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.cpp63
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);
+