mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1180326 - Part 2: Add support for variable tile sizes. r=jrmuizel
This commit is contained in:
parent
52db4db003
commit
cd3cc3e99f
@ -150,7 +150,7 @@ public:
|
|||||||
gfx::IntPoint GetTileOffset(TileIntPoint aPosition) const {
|
gfx::IntPoint GetTileOffset(TileIntPoint aPosition) const {
|
||||||
gfx::IntSize scaledTileSize = GetScaledTileSize();
|
gfx::IntSize scaledTileSize = GetScaledTileSize();
|
||||||
return gfx::IntPoint(aPosition.x * scaledTileSize.width,
|
return gfx::IntPoint(aPosition.x * scaledTileSize.width,
|
||||||
aPosition.y * scaledTileSize.height);
|
aPosition.y * scaledTileSize.height) + mTileOrigin;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TilesPlacement& GetPlacement() const { return mTiles; }
|
const TilesPlacement& GetPlacement() const { return mTiles; }
|
||||||
@ -194,6 +194,7 @@ protected:
|
|||||||
TilesPlacement mTiles;
|
TilesPlacement mTiles;
|
||||||
float mResolution;
|
float mResolution;
|
||||||
gfx::IntSize mTileSize;
|
gfx::IntSize mTileSize;
|
||||||
|
gfx::IntPoint mTileOrigin;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Derived, typename Tile> void
|
template<typename Derived, typename Tile> void
|
||||||
|
@ -868,6 +868,7 @@ ClientMultiTiledLayerBuffer::GetSurfaceDescriptorTiles()
|
|||||||
}
|
}
|
||||||
return SurfaceDescriptorTiles(mValidRegion,
|
return SurfaceDescriptorTiles(mValidRegion,
|
||||||
tiles,
|
tiles,
|
||||||
|
mTileOrigin, mTileSize,
|
||||||
mTiles.mFirst.x, mTiles.mFirst.y,
|
mTiles.mFirst.x, mTiles.mFirst.y,
|
||||||
mTiles.mSize.width, mTiles.mSize.height,
|
mTiles.mSize.width, mTiles.mSize.height,
|
||||||
mResolution, mFrameResolution.xScale,
|
mResolution, mFrameResolution.xScale,
|
||||||
|
@ -242,7 +242,8 @@ TiledLayerBufferComposite::UseTiles(const SurfaceDescriptorTiles& aTiles,
|
|||||||
Compositor* aCompositor,
|
Compositor* aCompositor,
|
||||||
ISurfaceAllocator* aAllocator)
|
ISurfaceAllocator* aAllocator)
|
||||||
{
|
{
|
||||||
if (mResolution != aTiles.resolution()) {
|
if (mResolution != aTiles.resolution() ||
|
||||||
|
aTiles.tileSize() != mTileSize) {
|
||||||
Clear();
|
Clear();
|
||||||
}
|
}
|
||||||
MOZ_ASSERT(aAllocator);
|
MOZ_ASSERT(aAllocator);
|
||||||
@ -352,6 +353,8 @@ TiledLayerBufferComposite::UseTiles(const SurfaceDescriptorTiles& aTiles,
|
|||||||
}
|
}
|
||||||
|
|
||||||
mTiles = newTiles;
|
mTiles = newTiles;
|
||||||
|
mTileSize = aTiles.tileSize();
|
||||||
|
mTileOrigin = aTiles.tileOrigin();
|
||||||
mValidRegion = aTiles.validRegion();
|
mValidRegion = aTiles.validRegion();
|
||||||
mResolution = aTiles.resolution();
|
mResolution = aTiles.resolution();
|
||||||
mFrameResolution = CSSToParentLayerScale2D(aTiles.frameXResolution(),
|
mFrameResolution = CSSToParentLayerScale2D(aTiles.frameXResolution(),
|
||||||
|
@ -333,6 +333,8 @@ union TileDescriptor {
|
|||||||
struct SurfaceDescriptorTiles {
|
struct SurfaceDescriptorTiles {
|
||||||
nsIntRegion validRegion;
|
nsIntRegion validRegion;
|
||||||
TileDescriptor[] tiles;
|
TileDescriptor[] tiles;
|
||||||
|
IntPoint tileOrigin;
|
||||||
|
IntSize tileSize;
|
||||||
int firstTileX;
|
int firstTileX;
|
||||||
int firstTileY;
|
int firstTileY;
|
||||||
int retainedWidth;
|
int retainedWidth;
|
||||||
|
Loading…
Reference in New Issue
Block a user