Modifying SkTileGrid to support arbitrary query rectangles.
Exposing SkTileGrid functionality in the public API through SkTileGridPicture.
This patch also makes TileGrid and Rtree testable in gm, which revealed errors.
TEST=gm with '--tileGrid'
BUG=http://code.google.com/p/chromium/issues/detail?id=164636
Review URL: https://codereview.appspot.com/6933044
git-svn-id: http://skia.googlecode.com/svn/trunk@6783 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tools/PictureRenderer.cpp b/tools/PictureRenderer.cpp
index 1f975cf..034e8fc 100644
--- a/tools/PictureRenderer.cpp
+++ b/tools/PictureRenderer.cpp
@@ -24,7 +24,7 @@
#include "SkStream.h"
#include "SkString.h"
#include "SkTemplates.h"
-#include "SkTileGrid.h"
+#include "SkTileGridPicture.h"
#include "SkTDArray.h"
#include "SkThreadUtils.h"
#include "SkTypes.h"
@@ -624,22 +624,6 @@
}
};
-class TileGridPicture : public SkPicture {
-public:
- TileGridPicture(int tileWidth, int tileHeight, int xTileCount, int yTileCount) {
- fTileWidth = tileWidth;
- fTileHeight = tileHeight;
- fXTileCount = xTileCount;
- fYTileCount = yTileCount;
- }
-
- virtual SkBBoxHierarchy* createBBoxHierarchy() const SK_OVERRIDE{
- return SkNEW_ARGS(SkTileGrid, (fTileWidth, fTileHeight, fXTileCount, fYTileCount));
- }
-private:
- int fTileWidth, fTileHeight, fXTileCount, fYTileCount;
-};
-
SkPicture* PictureRenderer::createPicture() {
switch (fBBoxHierarchyType) {
case kNone_BBoxHierarchyType:
@@ -647,14 +631,8 @@
case kRTree_BBoxHierarchyType:
return SkNEW(RTreePicture);
case kTileGrid_BBoxHierarchyType:
- {
- int xTileCount = fPicture->width() / fGridWidth +
- ((fPicture->width() % fGridWidth) ? 1 : 0);
- int yTileCount = fPicture->height() / fGridHeight +
- ((fPicture->height() % fGridHeight) ? 1 : 0);
- return SkNEW_ARGS(TileGridPicture, (fGridWidth, fGridHeight, xTileCount,
- yTileCount));
- }
+ return SkNEW_ARGS(SkTileGridPicture, (fGridWidth, fGridHeight, fPicture->width(),
+ fPicture->height()));
}
SkASSERT(0); // invalid bbhType
return NULL;