1/*
2 * Copyright 2011 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7#include "gm.h"
8#include "sk_tool_utils.h"
9#include "SkColorPriv.h"
10#include "SkShader.h"
11#include "SkCanvas.h"
12#include "SkUtils.h"
13
14namespace skiagm {
15
16static SkBitmap make_bitmap() {
17    SkBitmap bm;
18    bm.allocN32Pixels(1, 1);
19    *bm.getAddr32(0, 0) = SkPackARGB32(0x80, 0x80, 0, 0);
20    return bm;
21}
22
23class TinyBitmapGM : public GM {
24public:
25    TinyBitmapGM() {
26        this->setBGColor(sk_tool_utils::color_to_565(0xFFDDDDDD));
27    }
28
29protected:
30    SkString onShortName() {
31        return SkString("tinybitmap");
32    }
33
34    virtual SkISize onISize() { return SkISize::Make(100, 100); }
35
36    virtual void onDraw(SkCanvas* canvas) {
37        SkBitmap bm = make_bitmap();
38        SkPaint paint;
39        paint.setAlpha(0x80);
40        paint.setShader(SkShader::MakeBitmapShader(bm, SkShader::kRepeat_TileMode,
41                                                   SkShader::kMirror_TileMode));
42        canvas->drawPaint(paint);
43    }
44
45private:
46    typedef GM INHERITED;
47};
48
49//////////////////////////////////////////////////////////////////////////////
50
51static GM* MyFactory(void*) { return new TinyBitmapGM; }
52static GMRegistry reg(MyFactory);
53
54}
55