aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-02-08 21:56:16 +0000
committerGravatar junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-02-08 21:56:16 +0000
commit8d84b8f4207b72d0e54af039fcce1a633f0a7c9a (patch)
treed78e36f44873690664a504452428b4dce90ddb28
parent994b52ea55e4c061c971f1f897155bb6b6cec943 (diff)
Adding comments based on review https://codereview.appspot.com/7300072/
git-svn-id: http://skia.googlecode.com/svn/trunk@7686 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--include/core/SkTileGridPicture.h4
-rw-r--r--src/core/SkTileGrid.cpp3
2 files changed, 6 insertions, 1 deletions
diff --git a/include/core/SkTileGridPicture.h b/include/core/SkTileGridPicture.h
index 77189bbc4f..28d545a467 100644
--- a/include/core/SkTileGridPicture.h
+++ b/include/core/SkTileGridPicture.h
@@ -29,7 +29,9 @@ public:
* @param borderPixels pixels of overlap between adjacent tiles. Set this
* value to match the border overlap that is applied to tiles by user
* code. Properly setting this value will help improve performance
- * when performing tile-aligned playbacks.
+ * when performing tile-aligned playbacks with query regions that
+ * match tile bounds outset by borderPixels pixels. Such outsets
+ * are often used to prevent filtering artifacts at tile boundaries.
*/
SkTileGridPicture(int tileWidth, int tileHeight, int width, int height, int borderPixels = 0);
virtual SkBBoxHierarchy* createBBoxHierarchy() const SK_OVERRIDE;
diff --git a/src/core/SkTileGrid.cpp b/src/core/SkTileGrid.cpp
index 51c40cc0af..25a1fa8873 100644
--- a/src/core/SkTileGrid.cpp
+++ b/src/core/SkTileGrid.cpp
@@ -56,6 +56,9 @@ void SkTileGrid::insert(void* data, const SkIRect& bounds, bool) {
}
void SkTileGrid::search(const SkIRect& query, SkTDArray<void*>* results) {
+ // Convert the query rectangle from device coordinates to tile coordinates
+ // by rounding outwards to the nearest tile boundary so that the resulting tile
+ // region includes the query rectangle. (using truncating division to "floor")
int tileStartX = (query.left() + fBorderPixels) / fTileWidth;
int tileEndX = (query.right() + fTileWidth - fBorderPixels) / fTileWidth;
int tileStartY = (query.top() + fBorderPixels) / fTileHeight;