1fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org/* 2fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org * Copyright 2012 Google Inc. 3fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org * 4fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org * Use of this source code is governed by a BSD-style license that can be 5fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org * found in the LICENSE file. 6fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org */ 7fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org 8fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org#include "SkTileGridPicture.h" 9fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org 10fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org#include "SkPictureStateTree.h" 11fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org#include "SkTileGrid.h" 12fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org 13a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.orgSkTileGridPicture::SkTileGridPicture(int width, int height, const TileGridInfo& info) { 14a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org SkASSERT(info.fMargin.width() >= 0); 15a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org SkASSERT(info.fMargin.height() >= 0); 16a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org fInfo = info; 17a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org // Note: SkIRects are non-inclusive of the right() column and bottom() row. 18a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org // For example, an SkIRect at 0,0 with a size of (1,1) will only have 19a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org // content at pixel (0,0) and will report left=0 and right=1, hence the 20a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org // "-1"s below. 21a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org fXTileCount = (width + info.fTileInterval.width() - 1) / info.fTileInterval.width(); 22a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org fYTileCount = (height + info.fTileInterval.height() - 1) / info.fTileInterval.height(); 23fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org} 24fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org 25fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.orgSkBBoxHierarchy* SkTileGridPicture::createBBoxHierarchy() const { 26a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org return SkNEW_ARGS(SkTileGrid, (fXTileCount, fYTileCount, fInfo, 27a83b01795fdb3c2a9ebccadcff7c4194be3a288ejunov@chromium.org SkTileGridNextDatum<SkPictureStateTree::Draw>)); 28fd4515c2295bdc26a3aaa95b829479b0e5f6b3b0junov@chromium.org} 29