Bug 1209801 - Part 2: Do not allow big image textures to be used with TiledLayerBuffers. r=mattwoodrow

Big-image textures (where multiple textures are tiled together to act as
a single larger texture, e.g. TiledTextureImage) were in some cases
being used to back the TextureSources associated with each Tile in a
TiledLayerBuffer. CompositorOGL was unaware of this, so when compositing
would only render the first tile in each big image, stretching it to the
size of the entire big image.

It doesn't make much sense to allow tiling-within-tiling, so set the
DISALLOW_BIGIMAGE flag for textures created for use with TiledLayerBuffers.
This commit is contained in:
Jamie Nicol
2015-10-14 11:32:44 +05:30
parent 56f8422a2d
commit 43dfadc842
3 changed files with 3 additions and 3 deletions

View File

@@ -1241,7 +1241,7 @@ ClientMultiTiledLayerBuffer::ValidateTile(TileClient& aTile,
aTile.SetLayerManager(mManager);
aTile.SetTextureAllocator(mManager->GetTexturePool(
gfxPlatform::GetPlatform()->Optimal2DFormatForContent(content),
TextureFlags::IMMEDIATE_UPLOAD));
TextureFlags::DISALLOW_BIGIMAGE | TextureFlags::IMMEDIATE_UPLOAD));
}
aTile.SetCompositableClient(mCompositableClient);