Changeset 112449 in webkit


Ignore:
Timestamp:
Mar 28, 2012 3:07:25 PM (12 years ago)
Author:
enne@google.com
Message:

Unreviewed, rolling out r112432.
http://trac.webkit.org/changeset/112432
https://bugs.webkit.org/show_bug.cgi?id=82536

Causes ccs3 layout test asserts (Requested by enne on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-03-28

Source/WebCore:

  • platform/graphics/chromium/TiledLayerChromium.cpp:

(WebCore::TiledLayerChromium::drawsContent):
(WebCore::TiledLayerChromium::reserveTextures):
(WebCore::TiledLayerChromium::prepareToUpdate):
(WebCore::TiledLayerChromium::prepareToUpdateIdle):
(WebCore::TiledLayerChromium::needsIdlePaint):
(WebCore::TiledLayerChromium::idlePaintRect):

  • platform/graphics/chromium/cc/CCLayerTilingData.cpp:

(WebCore::CCLayerTilingData::tileRect):

  • platform/graphics/chromium/cc/CCLayerTilingData.h:

(WebCore::CCLayerTilingData::numTiles):
(WebCore::CCLayerTilingData::tileBounds):
(WebCore::CCLayerTilingData::isEmpty):

  • platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:

(WebCore::CCTiledLayerImpl::bindContentsTexture):
(WebCore::CCTiledLayerImpl::appendQuads):

  • platform/graphics/filters/FECustomFilter.cpp:

(WebCore::FECustomFilter::platformApplySoftware):

  • platform/graphics/gpu/Texture.cpp:

(WebCore::Texture::create):
(WebCore::Texture::updateSubRect):

  • platform/graphics/gpu/TilingData.cpp:

(WebCore::TilingData::tileBounds):
(WebCore::TilingData::tileBoundsWithBorder):
(WebCore::TilingData::tileBoundsNormalized):
(WebCore::TilingData::intersectDrawQuad):
(WebCore):

  • platform/graphics/gpu/TilingData.h:

(WebCore::TilingData::numTiles):
(WebCore::TilingData::tileIndex):
(WebCore::TilingData::tileXIndex):
(WebCore::TilingData::tileYIndex):
(TilingData):
(WebCore::TilingData::assertTile):

Source/WebKit/chromium:

  • tests/TiledLayerChromiumTest.cpp:
  • tests/TilingDataTest.cpp:

(WebCore::TEST):

Location:
trunk/Source
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r112448 r112449  
     12012-03-28  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r112432.
     4        http://trac.webkit.org/changeset/112432
     5        https://bugs.webkit.org/show_bug.cgi?id=82536
     6
     7        Causes ccs3 layout test asserts (Requested by enne on
     8        #webkit).
     9
     10        * platform/graphics/chromium/TiledLayerChromium.cpp:
     11        (WebCore::TiledLayerChromium::drawsContent):
     12        (WebCore::TiledLayerChromium::reserveTextures):
     13        (WebCore::TiledLayerChromium::prepareToUpdate):
     14        (WebCore::TiledLayerChromium::prepareToUpdateIdle):
     15        (WebCore::TiledLayerChromium::needsIdlePaint):
     16        (WebCore::TiledLayerChromium::idlePaintRect):
     17        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
     18        (WebCore::CCLayerTilingData::tileRect):
     19        * platform/graphics/chromium/cc/CCLayerTilingData.h:
     20        (WebCore::CCLayerTilingData::numTiles):
     21        (WebCore::CCLayerTilingData::tileBounds):
     22        (WebCore::CCLayerTilingData::isEmpty):
     23        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
     24        (WebCore::CCTiledLayerImpl::bindContentsTexture):
     25        (WebCore::CCTiledLayerImpl::appendQuads):
     26        * platform/graphics/filters/FECustomFilter.cpp:
     27        (WebCore::FECustomFilter::platformApplySoftware):
     28        * platform/graphics/gpu/Texture.cpp:
     29        (WebCore::Texture::create):
     30        (WebCore::Texture::updateSubRect):
     31        * platform/graphics/gpu/TilingData.cpp:
     32        (WebCore::TilingData::tileBounds):
     33        (WebCore::TilingData::tileBoundsWithBorder):
     34        (WebCore::TilingData::tileBoundsNormalized):
     35        (WebCore::TilingData::intersectDrawQuad):
     36        (WebCore):
     37        * platform/graphics/gpu/TilingData.h:
     38        (WebCore::TilingData::numTiles):
     39        (WebCore::TilingData::tileIndex):
     40        (WebCore::TilingData::tileXIndex):
     41        (WebCore::TilingData::tileYIndex):
     42        (TilingData):
     43        (WebCore::TilingData::assertTile):
     44
    1452012-03-27  Daniel Cheng  <dcheng@chromium.org>
    246
  • trunk/Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp

    r112432 r112449  
    167167        return false;
    168168
    169     bool hasMoreThanOneTile = m_tiler->numTilesX() > 1 || m_tiler->numTilesY() > 1;
    170     if (m_tilingOption == NeverTile && hasMoreThanOneTile)
     169    if (m_tilingOption == NeverTile && m_tiler->numTiles() > 1)
    171170        return false;
    172171
     
    558557
    559558    const IntRect& layerRect = visibleLayerRect();
    560     if (layerRect.isEmpty() || m_tiler->hasEmptyBounds())
     559    if (layerRect.isEmpty() || !m_tiler->numTiles())
    561560        return;
    562561
     
    611610    resetUpdateState();
    612611
    613     if (layerRect.isEmpty() || m_tiler->hasEmptyBounds())
     612    if (layerRect.isEmpty() || !m_tiler->numTiles())
    614613        return;
    615614
     
    630629    updateBounds();
    631630
    632     if (m_tiler->hasEmptyBounds())
     631    if (!m_tiler->numTiles())
    633632        return;
    634633
     
    703702        return false;
    704703
    705     if (m_tiler->hasEmptyBounds())
     704    if (!m_tiler->numTiles())
    706705        return false;
    707706
     
    733732    // ones we avoid prepainting the layer at all.
    734733    if (visibleLayerRect.isEmpty()) {
    735         bool isSmallLayer = m_tiler->numTilesX() <= 9 && m_tiler->numTilesY() <= 9 && m_tiler->numTilesX() * m_tiler->numTilesY() <= 9;
    736         if ((drawTransformIsAnimating() || screenSpaceTransformIsAnimating()) && isSmallLayer)
     734        if ((drawTransformIsAnimating() || screenSpaceTransformIsAnimating()) && m_tiler->numTiles() <= 9)
    737735            return IntRect(IntPoint(), contentBounds());
    738736        return IntRect();
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTilingData.cpp

    r112432 r112449  
    107107IntRect CCLayerTilingData::tileRect(const Tile* tile) const
    108108{
    109     IntRect tileRect = m_tilingData.tileBoundsWithBorder(tile->i(), tile->j());
     109    const int index = m_tilingData.tileIndex(tile->i(), tile->j());
     110    IntRect tileRect = m_tilingData.tileBoundsWithBorder(index);
    110111    tileRect.setSize(m_tileSize);
    111112    return tileRect;
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTilingData.h

    r112432 r112449  
    4545    static PassOwnPtr<CCLayerTilingData> create(const IntSize& tileSize, BorderTexelOption);
    4646
    47     bool hasEmptyBounds() const { return m_tilingData.hasEmptyBounds(); }
     47    int numTiles() const { return m_tilingData.numTiles(); }
    4848    int numTilesX() const { return m_tilingData.numTilesX(); }
    4949    int numTilesY() const { return m_tilingData.numTilesY(); }
    50     IntRect tileBounds(int i, int j) const { return m_tilingData.tileBounds(i, j); }
     50    IntRect tileBounds(int i, int j) const { return m_tilingData.tileBounds(m_tilingData.tileIndex(i, j)); }
    5151    IntPoint textureOffset(int xIndex, int yIndex) const { return m_tilingData.textureOffset(xIndex, yIndex); }
    5252
     
    5858    bool hasBorderTexels() const { return m_tilingData.borderTexels(); }
    5959
    60     bool isEmpty() const { return hasEmptyBounds() || !tiles().size(); }
     60    bool isEmpty() const { return !m_tilingData.numTiles() || !tiles().size(); }
    6161
    6262    const CCLayerTilingData& operator=(const CCLayerTilingData&);
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp

    r112432 r112449  
    8181    // This function is only valid for single texture layers, e.g. masks.
    8282    ASSERT(m_tiler);
    83     ASSERT(m_tiler->numTilesX() == 1);
    84     ASSERT(m_tiler->numTilesY() == 1);
     83    ASSERT(m_tiler->numTiles() == 1);
    8584
    8685    DrawableTile* tile = tileAt(0, 0);
     
    145144    appendGutterQuads(quadList, sharedQuadState);
    146145
    147     if (!m_tiler || m_tiler->hasEmptyBounds() || layerRect.isEmpty())
     146    if (!m_tiler || !m_tiler->numTiles() || layerRect.isEmpty())
    148147        return;
    149148
  • trunk/Source/WebCore/platform/graphics/filters/FECustomFilter.cpp

    r112432 r112449  
    113113   
    114114    // Do not draw the filter if the input image cannot fit inside a single GPU texture.
    115     if (m_inputTexture->tiles().numTilesX() != 1 || m_inputTexture->tiles().numTilesY() != 1)
     115    if (m_inputTexture->tiles().numTiles() != 1)
    116116        return;
    117117   
  • trunk/Source/WebCore/platform/graphics/gpu/Texture.cpp

    r112432 r112449  
    9191    context->getIntegerv(GraphicsContext3D::MAX_TEXTURE_SIZE, &maxTextureSize);
    9292    TilingData tiling(maxTextureSize, width, height, true);
    93 
    94     // Check for overflow.
    95     int numTiles = width * height;
    96     if (numTiles / width != height) {
    97         tiling.setTotalSize(0, 0);
    98         numTiles = 0;
    99     }
     93    int numTiles = tiling.numTiles();
    10094
    10195    OwnPtr<Vector<unsigned int> > textureIds = adoptPtr(new Vector<unsigned int>(numTiles));
     
    111105        textureIds->at(i) = textureId;
    112106
    113         int xIndex = i % width;
    114         int yIndex = i / width;
    115         IntRect tileBoundsWithBorder = tiling.tileBoundsWithBorder(xIndex, yIndex);
     107        IntRect tileBoundsWithBorder = tiling.tileBoundsWithBorder(i);
    116108
    117109        unsigned int glFormat = 0;
     
    177169    OwnArrayPtr<uint32_t> tempBuff = adoptArrayPtr(new uint32_t[tempBuffSize]);
    178170
    179     for (int tile = 0; tile < m_tiles.numTilesX() * m_tiles.numTilesY(); tile++) {
    180         int xIndex = tile % m_tiles.totalSizeX();
    181         int yIndex = tile / m_tiles.totalSizeX();
    182 
     171    for (int tile = 0; tile < m_tiles.numTiles(); tile++) {
    183172        // Intersect with tile
    184         IntRect tileBoundsWithBorder = m_tiles.tileBoundsWithBorder(xIndex, yIndex);
     173        IntRect tileBoundsWithBorder = m_tiles.tileBoundsWithBorder(tile);
    185174
    186175        IntRect updateRectIntersected = updateRectSanitized;
  • trunk/Source/WebCore/platform/graphics/gpu/TilingData.cpp

    r112432 r112449  
    100100}
    101101
    102 IntRect TilingData::tileBounds(int i, int j) const
    103 {
    104     assertTile(i, j);
    105     int x = tilePositionX(i);
    106     int y = tilePositionY(j);
    107     int width = tileSizeX(i);
    108     int height = tileSizeY(j);
     102IntRect TilingData::tileBounds(int tile) const
     103{
     104    assertTile(tile);
     105    int ix = tileXIndex(tile);
     106    int iy = tileYIndex(tile);
     107    int x = tilePositionX(ix);
     108    int y = tilePositionY(iy);
     109    int width = tileSizeX(ix);
     110    int height = tileSizeY(iy);
    109111    ASSERT(x >= 0 && y >= 0 && width >= 0 && height >= 0);
    110112    ASSERT(x <= totalSizeX() && y <= totalSizeY());
     
    112114}
    113115
    114 IntRect TilingData::tileBoundsWithBorder(int i, int j) const
    115 {
    116     IntRect bounds = tileBounds(i, j);
     116IntRect TilingData::tileBoundsWithBorder(int tile) const
     117{
     118    IntRect bounds = tileBounds(tile);
    117119
    118120    if (m_borderTexels) {
     
    122124        int y2 = bounds.maxY();
    123125
    124         if (i > 0)
     126        if (tileXIndex(tile) > 0)
    125127            x1--;
    126         if (i < (numTilesX() - 1))
     128        if (tileXIndex(tile) < (numTilesX() - 1))
    127129            x2++;
    128         if (j > 0)
     130        if (tileYIndex(tile) > 0)
    129131            y1--;
    130         if (j < (numTilesY() - 1))
     132        if (tileYIndex(tile) < (numTilesY() - 1))
    131133            y2++;
    132134
     
    137139}
    138140
    139 FloatRect TilingData::tileBoundsNormalized(int i, int j) const
    140 {
    141     assertTile(i, j);
    142     FloatRect bounds(tileBounds(i, j));
     141FloatRect TilingData::tileBoundsNormalized(int tile) const
     142{
     143    assertTile(tile);
     144    FloatRect bounds(tileBounds(tile));
    143145    bounds.scale(1.0f / m_totalSizeX, 1.0f / m_totalSizeY);
    144146    return bounds;
     
    215217}
    216218
     219void TilingData::intersectDrawQuad(const FloatRect& srcRect, const FloatRect& dstRect, int tile,
     220                                   FloatRect* newSrc, FloatRect* newDst) const
     221{
     222    // Intersect with tile
     223    FloatRect tileBounds = this->tileBounds(tile);
     224    FloatRect srcRectIntersected = srcRect;
     225    srcRectIntersected.intersect(tileBounds);
     226
     227    if (srcRectIntersected.isEmpty()) {
     228        *newSrc = *newDst = FloatRect(0, 0, 0, 0);
     229        return;
     230    }
     231
     232    float srcRectIntersectedNormX = (srcRectIntersected.x() - srcRect.x()) / srcRect.width();
     233    float srcRectIntersectedNormY = (srcRectIntersected.y() - srcRect.y()) / srcRect.height();
     234    float srcRectIntersectedNormW = srcRectIntersected.width() / srcRect.width();
     235    float srcRectIntersectedNormH = srcRectIntersected.height() / srcRect.height();
     236
     237    *newSrc = srcRectIntersected;
     238    newSrc->move(
     239        -tileBounds.x() + ((tileXIndex(tile) > 0) ? m_borderTexels : 0),
     240        -tileBounds.y() + ((tileYIndex(tile) > 0) ? m_borderTexels : 0));
     241
     242    *newDst = FloatRect(
     243        srcRectIntersectedNormX * dstRect.width() + dstRect.x(),
     244        srcRectIntersectedNormY * dstRect.height() + dstRect.y(),
     245        srcRectIntersectedNormW * dstRect.width(),
     246        srcRectIntersectedNormH * dstRect.height());
     247}
     248
    217249IntPoint TilingData::textureOffset(int xIndex, int yIndex) const
    218250{
  • trunk/Source/WebCore/platform/graphics/gpu/TilingData.h

    r112432 r112449  
    5151    int borderTexels() const { return m_borderTexels; }
    5252
    53     bool hasEmptyBounds() const { return !numTilesX() || !numTilesY(); }
     53    int numTiles() const { return numTilesX() * numTilesY(); }
    5454    int numTilesX() const { return m_numTilesX; }
    5555    int numTilesY() const { return m_numTilesY; }
     56    int tileIndex(int x, int y) const { return x + y * numTilesX(); }
     57    int tileXIndex(int tile) const { assertTile(tile); return tile % numTilesX(); }
     58    int tileYIndex(int tile) const { assertTile(tile); return tile / numTilesX(); }
    5659    int tileXIndexFromSrcCoord(int) const;
    5760    int tileYIndexFromSrcCoord(int) const;
    5861
    59     IntRect tileBounds(int, int) const;
    60     IntRect tileBoundsWithBorder(int, int) const;
    61     FloatRect tileBoundsNormalized(int, int) const;
     62    IntRect tileBounds(int tile) const;
     63    IntRect tileBoundsWithBorder(int tile) const;
     64    FloatRect tileBoundsNormalized(int tile) const;
    6265    int tilePositionX(int xIndex) const;
    6366    int tilePositionY(int yIndex) const;
     
    6770    IntRect overlappedTileIndices(const FloatRect& srcRect) const;
    6871
     72    // Given a set of source and destination coordinates for a drawing quad
     73    // in texel units, returns adjusted data to render just the one tile.
     74    void intersectDrawQuad(const FloatRect& srcRect, const FloatRect& dstRect, int tile, FloatRect* newSrc, FloatRect* newDst) const;
     75
    6976    // Difference between tileBound's and tileBoundWithBorder's location().
    7077    IntPoint textureOffset(int xIndex, int yIndex) const;
     
    7279private:
    7380    TilingData() : m_maxTextureSize(0), m_totalSizeX(0), m_totalSizeY(0) {}
    74     void assertTile(int i, int j) const { ASSERT_UNUSED(i, i >= 0 && i < numTilesX()); ASSERT_UNUSED(j, j >= 0 && j < numTilesY()); }
     81    void assertTile(int tile) const { ASSERT_UNUSED(tile, tile >= 0 && tile < numTiles()); }
    7582    void recomputeNumTiles();
    7683
  • trunk/Source/WebKit/chromium/ChangeLog

    r112448 r112449  
     12012-03-28  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r112432.
     4        http://trac.webkit.org/changeset/112432
     5        https://bugs.webkit.org/show_bug.cgi?id=82536
     6
     7        Causes ccs3 layout test asserts (Requested by enne on
     8        #webkit).
     9
     10        * tests/TiledLayerChromiumTest.cpp:
     11        * tests/TilingDataTest.cpp:
     12        (WebCore::TEST):
     13
    1142012-03-27  Daniel Cheng  <dcheng@chromium.org>
    215
  • trunk/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp

    r112432 r112449  
    10831083}
    10841084
    1085 TEST(TiledLayerChromiumTest, hugeLayerUpdateCrash)
    1086 {
    1087     OwnPtr<TextureManager> textureManager = TextureManager::create(60*1024*1024, 60*1024*1024, 1024);
    1088     RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(textureManager.get()));
    1089 
    1090     int size = 1 << 30;
    1091     layer->setBounds(IntSize(size, size));
    1092     layer->invalidateRect(IntRect(0, 0, size, size));
    1093 
    1094     // Ensure no crash for bounds where size * size would overflow an int.
    1095     layer->prepareToUpdate(IntRect(0, 0, 700, 700), 0);
    1096 }
    1097 
    10981085TEST(TiledLayerChromiumTest, partialUpdates)
    10991086{
  • trunk/Source/WebKit/chromium/tests/TilingDataTest.cpp

    r112432 r112449  
    3939namespace {
    4040
    41 class TestTiling : public TilingData {
    42 public:
    43     TestTiling(int maxTextureSize, int totalSizeX, int totalSizeY, bool hasBorderTexels)
    44         : TilingData(maxTextureSize, totalSizeX, totalSizeY, hasBorderTexels)
    45     {
    46     }
    47 
    48     // This function only available for testing because of potential overflow.
    49     int numTiles() const
    50     {
    51         int numTiles = numTilesX() * numTilesY();
    52 
    53         // Assert no overflow.
    54         EXPECT_GE(numTiles, 0);
    55         if (numTiles > 0)
    56             EXPECT_EQ(numTiles / numTilesX(), numTilesY());
    57 
    58         return numTiles;
    59     }
    60 };
    61 
    6241TEST(TilingDataTest, numTiles_NoTiling)
    6342{
    64     EXPECT_EQ(1, TestTiling(16, 16, 16, false).numTiles());
    65     EXPECT_EQ(1, TestTiling(16, 15, 15, true).numTiles());
    66     EXPECT_EQ(1, TestTiling(16, 16, 16, true).numTiles());
    67     EXPECT_EQ(1, TestTiling(16,  1, 16, false).numTiles());
    68     EXPECT_EQ(1, TestTiling(15, 15, 15, true).numTiles());
     43    EXPECT_EQ(1, TilingData(16, 16, 16, false).numTiles());
     44    EXPECT_EQ(1, TilingData(16, 15, 15, true).numTiles());
     45    EXPECT_EQ(1, TilingData(16, 16, 16, true).numTiles());
     46    EXPECT_EQ(1, TilingData(16,  1, 16, false).numTiles());
     47    EXPECT_EQ(1, TilingData(15, 15, 15, true).numTiles());
    6948}
    7049
    7150TEST(TilingDataTest, numTiles_TilingNoBorders)
    7251{
    73     EXPECT_EQ(0, TestTiling(0,  0,  0, false).numTiles());
    74     EXPECT_EQ(0, TestTiling(0,  4,  0, false).numTiles());
    75     EXPECT_EQ(0, TestTiling(0,  0,  4, false).numTiles());
    76     EXPECT_EQ(0, TestTiling(4,  4,  0, false).numTiles());
    77     EXPECT_EQ(0, TestTiling(4,  0,  4, false).numTiles());
    78     EXPECT_EQ(0, TestTiling(-8, 1,  1, false).numTiles());
    79     EXPECT_EQ(0, TestTiling(-1, 1,  1, false).numTiles());
    80     EXPECT_EQ(0, TestTiling(0,  1,  1, false).numTiles());
    81 
    82     EXPECT_EQ(1, TestTiling(1,  1,  1, false).numTiles());
    83     EXPECT_EQ(2, TestTiling(1,  1,  2, false).numTiles());
    84     EXPECT_EQ(2, TestTiling(1,  2,  1, false).numTiles());
    85     EXPECT_EQ(1, TestTiling(2,  1,  1, false).numTiles());
    86     EXPECT_EQ(1, TestTiling(2,  1,  2, false).numTiles());
    87     EXPECT_EQ(1, TestTiling(2,  2,  1, false).numTiles());
    88     EXPECT_EQ(1, TestTiling(2,  2,  2, false).numTiles());
    89     EXPECT_EQ(1, TestTiling(3,  3,  3, false).numTiles());
    90 
    91     EXPECT_EQ(1, TestTiling(4,  1,  4, false).numTiles());
    92     EXPECT_EQ(1, TestTiling(4,  2,  4, false).numTiles());
    93     EXPECT_EQ(1, TestTiling(4,  3,  4, false).numTiles());
    94     EXPECT_EQ(1, TestTiling(4,  4,  4, false).numTiles());
    95     EXPECT_EQ(2, TestTiling(4,  5,  4, false).numTiles());
    96     EXPECT_EQ(2, TestTiling(4,  6,  4, false).numTiles());
    97     EXPECT_EQ(2, TestTiling(4,  7,  4, false).numTiles());
    98     EXPECT_EQ(2, TestTiling(4,  8,  4, false).numTiles());
    99     EXPECT_EQ(3, TestTiling(4,  9,  4, false).numTiles());
    100     EXPECT_EQ(3, TestTiling(4, 10,  4, false).numTiles());
    101     EXPECT_EQ(3, TestTiling(4, 11,  4, false).numTiles());
    102 
    103     EXPECT_EQ(1, TestTiling(5,  1,  5, false).numTiles());
    104     EXPECT_EQ(1, TestTiling(5,  2,  5, false).numTiles());
    105     EXPECT_EQ(1, TestTiling(5,  3,  5, false).numTiles());
    106     EXPECT_EQ(1, TestTiling(5,  4,  5, false).numTiles());
    107     EXPECT_EQ(1, TestTiling(5,  5,  5, false).numTiles());
    108     EXPECT_EQ(2, TestTiling(5,  6,  5, false).numTiles());
    109     EXPECT_EQ(2, TestTiling(5,  7,  5, false).numTiles());
    110     EXPECT_EQ(2, TestTiling(5,  8,  5, false).numTiles());
    111     EXPECT_EQ(2, TestTiling(5,  9,  5, false).numTiles());
    112     EXPECT_EQ(2, TestTiling(5, 10,  5, false).numTiles());
    113     EXPECT_EQ(3, TestTiling(5, 11,  5, false).numTiles());
    114 
    115     EXPECT_EQ(1, TestTiling(16, 16, 16, false).numTiles());
    116     EXPECT_EQ(1, TestTiling(17, 16, 16, false).numTiles());
    117     EXPECT_EQ(4, TestTiling(15, 16, 16, false).numTiles());
    118     EXPECT_EQ(4, TestTiling(8, 16, 16, false).numTiles());
    119     EXPECT_EQ(6, TestTiling(8, 17, 16, false).numTiles());
     52    EXPECT_EQ(0, TilingData(0,  0,  0, false).numTiles());
     53    EXPECT_EQ(0, TilingData(0,  4,  0, false).numTiles());
     54    EXPECT_EQ(0, TilingData(0,  0,  4, false).numTiles());
     55    EXPECT_EQ(0, TilingData(4,  4,  0, false).numTiles());
     56    EXPECT_EQ(0, TilingData(4,  0,  4, false).numTiles());
     57    EXPECT_EQ(0, TilingData(-8, 1,  1, false).numTiles());
     58    EXPECT_EQ(0, TilingData(-1, 1,  1, false).numTiles());
     59    EXPECT_EQ(0, TilingData(0,  1,  1, false).numTiles());
     60
     61    EXPECT_EQ(1, TilingData(1,  1,  1, false).numTiles());
     62    EXPECT_EQ(2, TilingData(1,  1,  2, false).numTiles());
     63    EXPECT_EQ(2, TilingData(1,  2,  1, false).numTiles());
     64    EXPECT_EQ(1, TilingData(2,  1,  1, false).numTiles());
     65    EXPECT_EQ(1, TilingData(2,  1,  2, false).numTiles());
     66    EXPECT_EQ(1, TilingData(2,  2,  1, false).numTiles());
     67    EXPECT_EQ(1, TilingData(2,  2,  2, false).numTiles());
     68    EXPECT_EQ(1, TilingData(3,  3,  3, false).numTiles());
     69
     70    EXPECT_EQ(1, TilingData(4,  1,  4, false).numTiles());
     71    EXPECT_EQ(1, TilingData(4,  2,  4, false).numTiles());
     72    EXPECT_EQ(1, TilingData(4,  3,  4, false).numTiles());
     73    EXPECT_EQ(1, TilingData(4,  4,  4, false).numTiles());
     74    EXPECT_EQ(2, TilingData(4,  5,  4, false).numTiles());
     75    EXPECT_EQ(2, TilingData(4,  6,  4, false).numTiles());
     76    EXPECT_EQ(2, TilingData(4,  7,  4, false).numTiles());
     77    EXPECT_EQ(2, TilingData(4,  8,  4, false).numTiles());
     78    EXPECT_EQ(3, TilingData(4,  9,  4, false).numTiles());
     79    EXPECT_EQ(3, TilingData(4, 10,  4, false).numTiles());
     80    EXPECT_EQ(3, TilingData(4, 11,  4, false).numTiles());
     81
     82    EXPECT_EQ(1, TilingData(5,  1,  5, false).numTiles());
     83    EXPECT_EQ(1, TilingData(5,  2,  5, false).numTiles());
     84    EXPECT_EQ(1, TilingData(5,  3,  5, false).numTiles());
     85    EXPECT_EQ(1, TilingData(5,  4,  5, false).numTiles());
     86    EXPECT_EQ(1, TilingData(5,  5,  5, false).numTiles());
     87    EXPECT_EQ(2, TilingData(5,  6,  5, false).numTiles());
     88    EXPECT_EQ(2, TilingData(5,  7,  5, false).numTiles());
     89    EXPECT_EQ(2, TilingData(5,  8,  5, false).numTiles());
     90    EXPECT_EQ(2, TilingData(5,  9,  5, false).numTiles());
     91    EXPECT_EQ(2, TilingData(5, 10,  5, false).numTiles());
     92    EXPECT_EQ(3, TilingData(5, 11,  5, false).numTiles());
     93
     94    EXPECT_EQ(1, TilingData(16, 16, 16, false).numTiles());
     95    EXPECT_EQ(1, TilingData(17, 16, 16, false).numTiles());
     96    EXPECT_EQ(4, TilingData(15, 16, 16, false).numTiles());
     97    EXPECT_EQ(4, TilingData(8, 16, 16, false).numTiles());
     98    EXPECT_EQ(6, TilingData(8, 17, 16, false).numTiles());
    12099}
    121100
    122101TEST(TilingDataTest, numTiles_TilingWithBorders)
    123102{
    124     EXPECT_EQ(0, TestTiling(0,  0,  0, true).numTiles());
    125     EXPECT_EQ(0, TestTiling(0,  4,  0, true).numTiles());
    126     EXPECT_EQ(0, TestTiling(0,  0,  4, true).numTiles());
    127     EXPECT_EQ(0, TestTiling(4,  4,  0, true).numTiles());
    128     EXPECT_EQ(0, TestTiling(4,  0,  4, true).numTiles());
    129     EXPECT_EQ(0, TestTiling(-8, 1,  1, true).numTiles());
    130     EXPECT_EQ(0, TestTiling(-1, 1,  1, true).numTiles());
    131     EXPECT_EQ(0, TestTiling(0,  1,  1, true).numTiles());
    132 
    133     EXPECT_EQ(1, TestTiling(1,  1,  1, true).numTiles());
    134     EXPECT_EQ(0, TestTiling(1,  1,  2, true).numTiles());
    135     EXPECT_EQ(0, TestTiling(1,  2,  1, true).numTiles());
    136     EXPECT_EQ(1, TestTiling(2,  1,  1, true).numTiles());
    137     EXPECT_EQ(1, TestTiling(2,  1,  2, true).numTiles());
    138     EXPECT_EQ(1, TestTiling(2,  2,  1, true).numTiles());
    139     EXPECT_EQ(1, TestTiling(2,  2,  2, true).numTiles());
    140 
    141     EXPECT_EQ(1, TestTiling(3,  1,  3, true).numTiles());
    142     EXPECT_EQ(1, TestTiling(3,  2,  3, true).numTiles());
    143     EXPECT_EQ(1, TestTiling(3,  3,  3, true).numTiles());
    144     EXPECT_EQ(2, TestTiling(3,  4,  3, true).numTiles());
    145     EXPECT_EQ(3, TestTiling(3,  5,  3, true).numTiles());
    146     EXPECT_EQ(4, TestTiling(3,  6,  3, true).numTiles());
    147     EXPECT_EQ(5, TestTiling(3,  7,  3, true).numTiles());
    148 
    149     EXPECT_EQ(1, TestTiling(4,  1,  4, true).numTiles());
    150     EXPECT_EQ(1, TestTiling(4,  2,  4, true).numTiles());
    151     EXPECT_EQ(1, TestTiling(4,  3,  4, true).numTiles());
    152     EXPECT_EQ(1, TestTiling(4,  4,  4, true).numTiles());
    153     EXPECT_EQ(2, TestTiling(4,  5,  4, true).numTiles());
    154     EXPECT_EQ(2, TestTiling(4,  6,  4, true).numTiles());
    155     EXPECT_EQ(3, TestTiling(4,  7,  4, true).numTiles());
    156     EXPECT_EQ(3, TestTiling(4,  8,  4, true).numTiles());
    157     EXPECT_EQ(4, TestTiling(4,  9,  4, true).numTiles());
    158     EXPECT_EQ(4, TestTiling(4, 10,  4, true).numTiles());
    159     EXPECT_EQ(5, TestTiling(4, 11,  4, true).numTiles());
    160 
    161     EXPECT_EQ(1, TestTiling(5,  1,  5, true).numTiles());
    162     EXPECT_EQ(1, TestTiling(5,  2,  5, true).numTiles());
    163     EXPECT_EQ(1, TestTiling(5,  3,  5, true).numTiles());
    164     EXPECT_EQ(1, TestTiling(5,  4,  5, true).numTiles());
    165     EXPECT_EQ(1, TestTiling(5,  5,  5, true).numTiles());
    166     EXPECT_EQ(2, TestTiling(5,  6,  5, true).numTiles());
    167     EXPECT_EQ(2, TestTiling(5,  7,  5, true).numTiles());
    168     EXPECT_EQ(2, TestTiling(5,  8,  5, true).numTiles());
    169     EXPECT_EQ(3, TestTiling(5,  9,  5, true).numTiles());
    170     EXPECT_EQ(3, TestTiling(5, 10,  5, true).numTiles());
    171     EXPECT_EQ(3, TestTiling(5, 11,  5, true).numTiles());
     103    EXPECT_EQ(0, TilingData(0,  0,  0, true).numTiles());
     104    EXPECT_EQ(0, TilingData(0,  4,  0, true).numTiles());
     105    EXPECT_EQ(0, TilingData(0,  0,  4, true).numTiles());
     106    EXPECT_EQ(0, TilingData(4,  4,  0, true).numTiles());
     107    EXPECT_EQ(0, TilingData(4,  0,  4, true).numTiles());
     108    EXPECT_EQ(0, TilingData(-8, 1,  1, true).numTiles());
     109    EXPECT_EQ(0, TilingData(-1, 1,  1, true).numTiles());
     110    EXPECT_EQ(0, TilingData(0,  1,  1, true).numTiles());
     111
     112    EXPECT_EQ(1, TilingData(1,  1,  1, true).numTiles());
     113    EXPECT_EQ(0, TilingData(1,  1,  2, true).numTiles());
     114    EXPECT_EQ(0, TilingData(1,  2,  1, true).numTiles());
     115    EXPECT_EQ(1, TilingData(2,  1,  1, true).numTiles());
     116    EXPECT_EQ(1, TilingData(2,  1,  2, true).numTiles());
     117    EXPECT_EQ(1, TilingData(2,  2,  1, true).numTiles());
     118    EXPECT_EQ(1, TilingData(2,  2,  2, true).numTiles());
     119
     120    EXPECT_EQ(1, TilingData(3,  1,  3, true).numTiles());
     121    EXPECT_EQ(1, TilingData(3,  2,  3, true).numTiles());
     122    EXPECT_EQ(1, TilingData(3,  3,  3, true).numTiles());
     123    EXPECT_EQ(2, TilingData(3,  4,  3, true).numTiles());
     124    EXPECT_EQ(3, TilingData(3,  5,  3, true).numTiles());
     125    EXPECT_EQ(4, TilingData(3,  6,  3, true).numTiles());
     126    EXPECT_EQ(5, TilingData(3,  7,  3, true).numTiles());
     127
     128    EXPECT_EQ(1, TilingData(4,  1,  4, true).numTiles());
     129    EXPECT_EQ(1, TilingData(4,  2,  4, true).numTiles());
     130    EXPECT_EQ(1, TilingData(4,  3,  4, true).numTiles());
     131    EXPECT_EQ(1, TilingData(4,  4,  4, true).numTiles());
     132    EXPECT_EQ(2, TilingData(4,  5,  4, true).numTiles());
     133    EXPECT_EQ(2, TilingData(4,  6,  4, true).numTiles());
     134    EXPECT_EQ(3, TilingData(4,  7,  4, true).numTiles());
     135    EXPECT_EQ(3, TilingData(4,  8,  4, true).numTiles());
     136    EXPECT_EQ(4, TilingData(4,  9,  4, true).numTiles());
     137    EXPECT_EQ(4, TilingData(4, 10,  4, true).numTiles());
     138    EXPECT_EQ(5, TilingData(4, 11,  4, true).numTiles());
     139
     140    EXPECT_EQ(1, TilingData(5,  1,  5, true).numTiles());
     141    EXPECT_EQ(1, TilingData(5,  2,  5, true).numTiles());
     142    EXPECT_EQ(1, TilingData(5,  3,  5, true).numTiles());
     143    EXPECT_EQ(1, TilingData(5,  4,  5, true).numTiles());
     144    EXPECT_EQ(1, TilingData(5,  5,  5, true).numTiles());
     145    EXPECT_EQ(2, TilingData(5,  6,  5, true).numTiles());
     146    EXPECT_EQ(2, TilingData(5,  7,  5, true).numTiles());
     147    EXPECT_EQ(2, TilingData(5,  8,  5, true).numTiles());
     148    EXPECT_EQ(3, TilingData(5,  9,  5, true).numTiles());
     149    EXPECT_EQ(3, TilingData(5, 10,  5, true).numTiles());
     150    EXPECT_EQ(3, TilingData(5, 11,  5, true).numTiles());
    172151}
    173152
    174153TEST(TilingDataTest, tileXIndexFromSrcCoord)
    175154{
    176     EXPECT_EQ(0, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(0));
    177     EXPECT_EQ(0, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(1));
    178     EXPECT_EQ(0, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(2));
    179     EXPECT_EQ(1, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(3));
    180     EXPECT_EQ(1, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(4));
    181     EXPECT_EQ(1, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(5));
    182     EXPECT_EQ(2, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(6));
    183     EXPECT_EQ(2, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(7));
    184     EXPECT_EQ(2, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(8));
    185     EXPECT_EQ(3, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(9));
    186     EXPECT_EQ(3, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(10));
    187     EXPECT_EQ(3, TestTiling(3, 10, 10, false).tileXIndexFromSrcCoord(11));
    188 
    189     EXPECT_EQ(0, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(0));
    190     EXPECT_EQ(0, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(1));
    191     EXPECT_EQ(1, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(2));
    192     EXPECT_EQ(2, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(3));
    193     EXPECT_EQ(3, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(4));
    194     EXPECT_EQ(4, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(5));
    195     EXPECT_EQ(5, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(6));
    196     EXPECT_EQ(6, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(7));
    197     EXPECT_EQ(7, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(8));
    198     EXPECT_EQ(7, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(9));
    199     EXPECT_EQ(7, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(10));
    200     EXPECT_EQ(7, TestTiling(3, 10, 10, true).tileXIndexFromSrcCoord(11));
    201 
    202     EXPECT_EQ(0, TestTiling(1, 1, 1, false).tileXIndexFromSrcCoord(0));
    203     EXPECT_EQ(0, TestTiling(2, 2, 2, false).tileXIndexFromSrcCoord(0));
    204     EXPECT_EQ(0, TestTiling(2, 2, 2, false).tileXIndexFromSrcCoord(1));
    205     EXPECT_EQ(0, TestTiling(3, 3, 3, false).tileXIndexFromSrcCoord(0));
    206     EXPECT_EQ(0, TestTiling(3, 3, 3, false).tileXIndexFromSrcCoord(1));
    207     EXPECT_EQ(0, TestTiling(3, 3, 3, false).tileXIndexFromSrcCoord(2));
    208 
    209     EXPECT_EQ(0, TestTiling(3, 4, 3, false).tileXIndexFromSrcCoord(0));
    210     EXPECT_EQ(0, TestTiling(3, 4, 3, false).tileXIndexFromSrcCoord(1));
    211     EXPECT_EQ(0, TestTiling(3, 4, 3, false).tileXIndexFromSrcCoord(2));
    212     EXPECT_EQ(1, TestTiling(3, 4, 3, false).tileXIndexFromSrcCoord(3));
    213 
    214     EXPECT_EQ(0, TestTiling(1, 1, 1, true).tileXIndexFromSrcCoord(0));
    215     EXPECT_EQ(0, TestTiling(2, 2, 2, true).tileXIndexFromSrcCoord(0));
    216     EXPECT_EQ(0, TestTiling(2, 2, 2, true).tileXIndexFromSrcCoord(1));
    217     EXPECT_EQ(0, TestTiling(3, 3, 3, true).tileXIndexFromSrcCoord(0));
    218     EXPECT_EQ(0, TestTiling(3, 3, 3, true).tileXIndexFromSrcCoord(1));
    219     EXPECT_EQ(0, TestTiling(3, 3, 3, true).tileXIndexFromSrcCoord(2));
    220 
    221     EXPECT_EQ(0, TestTiling(3, 4, 3, true).tileXIndexFromSrcCoord(0));
    222     EXPECT_EQ(0, TestTiling(3, 4, 3, true).tileXIndexFromSrcCoord(1));
    223     EXPECT_EQ(1, TestTiling(3, 4, 3, true).tileXIndexFromSrcCoord(2));
    224     EXPECT_EQ(1, TestTiling(3, 4, 3, true).tileXIndexFromSrcCoord(3));
     155    EXPECT_EQ(0, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(0));
     156    EXPECT_EQ(0, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(1));
     157    EXPECT_EQ(0, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(2));
     158    EXPECT_EQ(1, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(3));
     159    EXPECT_EQ(1, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(4));
     160    EXPECT_EQ(1, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(5));
     161    EXPECT_EQ(2, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(6));
     162    EXPECT_EQ(2, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(7));
     163    EXPECT_EQ(2, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(8));
     164    EXPECT_EQ(3, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(9));
     165    EXPECT_EQ(3, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(10));
     166    EXPECT_EQ(3, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(11));
     167
     168    EXPECT_EQ(0, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(0));
     169    EXPECT_EQ(0, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(1));
     170    EXPECT_EQ(1, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(2));
     171    EXPECT_EQ(2, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(3));
     172    EXPECT_EQ(3, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(4));
     173    EXPECT_EQ(4, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(5));
     174    EXPECT_EQ(5, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(6));
     175    EXPECT_EQ(6, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(7));
     176    EXPECT_EQ(7, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(8));
     177    EXPECT_EQ(7, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(9));
     178    EXPECT_EQ(7, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(10));
     179    EXPECT_EQ(7, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(11));
     180
     181    EXPECT_EQ(0, TilingData(1, 1, 1, false).tileXIndexFromSrcCoord(0));
     182    EXPECT_EQ(0, TilingData(2, 2, 2, false).tileXIndexFromSrcCoord(0));
     183    EXPECT_EQ(0, TilingData(2, 2, 2, false).tileXIndexFromSrcCoord(1));
     184    EXPECT_EQ(0, TilingData(3, 3, 3, false).tileXIndexFromSrcCoord(0));
     185    EXPECT_EQ(0, TilingData(3, 3, 3, false).tileXIndexFromSrcCoord(1));
     186    EXPECT_EQ(0, TilingData(3, 3, 3, false).tileXIndexFromSrcCoord(2));
     187
     188    EXPECT_EQ(0, TilingData(3, 4, 3, false).tileXIndexFromSrcCoord(0));
     189    EXPECT_EQ(0, TilingData(3, 4, 3, false).tileXIndexFromSrcCoord(1));
     190    EXPECT_EQ(0, TilingData(3, 4, 3, false).tileXIndexFromSrcCoord(2));
     191    EXPECT_EQ(1, TilingData(3, 4, 3, false).tileXIndexFromSrcCoord(3));
     192
     193    EXPECT_EQ(0, TilingData(1, 1, 1, true).tileXIndexFromSrcCoord(0));
     194    EXPECT_EQ(0, TilingData(2, 2, 2, true).tileXIndexFromSrcCoord(0));
     195    EXPECT_EQ(0, TilingData(2, 2, 2, true).tileXIndexFromSrcCoord(1));
     196    EXPECT_EQ(0, TilingData(3, 3, 3, true).tileXIndexFromSrcCoord(0));
     197    EXPECT_EQ(0, TilingData(3, 3, 3, true).tileXIndexFromSrcCoord(1));
     198    EXPECT_EQ(0, TilingData(3, 3, 3, true).tileXIndexFromSrcCoord(2));
     199
     200    EXPECT_EQ(0, TilingData(3, 4, 3, true).tileXIndexFromSrcCoord(0));
     201    EXPECT_EQ(0, TilingData(3, 4, 3, true).tileXIndexFromSrcCoord(1));
     202    EXPECT_EQ(1, TilingData(3, 4, 3, true).tileXIndexFromSrcCoord(2));
     203    EXPECT_EQ(1, TilingData(3, 4, 3, true).tileXIndexFromSrcCoord(3));
    225204}
    226205TEST(TilingDataTest, tileYIndexFromSrcCoord)
    227206{
    228     EXPECT_EQ(0, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(0));
    229     EXPECT_EQ(0, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(1));
    230     EXPECT_EQ(0, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(2));
    231     EXPECT_EQ(1, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(3));
    232     EXPECT_EQ(1, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(4));
    233     EXPECT_EQ(1, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(5));
    234     EXPECT_EQ(2, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(6));
    235     EXPECT_EQ(2, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(7));
    236     EXPECT_EQ(2, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(8));
    237     EXPECT_EQ(3, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(9));
    238     EXPECT_EQ(3, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(10));
    239     EXPECT_EQ(3, TestTiling(3, 10, 10, false).tileYIndexFromSrcCoord(11));
    240 
    241     EXPECT_EQ(0, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(0));
    242     EXPECT_EQ(0, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(1));
    243     EXPECT_EQ(1, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(2));
    244     EXPECT_EQ(2, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(3));
    245     EXPECT_EQ(3, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(4));
    246     EXPECT_EQ(4, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(5));
    247     EXPECT_EQ(5, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(6));
    248     EXPECT_EQ(6, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(7));
    249     EXPECT_EQ(7, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(8));
    250     EXPECT_EQ(7, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(9));
    251     EXPECT_EQ(7, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(10));
    252     EXPECT_EQ(7, TestTiling(3, 10, 10, true).tileYIndexFromSrcCoord(11));
    253 
    254     EXPECT_EQ(0, TestTiling(1, 1, 1, false).tileYIndexFromSrcCoord(0));
    255     EXPECT_EQ(0, TestTiling(2, 2, 2, false).tileYIndexFromSrcCoord(0));
    256     EXPECT_EQ(0, TestTiling(2, 2, 2, false).tileYIndexFromSrcCoord(1));
    257     EXPECT_EQ(0, TestTiling(3, 3, 3, false).tileYIndexFromSrcCoord(0));
    258     EXPECT_EQ(0, TestTiling(3, 3, 3, false).tileYIndexFromSrcCoord(1));
    259     EXPECT_EQ(0, TestTiling(3, 3, 3, false).tileYIndexFromSrcCoord(2));
    260 
    261     EXPECT_EQ(0, TestTiling(3, 3, 4, false).tileYIndexFromSrcCoord(0));
    262     EXPECT_EQ(0, TestTiling(3, 3, 4, false).tileYIndexFromSrcCoord(1));
    263     EXPECT_EQ(0, TestTiling(3, 3, 4, false).tileYIndexFromSrcCoord(2));
    264     EXPECT_EQ(1, TestTiling(3, 3, 4, false).tileYIndexFromSrcCoord(3));
    265 
    266     EXPECT_EQ(0, TestTiling(1, 1, 1, true).tileYIndexFromSrcCoord(0));
    267     EXPECT_EQ(0, TestTiling(2, 2, 2, true).tileYIndexFromSrcCoord(0));
    268     EXPECT_EQ(0, TestTiling(2, 2, 2, true).tileYIndexFromSrcCoord(1));
    269     EXPECT_EQ(0, TestTiling(3, 3, 3, true).tileYIndexFromSrcCoord(0));
    270     EXPECT_EQ(0, TestTiling(3, 3, 3, true).tileYIndexFromSrcCoord(1));
    271     EXPECT_EQ(0, TestTiling(3, 3, 3, true).tileYIndexFromSrcCoord(2));
    272 
    273     EXPECT_EQ(0, TestTiling(3, 3, 4, true).tileYIndexFromSrcCoord(0));
    274     EXPECT_EQ(0, TestTiling(3, 3, 4, true).tileYIndexFromSrcCoord(1));
    275     EXPECT_EQ(1, TestTiling(3, 3, 4, true).tileYIndexFromSrcCoord(2));
    276     EXPECT_EQ(1, TestTiling(3, 3, 4, true).tileYIndexFromSrcCoord(3));
     207    EXPECT_EQ(0, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(0));
     208    EXPECT_EQ(0, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(1));
     209    EXPECT_EQ(0, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(2));
     210    EXPECT_EQ(1, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(3));
     211    EXPECT_EQ(1, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(4));
     212    EXPECT_EQ(1, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(5));
     213    EXPECT_EQ(2, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(6));
     214    EXPECT_EQ(2, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(7));
     215    EXPECT_EQ(2, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(8));
     216    EXPECT_EQ(3, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(9));
     217    EXPECT_EQ(3, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(10));
     218    EXPECT_EQ(3, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(11));
     219
     220    EXPECT_EQ(0, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(0));
     221    EXPECT_EQ(0, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(1));
     222    EXPECT_EQ(1, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(2));
     223    EXPECT_EQ(2, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(3));
     224    EXPECT_EQ(3, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(4));
     225    EXPECT_EQ(4, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(5));
     226    EXPECT_EQ(5, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(6));
     227    EXPECT_EQ(6, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(7));
     228    EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(8));
     229    EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(9));
     230    EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(10));
     231    EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(11));
     232
     233    EXPECT_EQ(0, TilingData(1, 1, 1, false).tileYIndexFromSrcCoord(0));
     234    EXPECT_EQ(0, TilingData(2, 2, 2, false).tileYIndexFromSrcCoord(0));
     235    EXPECT_EQ(0, TilingData(2, 2, 2, false).tileYIndexFromSrcCoord(1));
     236    EXPECT_EQ(0, TilingData(3, 3, 3, false).tileYIndexFromSrcCoord(0));
     237    EXPECT_EQ(0, TilingData(3, 3, 3, false).tileYIndexFromSrcCoord(1));
     238    EXPECT_EQ(0, TilingData(3, 3, 3, false).tileYIndexFromSrcCoord(2));
     239
     240    EXPECT_EQ(0, TilingData(3, 3, 4, false).tileYIndexFromSrcCoord(0));
     241    EXPECT_EQ(0, TilingData(3, 3, 4, false).tileYIndexFromSrcCoord(1));
     242    EXPECT_EQ(0, TilingData(3, 3, 4, false).tileYIndexFromSrcCoord(2));
     243    EXPECT_EQ(1, TilingData(3, 3, 4, false).tileYIndexFromSrcCoord(3));
     244
     245    EXPECT_EQ(0, TilingData(1, 1, 1, true).tileYIndexFromSrcCoord(0));
     246    EXPECT_EQ(0, TilingData(2, 2, 2, true).tileYIndexFromSrcCoord(0));
     247    EXPECT_EQ(0, TilingData(2, 2, 2, true).tileYIndexFromSrcCoord(1));
     248    EXPECT_EQ(0, TilingData(3, 3, 3, true).tileYIndexFromSrcCoord(0));
     249    EXPECT_EQ(0, TilingData(3, 3, 3, true).tileYIndexFromSrcCoord(1));
     250    EXPECT_EQ(0, TilingData(3, 3, 3, true).tileYIndexFromSrcCoord(2));
     251
     252    EXPECT_EQ(0, TilingData(3, 3, 4, true).tileYIndexFromSrcCoord(0));
     253    EXPECT_EQ(0, TilingData(3, 3, 4, true).tileYIndexFromSrcCoord(1));
     254    EXPECT_EQ(1, TilingData(3, 3, 4, true).tileYIndexFromSrcCoord(2));
     255    EXPECT_EQ(1, TilingData(3, 3, 4, true).tileYIndexFromSrcCoord(3));
    277256}
    278257
    279258TEST(TilingDataTest, tileSizeX)
    280259{
    281     EXPECT_EQ(5, TestTiling(5,  5,  5, false).tileSizeX(0));
    282     EXPECT_EQ(5, TestTiling(5,  5,  5, true).tileSizeX(0));
    283 
    284     EXPECT_EQ(5, TestTiling(5,  6,  6, false).tileSizeX(0));
    285     EXPECT_EQ(1, TestTiling(5,  6,  6, false).tileSizeX(1));
    286     EXPECT_EQ(4, TestTiling(5,  6,  6, true).tileSizeX(0));
    287     EXPECT_EQ(2, TestTiling(5,  6,  6, true).tileSizeX(1));
    288 
    289     EXPECT_EQ(5, TestTiling(5,  8,  8, false).tileSizeX(0));
    290     EXPECT_EQ(3, TestTiling(5,  8,  8, false).tileSizeX(1));
    291     EXPECT_EQ(4, TestTiling(5,  8,  8, true).tileSizeX(0));
    292     EXPECT_EQ(4, TestTiling(5,  8,  8, true).tileSizeX(1));
    293 
    294     EXPECT_EQ(5, TestTiling(5, 10, 10, false).tileSizeX(0));
    295     EXPECT_EQ(5, TestTiling(5, 10, 10, false).tileSizeX(1));
    296     EXPECT_EQ(4, TestTiling(5, 10, 10, true).tileSizeX(0));
    297     EXPECT_EQ(3, TestTiling(5, 10, 10, true).tileSizeX(1));
    298     EXPECT_EQ(3, TestTiling(5, 10, 10, true).tileSizeX(2));
    299 
    300     EXPECT_EQ(4, TestTiling(5, 11, 11, true).tileSizeX(2));
    301     EXPECT_EQ(3, TestTiling(5, 12, 12, true).tileSizeX(2));
     260    EXPECT_EQ(5, TilingData(5,  5,  5, false).tileSizeX(0));
     261    EXPECT_EQ(5, TilingData(5,  5,  5, true).tileSizeX(0));
     262
     263    EXPECT_EQ(5, TilingData(5,  6,  6, false).tileSizeX(0));
     264    EXPECT_EQ(1, TilingData(5,  6,  6, false).tileSizeX(1));
     265    EXPECT_EQ(4, TilingData(5,  6,  6, true).tileSizeX(0));
     266    EXPECT_EQ(2, TilingData(5,  6,  6, true).tileSizeX(1));
     267
     268    EXPECT_EQ(5, TilingData(5,  8,  8, false).tileSizeX(0));
     269    EXPECT_EQ(3, TilingData(5,  8,  8, false).tileSizeX(1));
     270    EXPECT_EQ(4, TilingData(5,  8,  8, true).tileSizeX(0));
     271    EXPECT_EQ(4, TilingData(5,  8,  8, true).tileSizeX(1));
     272
     273    EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeX(0));
     274    EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeX(1));
     275    EXPECT_EQ(4, TilingData(5, 10, 10, true).tileSizeX(0));
     276    EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeX(1));
     277    EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeX(2));
     278
     279    EXPECT_EQ(4, TilingData(5, 11, 11, true).tileSizeX(2));
     280    EXPECT_EQ(3, TilingData(5, 12, 12, true).tileSizeX(2));
    302281}
    303282TEST(TilingDataTest, tileSizeY)
    304283{
    305     EXPECT_EQ(5, TestTiling(5,  5,  5, false).tileSizeY(0));
    306     EXPECT_EQ(5, TestTiling(5,  5,  5, true).tileSizeY(0));
    307 
    308     EXPECT_EQ(5, TestTiling(5,  6,  6, false).tileSizeY(0));
    309     EXPECT_EQ(1, TestTiling(5,  6,  6, false).tileSizeY(1));
    310     EXPECT_EQ(4, TestTiling(5,  6,  6, true).tileSizeY(0));
    311     EXPECT_EQ(2, TestTiling(5,  6,  6, true).tileSizeY(1));
    312 
    313     EXPECT_EQ(5, TestTiling(5,  8,  8, false).tileSizeY(0));
    314     EXPECT_EQ(3, TestTiling(5,  8,  8, false).tileSizeY(1));
    315     EXPECT_EQ(4, TestTiling(5,  8,  8, true).tileSizeY(0));
    316     EXPECT_EQ(4, TestTiling(5,  8,  8, true).tileSizeY(1));
    317 
    318     EXPECT_EQ(5, TestTiling(5, 10, 10, false).tileSizeY(0));
    319     EXPECT_EQ(5, TestTiling(5, 10, 10, false).tileSizeY(1));
    320     EXPECT_EQ(4, TestTiling(5, 10, 10, true).tileSizeY(0));
    321     EXPECT_EQ(3, TestTiling(5, 10, 10, true).tileSizeY(1));
    322     EXPECT_EQ(3, TestTiling(5, 10, 10, true).tileSizeY(2));
    323 
    324     EXPECT_EQ(4, TestTiling(5, 11, 11, true).tileSizeY(2));
    325     EXPECT_EQ(3, TestTiling(5, 12, 12, true).tileSizeY(2));
     284    EXPECT_EQ(5, TilingData(5,  5,  5, false).tileSizeY(0));
     285    EXPECT_EQ(5, TilingData(5,  5,  5, true).tileSizeY(0));
     286
     287    EXPECT_EQ(5, TilingData(5,  6,  6, false).tileSizeY(0));
     288    EXPECT_EQ(1, TilingData(5,  6,  6, false).tileSizeY(1));
     289    EXPECT_EQ(4, TilingData(5,  6,  6, true).tileSizeY(0));
     290    EXPECT_EQ(2, TilingData(5,  6,  6, true).tileSizeY(1));
     291
     292    EXPECT_EQ(5, TilingData(5,  8,  8, false).tileSizeY(0));
     293    EXPECT_EQ(3, TilingData(5,  8,  8, false).tileSizeY(1));
     294    EXPECT_EQ(4, TilingData(5,  8,  8, true).tileSizeY(0));
     295    EXPECT_EQ(4, TilingData(5,  8,  8, true).tileSizeY(1));
     296
     297    EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeY(0));
     298    EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeY(1));
     299    EXPECT_EQ(4, TilingData(5, 10, 10, true).tileSizeY(0));
     300    EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeY(1));
     301    EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeY(2));
     302
     303    EXPECT_EQ(4, TilingData(5, 11, 11, true).tileSizeY(2));
     304    EXPECT_EQ(3, TilingData(5, 12, 12, true).tileSizeY(2));
    326305}
    327306
     
    329308{
    330309    // Single tile cases:
    331     EXPECT_EQ(1, TestTiling(3, 1,   1, false).tileSizeX(0));
    332     EXPECT_EQ(0, TestTiling(3, 1,   1, false).tilePositionX(0));
    333     EXPECT_EQ(1, TestTiling(3, 1, 100, false).tileSizeX(0));
    334     EXPECT_EQ(0, TestTiling(3, 1, 100, false).tilePositionX(0));
    335     EXPECT_EQ(3, TestTiling(3, 3,   1, false).tileSizeX(0));
    336     EXPECT_EQ(0, TestTiling(3, 3,   1, false).tilePositionX(0));
    337     EXPECT_EQ(3, TestTiling(3, 3, 100, false).tileSizeX(0));
    338     EXPECT_EQ(0, TestTiling(3, 3, 100, false).tilePositionX(0));
    339     EXPECT_EQ(1, TestTiling(3, 1,   1, true).tileSizeX(0));
    340     EXPECT_EQ(0, TestTiling(3, 1,   1, true).tilePositionX(0));
    341     EXPECT_EQ(1, TestTiling(3, 1, 100, true).tileSizeX(0));
    342     EXPECT_EQ(0, TestTiling(3, 1, 100, true).tilePositionX(0));
    343     EXPECT_EQ(3, TestTiling(3, 3,   1, true).tileSizeX(0));
    344     EXPECT_EQ(0, TestTiling(3, 3,   1, true).tilePositionX(0));
    345     EXPECT_EQ(3, TestTiling(3, 3, 100, true).tileSizeX(0));
    346     EXPECT_EQ(0, TestTiling(3, 3, 100, true).tilePositionX(0));
     310    EXPECT_EQ(1, TilingData(3, 1,   1, false).tileSizeX(0));
     311    EXPECT_EQ(0, TilingData(3, 1,   1, false).tilePositionX(0));
     312    EXPECT_EQ(1, TilingData(3, 1, 100, false).tileSizeX(0));
     313    EXPECT_EQ(0, TilingData(3, 1, 100, false).tilePositionX(0));
     314    EXPECT_EQ(3, TilingData(3, 3,   1, false).tileSizeX(0));
     315    EXPECT_EQ(0, TilingData(3, 3,   1, false).tilePositionX(0));
     316    EXPECT_EQ(3, TilingData(3, 3, 100, false).tileSizeX(0));
     317    EXPECT_EQ(0, TilingData(3, 3, 100, false).tilePositionX(0));
     318    EXPECT_EQ(1, TilingData(3, 1,   1, true).tileSizeX(0));
     319    EXPECT_EQ(0, TilingData(3, 1,   1, true).tilePositionX(0));
     320    EXPECT_EQ(1, TilingData(3, 1, 100, true).tileSizeX(0));
     321    EXPECT_EQ(0, TilingData(3, 1, 100, true).tilePositionX(0));
     322    EXPECT_EQ(3, TilingData(3, 3,   1, true).tileSizeX(0));
     323    EXPECT_EQ(0, TilingData(3, 3,   1, true).tilePositionX(0));
     324    EXPECT_EQ(3, TilingData(3, 3, 100, true).tileSizeX(0));
     325    EXPECT_EQ(0, TilingData(3, 3, 100, true).tilePositionX(0));
    347326
    348327    // Multiple tiles:
    349328    // no border
    350329    // positions 0, 3
    351     EXPECT_EQ(2, TestTiling(3, 6,   1, false).numTiles());
    352     EXPECT_EQ(3, TestTiling(3, 6,   1, false).tileSizeX(0));
    353     EXPECT_EQ(3, TestTiling(3, 6,   1, false).tileSizeX(1));
    354     EXPECT_EQ(0, TestTiling(3, 6,   1, false).tilePositionX(0));
    355     EXPECT_EQ(3, TestTiling(3, 6,   1, false).tilePositionX(1));
    356     EXPECT_EQ(3, TestTiling(3, 6, 100, false).tileSizeX(0));
    357     EXPECT_EQ(3, TestTiling(3, 6, 100, false).tileSizeX(1));
    358     EXPECT_EQ(0, TestTiling(3, 6, 100, false).tilePositionX(0));
    359     EXPECT_EQ(3, TestTiling(3, 6, 100, false).tilePositionX(1));
     330    EXPECT_EQ(2, TilingData(3, 6,   1, false).numTiles());
     331    EXPECT_EQ(3, TilingData(3, 6,   1, false).tileSizeX(0));
     332    EXPECT_EQ(3, TilingData(3, 6,   1, false).tileSizeX(1));
     333    EXPECT_EQ(0, TilingData(3, 6,   1, false).tilePositionX(0));
     334    EXPECT_EQ(3, TilingData(3, 6,   1, false).tilePositionX(1));
     335    EXPECT_EQ(3, TilingData(3, 6, 100, false).tileSizeX(0));
     336    EXPECT_EQ(3, TilingData(3, 6, 100, false).tileSizeX(1));
     337    EXPECT_EQ(0, TilingData(3, 6, 100, false).tilePositionX(0));
     338    EXPECT_EQ(3, TilingData(3, 6, 100, false).tilePositionX(1));
    360339
    361340    // Multiple tiles:
    362341    // with border
    363342    // positions 0, 2, 3, 4
    364     EXPECT_EQ(4, TestTiling(3, 6,   1, true).numTiles());
    365     EXPECT_EQ(2, TestTiling(3, 6,   1, true).tileSizeX(0));
    366     EXPECT_EQ(1, TestTiling(3, 6,   1, true).tileSizeX(1));
    367     EXPECT_EQ(1, TestTiling(3, 6,   1, true).tileSizeX(2));
    368     EXPECT_EQ(2, TestTiling(3, 6,   1, true).tileSizeX(3));
    369     EXPECT_EQ(0, TestTiling(3, 6,   1, true).tilePositionX(0));
    370     EXPECT_EQ(2, TestTiling(3, 6,   1, true).tilePositionX(1));
    371     EXPECT_EQ(3, TestTiling(3, 6,   1, true).tilePositionX(2));
    372     EXPECT_EQ(4, TestTiling(3, 6,   1, true).tilePositionX(3));
    373     EXPECT_EQ(2, TestTiling(3, 6, 100, true).tileSizeX(0));
    374     EXPECT_EQ(1, TestTiling(3, 6, 100, true).tileSizeX(1));
    375     EXPECT_EQ(1, TestTiling(3, 6, 100, true).tileSizeX(2));
    376     EXPECT_EQ(2, TestTiling(3, 6, 100, true).tileSizeX(3));
    377     EXPECT_EQ(0, TestTiling(3, 6, 100, true).tilePositionX(0));
    378     EXPECT_EQ(2, TestTiling(3, 6, 100, true).tilePositionX(1));
    379     EXPECT_EQ(3, TestTiling(3, 6, 100, true).tilePositionX(2));
    380     EXPECT_EQ(4, TestTiling(3, 6, 100, true).tilePositionX(3));
     343    EXPECT_EQ(4, TilingData(3, 6,   1, true).numTiles());
     344    EXPECT_EQ(2, TilingData(3, 6,   1, true).tileSizeX(0));
     345    EXPECT_EQ(1, TilingData(3, 6,   1, true).tileSizeX(1));
     346    EXPECT_EQ(1, TilingData(3, 6,   1, true).tileSizeX(2));
     347    EXPECT_EQ(2, TilingData(3, 6,   1, true).tileSizeX(3));
     348    EXPECT_EQ(0, TilingData(3, 6,   1, true).tilePositionX(0));
     349    EXPECT_EQ(2, TilingData(3, 6,   1, true).tilePositionX(1));
     350    EXPECT_EQ(3, TilingData(3, 6,   1, true).tilePositionX(2));
     351    EXPECT_EQ(4, TilingData(3, 6,   1, true).tilePositionX(3));
     352    EXPECT_EQ(2, TilingData(3, 6, 100, true).tileSizeX(0));
     353    EXPECT_EQ(1, TilingData(3, 6, 100, true).tileSizeX(1));
     354    EXPECT_EQ(1, TilingData(3, 6, 100, true).tileSizeX(2));
     355    EXPECT_EQ(2, TilingData(3, 6, 100, true).tileSizeX(3));
     356    EXPECT_EQ(0, TilingData(3, 6, 100, true).tilePositionX(0));
     357    EXPECT_EQ(2, TilingData(3, 6, 100, true).tilePositionX(1));
     358    EXPECT_EQ(3, TilingData(3, 6, 100, true).tilePositionX(2));
     359    EXPECT_EQ(4, TilingData(3, 6, 100, true).tilePositionX(3));
    381360}
    382361
     
    384363{
    385364    // Single tile cases:
    386     EXPECT_EQ(1, TestTiling(3,   1, 1, false).tileSizeY(0));
    387     EXPECT_EQ(0, TestTiling(3,   1, 1, false).tilePositionY(0));
    388     EXPECT_EQ(1, TestTiling(3, 100, 1, false).tileSizeY(0));
    389     EXPECT_EQ(0, TestTiling(3, 100, 1, false).tilePositionY(0));
    390     EXPECT_EQ(3, TestTiling(3,   1, 3, false).tileSizeY(0));
    391     EXPECT_EQ(0, TestTiling(3,   1, 3, false).tilePositionY(0));
    392     EXPECT_EQ(3, TestTiling(3, 100, 3, false).tileSizeY(0));
    393     EXPECT_EQ(0, TestTiling(3, 100, 3, false).tilePositionY(0));
    394     EXPECT_EQ(1, TestTiling(3,   1, 1, true).tileSizeY(0));
    395     EXPECT_EQ(0, TestTiling(3,   1, 1, true).tilePositionY(0));
    396     EXPECT_EQ(1, TestTiling(3, 100, 1, true).tileSizeY(0));
    397     EXPECT_EQ(0, TestTiling(3, 100, 1, true).tilePositionY(0));
    398     EXPECT_EQ(3, TestTiling(3,   1, 3, true).tileSizeY(0));
    399     EXPECT_EQ(0, TestTiling(3,   1, 3, true).tilePositionY(0));
    400     EXPECT_EQ(3, TestTiling(3, 100, 3, true).tileSizeY(0));
    401     EXPECT_EQ(0, TestTiling(3, 100, 3, true).tilePositionY(0));
     365    EXPECT_EQ(1, TilingData(3,   1, 1, false).tileSizeY(0));
     366    EXPECT_EQ(0, TilingData(3,   1, 1, false).tilePositionY(0));
     367    EXPECT_EQ(1, TilingData(3, 100, 1, false).tileSizeY(0));
     368    EXPECT_EQ(0, TilingData(3, 100, 1, false).tilePositionY(0));
     369    EXPECT_EQ(3, TilingData(3,   1, 3, false).tileSizeY(0));
     370    EXPECT_EQ(0, TilingData(3,   1, 3, false).tilePositionY(0));
     371    EXPECT_EQ(3, TilingData(3, 100, 3, false).tileSizeY(0));
     372    EXPECT_EQ(0, TilingData(3, 100, 3, false).tilePositionY(0));
     373    EXPECT_EQ(1, TilingData(3,   1, 1, true).tileSizeY(0));
     374    EXPECT_EQ(0, TilingData(3,   1, 1, true).tilePositionY(0));
     375    EXPECT_EQ(1, TilingData(3, 100, 1, true).tileSizeY(0));
     376    EXPECT_EQ(0, TilingData(3, 100, 1, true).tilePositionY(0));
     377    EXPECT_EQ(3, TilingData(3,   1, 3, true).tileSizeY(0));
     378    EXPECT_EQ(0, TilingData(3,   1, 3, true).tilePositionY(0));
     379    EXPECT_EQ(3, TilingData(3, 100, 3, true).tileSizeY(0));
     380    EXPECT_EQ(0, TilingData(3, 100, 3, true).tilePositionY(0));
    402381
    403382    // Multiple tiles:
    404383    // no border
    405384    // positions 0, 3
    406     EXPECT_EQ(2, TestTiling(3,   1, 6, false).numTiles());
    407     EXPECT_EQ(3, TestTiling(3,   1, 6, false).tileSizeY(0));
    408     EXPECT_EQ(3, TestTiling(3,   1, 6, false).tileSizeY(1));
    409     EXPECT_EQ(0, TestTiling(3,   1, 6, false).tilePositionY(0));
    410     EXPECT_EQ(3, TestTiling(3,   1, 6, false).tilePositionY(1));
    411     EXPECT_EQ(3, TestTiling(3, 100, 6, false).tileSizeY(0));
    412     EXPECT_EQ(3, TestTiling(3, 100, 6, false).tileSizeY(1));
    413     EXPECT_EQ(0, TestTiling(3, 100, 6, false).tilePositionY(0));
    414     EXPECT_EQ(3, TestTiling(3, 100, 6, false).tilePositionY(1));
     385    EXPECT_EQ(2, TilingData(3,   1, 6, false).numTiles());
     386    EXPECT_EQ(3, TilingData(3,   1, 6, false).tileSizeY(0));
     387    EXPECT_EQ(3, TilingData(3,   1, 6, false).tileSizeY(1));
     388    EXPECT_EQ(0, TilingData(3,   1, 6, false).tilePositionY(0));
     389    EXPECT_EQ(3, TilingData(3,   1, 6, false).tilePositionY(1));
     390    EXPECT_EQ(3, TilingData(3, 100, 6, false).tileSizeY(0));
     391    EXPECT_EQ(3, TilingData(3, 100, 6, false).tileSizeY(1));
     392    EXPECT_EQ(0, TilingData(3, 100, 6, false).tilePositionY(0));
     393    EXPECT_EQ(3, TilingData(3, 100, 6, false).tilePositionY(1));
    415394
    416395    // Multiple tiles:
    417396    // with border
    418397    // positions 0, 2, 3, 4
    419     EXPECT_EQ(4, TestTiling(3,   1, 6, true).numTiles());
    420     EXPECT_EQ(2, TestTiling(3,   1, 6, true).tileSizeY(0));
    421     EXPECT_EQ(1, TestTiling(3,   1, 6, true).tileSizeY(1));
    422     EXPECT_EQ(1, TestTiling(3,   1, 6, true).tileSizeY(2));
    423     EXPECT_EQ(2, TestTiling(3,   1, 6, true).tileSizeY(3));
    424     EXPECT_EQ(0, TestTiling(3,   1, 6, true).tilePositionY(0));
    425     EXPECT_EQ(2, TestTiling(3,   1, 6, true).tilePositionY(1));
    426     EXPECT_EQ(3, TestTiling(3,   1, 6, true).tilePositionY(2));
    427     EXPECT_EQ(4, TestTiling(3,   1, 6, true).tilePositionY(3));
    428     EXPECT_EQ(2, TestTiling(3, 100, 6, true).tileSizeY(0));
    429     EXPECT_EQ(1, TestTiling(3, 100, 6, true).tileSizeY(1));
    430     EXPECT_EQ(1, TestTiling(3, 100, 6, true).tileSizeY(2));
    431     EXPECT_EQ(2, TestTiling(3, 100, 6, true).tileSizeY(3));
    432     EXPECT_EQ(0, TestTiling(3, 100, 6, true).tilePositionY(0));
    433     EXPECT_EQ(2, TestTiling(3, 100, 6, true).tilePositionY(1));
    434     EXPECT_EQ(3, TestTiling(3, 100, 6, true).tilePositionY(2));
    435     EXPECT_EQ(4, TestTiling(3, 100, 6, true).tilePositionY(3));
     398    EXPECT_EQ(4, TilingData(3,   1, 6, true).numTiles());
     399    EXPECT_EQ(2, TilingData(3,   1, 6, true).tileSizeY(0));
     400    EXPECT_EQ(1, TilingData(3,   1, 6, true).tileSizeY(1));
     401    EXPECT_EQ(1, TilingData(3,   1, 6, true).tileSizeY(2));
     402    EXPECT_EQ(2, TilingData(3,   1, 6, true).tileSizeY(3));
     403    EXPECT_EQ(0, TilingData(3,   1, 6, true).tilePositionY(0));
     404    EXPECT_EQ(2, TilingData(3,   1, 6, true).tilePositionY(1));
     405    EXPECT_EQ(3, TilingData(3,   1, 6, true).tilePositionY(2));
     406    EXPECT_EQ(4, TilingData(3,   1, 6, true).tilePositionY(3));
     407    EXPECT_EQ(2, TilingData(3, 100, 6, true).tileSizeY(0));
     408    EXPECT_EQ(1, TilingData(3, 100, 6, true).tileSizeY(1));
     409    EXPECT_EQ(1, TilingData(3, 100, 6, true).tileSizeY(2));
     410    EXPECT_EQ(2, TilingData(3, 100, 6, true).tileSizeY(3));
     411    EXPECT_EQ(0, TilingData(3, 100, 6, true).tilePositionY(0));
     412    EXPECT_EQ(2, TilingData(3, 100, 6, true).tilePositionY(1));
     413    EXPECT_EQ(3, TilingData(3, 100, 6, true).tilePositionY(2));
     414    EXPECT_EQ(4, TilingData(3, 100, 6, true).tilePositionY(3));
    436415}
    437416
    438417TEST(TilingDataTest, setTotalSize)
    439418{
    440     TestTiling data(5, 5, 5, false);
     419    TilingData data(5, 5, 5, false);
    441420    EXPECT_EQ(5, data.totalSizeX());
    442421    EXPECT_EQ(5, data.totalSizeY());
     
    468447TEST(TilingDataTest, setMaxTextureSizeNoBorders)
    469448{
    470     TestTiling data(8, 16, 32, false);
     449    TilingData data(8, 16, 32, false);
    471450    EXPECT_EQ(2, data.numTilesX());
    472451    EXPECT_EQ(4, data.numTilesY());
     
    490469TEST(TilingDataTest, setMaxTextureSizeBorders)
    491470{
    492     TestTiling data(8, 16, 32, true);
     471    TilingData data(8, 16, 32, true);
    493472    EXPECT_EQ(3, data.numTilesX());
    494473    EXPECT_EQ(5, data.numTilesY());
     
    513492{
    514493    {
    515         TestTiling source(8, 16, 32, true);
    516         TestTiling dest = source;
     494        TilingData source(8, 16, 32, true);
     495        TilingData dest = source;
    517496        EXPECT_EQ(source.borderTexels(), dest.borderTexels());
    518497        EXPECT_EQ(source.maxTextureSize(), dest.maxTextureSize());
     
    523502    }
    524503    {
    525         TestTiling source(3, 6, 100, false);
    526         TestTiling dest(source);
     504        TilingData source(3, 6, 100, false);
     505        TilingData dest(source);
    527506        EXPECT_EQ(source.borderTexels(), dest.borderTexels());
    528507        EXPECT_EQ(source.maxTextureSize(), dest.maxTextureSize());
     
    536515TEST(TilingDataTest, setBorderTexels)
    537516{
    538     TestTiling data(8, 16, 32, false);
     517    TilingData data(8, 16, 32, false);
    539518    EXPECT_EQ(2, data.numTilesX());
    540519    EXPECT_EQ(4, data.numTilesY());
Note: See TracChangeset for help on using the changeset viewer.