| OLD | NEW | 
|---|
|  | (Empty) | 
| 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 SkTileGrid_DEFINED |  | 
| 9 #define SkTileGrid_DEFINED |  | 
| 10 |  | 
| 11 #include "SkBBHFactory.h" |  | 
| 12 #include "SkBBoxHierarchy.h" |  | 
| 13 |  | 
| 14 /** |  | 
| 15  * Subclass of SkBBoxHierarchy that stores elements in buckets that correspond |  | 
| 16  * to tile regions, disposed in a regular grid.  This is useful when the tile |  | 
| 17  * structure that will be use in search() calls is known prior to insertion. |  | 
| 18  */ |  | 
| 19 class SkTileGrid : public SkBBoxHierarchy { |  | 
| 20 public: |  | 
| 21     SkTileGrid(int xTiles, int yTiles, const SkTileGridFactory::TileGridInfo& in
    fo); |  | 
| 22     virtual ~SkTileGrid(); |  | 
| 23 |  | 
| 24     virtual void insert(SkAutoTMalloc<SkRect>* boundsArray, int N) SK_OVERRIDE; |  | 
| 25     virtual void search(const SkRect& query, SkTDArray<unsigned>* results) const
     SK_OVERRIDE; |  | 
| 26 |  | 
| 27     // For testing. |  | 
| 28     int tileCount(int x, int y) { return fTiles[y * fXTiles + x].count(); } |  | 
| 29 |  | 
| 30     virtual size_t bytesUsed() const SK_OVERRIDE; |  | 
| 31 |  | 
| 32 private: |  | 
| 33     void reserve(int); |  | 
| 34     void shrinkToFit(); |  | 
| 35 |  | 
| 36     void commonAdjust(SkRect*) const; |  | 
| 37     void userToGrid(const SkRect&, SkIRect* grid) const; |  | 
| 38 |  | 
| 39     const int fXTiles, fYTiles; |  | 
| 40     const SkScalar fInvWidth, fInvHeight; |  | 
| 41     const SkScalar fMarginWidth, fMarginHeight; |  | 
| 42     const SkPoint fOffset; |  | 
| 43     const SkRect  fGridBounds; |  | 
| 44 |  | 
| 45     // (fXTiles * fYTiles) SkTDArrays, each listing ops overlapping that tile in
     order. |  | 
| 46     SkTDArray<unsigned>* fTiles; |  | 
| 47 |  | 
| 48     typedef SkBBoxHierarchy INHERITED; |  | 
| 49 }; |  | 
| 50 |  | 
| 51 #endif |  | 
| OLD | NEW | 
|---|