Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / tools / CopyTilesRenderer.h
1 /*
2  * Copyright 2012 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 #ifndef CopyTilesRenderer_DEFINED
9 #define CopyTilesRenderer_DEFINED
10
11 #include "PictureRenderer.h"
12 #include "SkTypes.h"
13
14 class SkPicture;
15 class SkString;
16
17 namespace sk_tools {
18     /**
19      *  PictureRenderer that draws the picture and then extracts it into tiles. For large pictures,
20      *  it will divide the picture into large tiles and draw the picture once for each large tile.
21      */
22     class CopyTilesRenderer : public TiledPictureRenderer {
23
24     public:
25 #if SK_SUPPORT_GPU
26         CopyTilesRenderer(const GrContext::Options &opts, int x, int y);
27 #else
28         CopyTilesRenderer(int x, int y);
29 #endif
30         virtual void init(const SkPicture* pict, 
31                           const SkString* writePath, 
32                           const SkString* mismatchPath,
33                           const SkString* inputFilename,
34                           bool useChecksumBasedFilenames,
35                           bool useMultiPictureDraw) SK_OVERRIDE;
36
37         /**
38          *  Similar to TiledPictureRenderer, this will draw a PNG for each tile. However, the
39          *  numbering (and actual tiles) will be different.
40          */
41         virtual bool render(SkBitmap** out) SK_OVERRIDE;
42
43         virtual bool supportsTimingIndividualTiles() SK_OVERRIDE { return false; }
44
45     private:
46         int fXTilesPerLargeTile;
47         int fYTilesPerLargeTile;
48
49         int fLargeTileWidth;
50         int fLargeTileHeight;
51
52         virtual SkString getConfigNameInternal() SK_OVERRIDE;
53
54         typedef TiledPictureRenderer INHERITED;
55     };
56 } // sk_tools
57 #endif // CopyTilesRenderer_DEFINED