2 * Copyright 2012 Google Inc.
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
8 #ifndef SkTileGridPicture_DEFINED
9 #define SkTileGridPicture_DEFINED
11 #ifdef SK_SUPPORT_LEGACY_PICTURE_HEADERS
12 #include "SkBBHFactory.h"
15 #ifdef SK_SUPPORT_LEGACY_DERIVED_PICTURE_CLASSES
17 #include "SkPicture.h"
22 * Subclass of SkPicture that creates an SkTileGrid. The tile grid has lower recording
23 * and playback costs then rTree, but is less effective at eliminating extraneous
24 * primitives for arbitrary query rectangles. It is most effective for
25 * tiled playback when the tile structure is known at record time.
27 class SK_API SkTileGridPicture : public SkPicture {
29 typedef SkTileGridFactory::TileGridInfo TileGridInfo;
33 * @param width recording canvas width in device pixels
34 * @param height recording canvas height in device pixels
35 * @param info description of the tiling layout
37 SkTileGridPicture(int width, int height, const SkTileGridFactory::TileGridInfo& info);
39 virtual SkBBoxHierarchy* createBBoxHierarchy() const SK_OVERRIDE;
42 int fXTileCount, fYTileCount;
43 SkTileGridFactory::TileGridInfo fInfo;
45 typedef SkPicture INHERITED;
48 class SkTileGridPictureFactory : public SkPictureFactory {
50 SkTileGridPictureFactory(const SkTileGridFactory::TileGridInfo& info) : fInfo(info) { }
52 virtual SkPicture* create(int width, int height) SK_OVERRIDE {
53 return SkNEW_ARGS(SkTileGridPicture, (width, height, fInfo));
57 SkTileGridFactory::TileGridInfo fInfo;
60 typedef SkPictureFactory INHERITED;