author | Jamie Nicol <jnicol@mozilla.com> |
Mon, 18 Sep 2017 12:04:42 +0100 | |
changeset 385154 | 359f2f4a8a6c968f4762b8f2bba97da186c208c2 |
parent 385153 | 943d78f2c4c3198a1315cde858f61178aa6dd6f5 |
child 385155 | e92d092fdacc83b14dd65a4ec3c9cada16406ce6 |
push id | 32647 |
push user | archaeopteryx@coole-files.de |
push date | Mon, 09 Oct 2017 21:55:00 +0000 |
treeherder | mozilla-central@2ed5e7fbf39e [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mattwoodrow |
bugs | 1395138 |
milestone | 58.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/gfx/layers/composite/ContainerLayerComposite.cpp +++ b/gfx/layers/composite/ContainerLayerComposite.cpp @@ -161,22 +161,22 @@ static gfx::IntRect ContainerVisibleRect gfx::IntRect surfaceRect = aContainer->GetLocalVisibleRegion().ToUnknownRegion().GetBounds(); return surfaceRect; } /* all of the per-layer prepared data we need to maintain */ struct PreparedLayer { - PreparedLayer(LayerComposite *aLayer, + PreparedLayer(Layer *aLayer, RenderTargetIntRect aClipRect, Maybe<gfx::Polygon>&& aGeometry) : mLayer(aLayer), mClipRect(aClipRect), mGeometry(Move(aGeometry)) {} - LayerComposite* mLayer; + RefPtr<Layer> mLayer; RenderTargetIntRect mClipRect; Maybe<Polygon> mGeometry; }; /* all of the prepared data that we need in RenderLayer() */ struct PreparedData { RefPtr<CompositingRenderTarget> mTmpTarget; @@ -230,17 +230,18 @@ ContainerPrepare(ContainerT* aContainer, CULLING_LOG("Sublayer %p has an empty world clip rect\n", layerToRender->GetLayer()); continue; } } CULLING_LOG("Preparing sublayer %p\n", layerToRender->GetLayer()); layerToRender->Prepare(clipRect); - aContainer->mPrepared->mLayers.AppendElement(PreparedLayer(layerToRender, clipRect, + aContainer->mPrepared->mLayers.AppendElement(PreparedLayer(layerToRender->GetLayer(), + clipRect, Move(layer.geometry))); } CULLING_LOG("Preparing container layer %p\n", aContainer->GetLayer()); /** * Setup our temporary surface for rendering the contents of this container. */ @@ -408,17 +409,17 @@ RenderLayers(ContainerT* aContainer, Lay const Maybe<gfx::Polygon>& aGeometry) { Compositor* compositor = aManager->GetCompositor(); for (size_t i = 0u; i < aContainer->mPrepared->mLayers.Length(); i++) { PreparedLayer& preparedData = aContainer->mPrepared->mLayers[i]; const gfx::IntRect clipRect = preparedData.mClipRect.ToUnknownRect(); - LayerComposite* layerToRender = preparedData.mLayer; + LayerComposite* layerToRender = static_cast<LayerComposite*>(preparedData.mLayer->ImplData()); const Maybe<gfx::Polygon>& childGeometry = preparedData.mGeometry; Layer* layer = layerToRender->GetLayer(); if (layerToRender->HasStaleCompositor()) { continue; }