Bug 1391541 - Correct the transform for layers-free fallback. r=kats draft
authorEthan Lin <ethlin@mozilla.com>
Tue, 22 Aug 2017 13:55:49 +0800
changeset 651111 2a672358230bfd70c0c871e5625aef3ae41e0b0f
parent 650228 128a79130ecd6f277190d031a623f991c73c5272
child 727583 716c7a48c3087aef104d91635363b147b6f915b4
push id75590
push userbmo:ethlin@mozilla.com
push dateWed, 23 Aug 2017 07:12:18 +0000
reviewerskats
bugs1391541
milestone57.0a1
Bug 1391541 - Correct the transform for layers-free fallback. r=kats MozReview-Commit-ID: v9hVeUmY3E
gfx/layers/wr/WebRenderLayerManager.cpp
--- a/gfx/layers/wr/WebRenderLayerManager.cpp
+++ b/gfx/layers/wr/WebRenderLayerManager.cpp
@@ -435,22 +435,22 @@ PaintItemByDrawTarget(nsDisplayItem* aIt
                       DrawTarget* aDT,
                       const LayerRect& aImageRect,
                       const LayerPoint& aOffset,
                       nsDisplayListBuilder* aDisplayListBuilder)
 {
   MOZ_ASSERT(aDT);
 
   aDT->ClearRect(aImageRect.ToUnknownRect());
-  RefPtr<gfxContext> context = gfxContext::CreateOrNull(aDT, aOffset.ToUnknownPoint());
+  RefPtr<gfxContext> context = gfxContext::CreateOrNull(aDT);
   MOZ_ASSERT(context);
 
+  context->SetMatrix(gfxMatrix::Translation(-aOffset.x, -aOffset.y));
   switch (aItem->GetType()) {
   case DisplayItemType::TYPE_MASK:
-    context->SetMatrix(gfxMatrix::Translation(-aOffset.x, -aOffset.y));
     static_cast<nsDisplayMask*>(aItem)->PaintMask(aDisplayListBuilder, context);
     break;
   case DisplayItemType::TYPE_FILTER:
     {
       RefPtr<BasicLayerManager> tempManager = new BasicLayerManager(BasicLayerManager::BLM_INACTIVE);
       FrameLayerBuilder* layerBuilder = new FrameLayerBuilder();
       layerBuilder->Init(aDisplayListBuilder, tempManager);