• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef DMUtil_DEFINED
2 #define DMUtil_DEFINED
3 
4 #include "Benchmark.h"
5 #include "SkBitmap.h"
6 #include "SkString.h"
7 #include "gm_expectations.h"
8 
9 class SkBBHFactory;
10 
11 // Small free functions used in more than one place in DM.
12 
13 namespace DM {
14 
15 // UnderJoin("a", "b") -> "a_b"
16 SkString UnderJoin(const char* a, const char* b);
17 
18 // "foo_bar.skp" -> "foo-bar_skp"
19 SkString FileToTaskName(SkString);
20 
21 // Draw gm to picture.  Passes recordFlags to SkPictureRecorder::beginRecording().
22 SkPicture* RecordPicture(skiagm::GM* gm,
23                          uint32_t recordFlags = 0,
24                          SkBBHFactory* factory = NULL);
25 
26 // Allocate an empty bitmap with this size and depth.
27 void AllocatePixels(SkColorType, int w, int h, SkBitmap* bitmap);
28 // Allocate an empty bitmap the same size and depth as reference.
29 void AllocatePixels(const SkBitmap& reference, SkBitmap* bitmap);
30 
31 // Draw picture to bitmap.
32 void DrawPicture(SkPicture* picture, SkBitmap* bitmap);
33 
34 // What is the maximum component difference in these bitmaps?
35 unsigned MaxComponentDifference(const SkBitmap& a, const SkBitmap& b);
36 
37 // Are these identical bitmaps?
38 bool BitmapsEqual(const SkBitmap& a, const SkBitmap& b);
39 
40 }  // namespace DM
41 
42 #endif  // DMUtil_DEFINED
43