gm.cpp revision 8570b5c8695052378491b0c61e745d736fe85c8d
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
8#include "gm.h"
9using namespace skiagm;
10
11SkString GM::gResourcePath;
12
13GM::GM() {
14    fBGColor = SK_ColorWHITE;
15}
16GM::~GM() {}
17
18void GM::draw(SkCanvas* canvas) {
19    this->drawBackground(canvas);
20    this->drawContent(canvas);
21}
22
23void GM::drawContent(SkCanvas* canvas) {
24    this->onDraw(canvas);
25}
26
27void GM::drawBackground(SkCanvas* canvas) {
28    this->onDrawBackground(canvas);
29}
30
31const char* GM::shortName() {
32    if (fShortName.size() == 0) {
33        fShortName = this->onShortName();
34    }
35    return fShortName.c_str();
36}
37
38void GM::setBGColor(SkColor color) {
39    fBGColor = color;
40}
41
42void GM::onDrawBackground(SkCanvas* canvas) {
43    canvas->drawColor(fBGColor);
44}
45
46void GM::drawSizeBounds(SkCanvas* canvas, SkColor color) {
47    SkISize size = this->getISize();
48    SkRect r = SkRect::MakeWH(SkIntToScalar(size.width()),
49                              SkIntToScalar(size.height()));
50    SkPaint paint;
51    paint.setColor(color);
52    canvas->drawRect(r, paint);
53}
54
55// need to explicitly declare this, or we get some weird infinite loop llist
56template GMRegistry* SkTRegistry<GM*, void*>::gHead;
57