blob: d309970b2773f600e2816cc0f164123baf073a88 [file] [log] [blame]
bsalomon@google.com1936f262011-07-18 21:19:31 +00001#include "gm.h"
2#include "SkColorPriv.h"
3#include "SkShader.h"
4#include "SkCanvas.h"
5#include "SkUtils.h"
6
7namespace skiagm {
8
9static SkBitmap make_bitmap() {
10 SkBitmap bm;
11
12 SkColorTable* ctable = new SkColorTable(1);
13 SkPMColor* c = ctable->lockColors();
14 c[0] = SkPackARGB32(0x80, 0x80, 0, 0);
15 ctable->unlockColors(true);
16
17 bm.setConfig(SkBitmap::kIndex8_Config, 1, 1);
18 bm.allocPixels(ctable);
19 ctable->unref();
20
21 bm.lockPixels();
22 *bm.getAddr8(0, 0) = 0;
23 bm.unlockPixels();
24 return bm;
25}
26
27class TinyBitmapGM : public GM {
28 SkBitmap fBM;
29public:
30 TinyBitmapGM() {
31 fBM = make_bitmap();
32 }
33
34protected:
35 SkString onShortName() {
36 return SkString("tinybitmap");
37 }
38
39 virtual SkISize onISize() { return make_isize(100, 100); }
40
41 virtual void onDraw(SkCanvas* canvas) {
42 canvas->drawColor(0xFFDDDDDD);
43 SkShader* s =
44 SkShader::CreateBitmapShader(fBM, SkShader::kRepeat_TileMode,
45 SkShader::kMirror_TileMode);
46 SkPaint paint;
47 paint.setAlpha(0x80);
48 paint.setShader(s)->unref();
49 canvas->drawPaint(paint);
50 }
51
52private:
53 typedef GM INHERITED;
54};
55
56//////////////////////////////////////////////////////////////////////////////
57
58static GM* MyFactory(void*) { return new TinyBitmapGM; }
59static GMRegistry reg(MyFactory);
60
61}