DMUtil.cpp revision d6bab0238655dbab24dfe92bd0b16b464310a8c7
1#include "DMUtil.h"
2
3#include "SkPicture.h"
4
5namespace DM {
6
7SkString UnderJoin(const char* a, const char* b) {
8    SkString s;
9    s.appendf("%s_%s", a, b);
10    return s;
11}
12
13SkString Png(SkString s) {
14    s.appendf(".png");
15    return s;
16}
17
18void RecordPicture(skiagm::GM* gm, SkPicture* picture, uint32_t recordFlags) {
19    const SkISize size = gm->getISize();
20    SkCanvas* canvas = picture->beginRecording(size.width(), size.height(), recordFlags);
21    canvas->concat(gm->getInitialTransform());
22    gm->draw(canvas);
23    canvas->flush();
24    picture->endRecording();
25}
26
27void SetupBitmap(const SkBitmap::Config config, skiagm::GM* gm, SkBitmap* bitmap) {
28    const SkISize size = gm->getISize();
29    bitmap->setConfig(config, size.width(), size.height());
30    bitmap->allocPixels();
31    bitmap->eraseColor(0x00000000);
32}
33
34void DrawPicture(SkPicture* picture, SkBitmap* bitmap) {
35    SkASSERT(picture != NULL);
36    SkASSERT(bitmap != NULL);
37    SkCanvas canvas(*bitmap);
38    canvas.drawPicture(*picture);
39    canvas.flush();
40}
41
42bool BitmapsEqual(const SkBitmap& a, const SkBitmap& b) {
43    const SkAutoLockPixels lockA(a), lockB(b);
44    return a.getSize() == b.getSize() && 0 == memcmp(a.getPixels(), b.getPixels(), b.getSize());
45}
46
47}  // namespace DM
48