☠☠ backed out by 7bbff0b46460 ☠ ☠ | |
author | Bas Schouten <bschouten@mozilla.com> |
Sun, 11 Mar 2012 22:33:23 +0000 (2012-03-11) | |
changeset 88755 | f667f6c22bed66bbf1f94c731a2247528821a981 |
parent 88754 | 4b46f6eff8f4d66b91473e3884d2212b6124f2b4 |
child 88756 | 960c7ece9d14f17a538c0c94e8d776b2504c328b |
push id | 22220 |
push user | dholbert@mozilla.com |
push date | Mon, 12 Mar 2012 02:41:18 +0000 (2012-03-12) |
treeherder | mozilla-central@5ec9524de1af [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | roc |
bugs | 732988 |
milestone | 13.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/generic/nsObjectFrame.cpp +++ b/layout/generic/nsObjectFrame.cpp @@ -1544,17 +1544,23 @@ nsObjectFrame::BuildLayer(nsDisplayListB // Create image nsRefPtr<ImageContainer> container = mInstanceOwner->GetImageContainer(); if (!container) { // This can occur if our instance is gone. return nsnull; } - gfxIntSize size = container->GetCurrentSize(); + gfxIntSize size; + + if (mInstanceOwner->UseAsyncRendering()) { + size = container->GetCurrentSize(); + } else { + size = gfxIntSize(window->width, window->height); + } nsRect area = GetContentRectRelativeToSelf() + aItem->ToReferenceFrame(); gfxRect r = nsLayoutUtils::RectToGfxRect(area, PresContext()->AppUnitsPerDevPixel()); // to provide crisper and faster drawing. r.Round(); nsRefPtr<Layer> layer = (aBuilder->LayerBuilder()->GetLeafLayerFor(aBuilder, aManager, aItem)); @@ -1567,16 +1573,19 @@ nsObjectFrame::BuildLayer(nsDisplayListB return nsnull; } NS_ASSERTION(layer->GetType() == Layer::TYPE_IMAGE, "Bad layer type"); ImageLayer* imglayer = static_cast<ImageLayer*>(layer.get()); UpdateImageLayer(r); + if (!mInstanceOwner->UseAsyncRendering()) { + imglayer->SetScaleToSize(size, ImageLayer::SCALE_STRETCH); + } imglayer->SetContainer(container); gfxPattern::GraphicsFilter filter = nsLayoutUtils::GetGraphicsFilterForFrame(this); #ifdef MOZ_GFX_OPTIMIZE_MOBILE if (!aManager->IsCompositingCheap()) { // Pixman just horrible with bilinear filter scaling filter = gfxPattern::FILTER_NEAREST; }