From 61dd0b4f9cc5bd78a348ce237852fba5a5aba469 Mon Sep 17 00:00:00 2001 From: sotaro Date: Fri, 10 Mar 2017 14:14:43 +0900 Subject: [PATCH] Bug 1345712 - Add ScaleMode handling to WebRenderImageLayer r=jrmuizel --- gfx/layers/wr/WebRenderImageLayer.cpp | 5 +++++ layout/reftests/ogg-video/reftest.list | 2 +- layout/reftests/webm-video/reftest.list | 18 +++++++++--------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/gfx/layers/wr/WebRenderImageLayer.cpp b/gfx/layers/wr/WebRenderImageLayer.cpp index 4e43d350e80d..a7c2a5c76fba 100644 --- a/gfx/layers/wr/WebRenderImageLayer.cpp +++ b/gfx/layers/wr/WebRenderImageLayer.cpp @@ -132,6 +132,11 @@ WebRenderImageLayer::RenderLayer(wr::DisplayListBuilder& aBuilder) gfx::Rect overflow(0, 0, relBounds.width, relBounds.height); gfx::Rect rect = RelativeToVisible(Rect(0, 0, size.width, size.height)); + if (mScaleMode != ScaleMode::SCALE_NONE) { + NS_ASSERTION(mScaleMode == ScaleMode::STRETCH, + "No other scalemodes than stretch and none supported yet."); + rect = gfx::Rect(0, 0, mScaleToSize.width, mScaleToSize.height); + } gfx::Rect clipRect = GetWrClipRect(rect); Maybe mask = BuildWrMaskLayer(); diff --git a/layout/reftests/ogg-video/reftest.list b/layout/reftests/ogg-video/reftest.list index 3e1e11fac2e9..9c28ff3eb5b9 100644 --- a/layout/reftests/ogg-video/reftest.list +++ b/layout/reftests/ogg-video/reftest.list @@ -19,7 +19,7 @@ random skip-if(Android) HTTP(..) == object-aspect-ratio-1b.xhtml aspect-ratio-1- skip-if(Android) HTTP(..) == offset-1.xhtml offset-1-ref.html random skip-if(Android) HTTP(..) == object-aspect-ratio-2a.xhtml aspect-ratio-2-ref.html random skip-if(Android) HTTP(..) == object-aspect-ratio-2b.xhtml aspect-ratio-2-ref.html -skip-if(Android) fuzzy-if(winWidget,1,56000) fuzzy-if(cocoaWidget,1,56000) fails-if(webrender&&!browserIsRemote) HTTP(..) == zoomed-1.xhtml zoomed-1-ref.html # bug 778995 for fuzzy +skip-if(Android) fuzzy-if(winWidget,1,56000) fuzzy-if(cocoaWidget,1,56000) HTTP(..) == zoomed-1.xhtml zoomed-1-ref.html # bug 778995 for fuzzy skip-if(Android) == poster-1.html poster-ref-blue250x200.html skip-if(Android) == poster-2.html poster-ref-black140x100.html skip-if(Android) == poster-3.html poster-ref-black140x100.html diff --git a/layout/reftests/webm-video/reftest.list b/layout/reftests/webm-video/reftest.list index 3555dce6ff2a..4cbc1de5e9ad 100644 --- a/layout/reftests/webm-video/reftest.list +++ b/layout/reftests/webm-video/reftest.list @@ -18,7 +18,7 @@ random skip-if(Android) HTTP(..) == object-aspect-ratio-1b.xhtml aspect-ratio-1- skip-if(Android) HTTP(..) == offset-1.xhtml offset-1-ref.html random skip-if(Android) HTTP(..) == object-aspect-ratio-2a.xhtml aspect-ratio-2-ref.html random skip-if(Android) HTTP(..) == object-aspect-ratio-2b.xhtml aspect-ratio-2-ref.html -skip-if(Android) fuzzy-if(winWidget,1,56000) fuzzy-if(cocoaWidget,1,56000) fails-if(webrender&&!browserIsRemote) HTTP(..) == zoomed-1.xhtml zoomed-1-ref.html # bug 778995 for fuzzy +skip-if(Android) fuzzy-if(winWidget,1,56000) fuzzy-if(cocoaWidget,1,56000) HTTP(..) == zoomed-1.xhtml zoomed-1-ref.html # bug 778995 for fuzzy skip-if(Android) == poster-1.html poster-ref-blue250x200.html skip-if(Android) == poster-2.html poster-ref-black140x100.html skip-if(Android) == poster-3.html poster-ref-black140x100.html @@ -41,15 +41,15 @@ random-if(winWidget) random-if(cocoaWidget) skip-if(Android) == bug686957.html b # wouldn't be fair of us to make a W3C testsuite implicitly depend on any # particular (non-spec-mandated) video codec. default-preferences test-pref(gfx.ycbcr.accurate-conversion,true) -fails-if(layersGPUAccelerated) skip-if(Android) == object-fit-contain-webm-001.html object-fit-contain-webm-001-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures -fails-if(layersGPUAccelerated) skip-if(Android) == object-fit-contain-webm-002.html object-fit-contain-webm-002-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures -fails-if(layersGPUAccelerated) skip-if(Android) == object-fit-cover-webm-001.html object-fit-cover-webm-001-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures -fails-if(layersGPUAccelerated) skip-if(Android) == object-fit-cover-webm-002.html object-fit-cover-webm-002-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures -fails-if(layersGPUAccelerated) skip-if(Android) == object-fit-fill-webm-001.html object-fit-fill-webm-001-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures -fails-if(layersGPUAccelerated) skip-if(Android) == object-fit-fill-webm-002.html object-fit-fill-webm-002-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures +fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-contain-webm-001.html object-fit-contain-webm-001-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures +fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-contain-webm-002.html object-fit-contain-webm-002-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures +fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-cover-webm-001.html object-fit-cover-webm-001-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures +fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-cover-webm-002.html object-fit-cover-webm-002-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures +fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-fill-webm-001.html object-fit-fill-webm-001-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures +fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-fill-webm-002.html object-fit-fill-webm-002-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-none-webm-001.html object-fit-none-webm-001-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-none-webm-002.html object-fit-none-webm-002-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures -fails-if(layersGPUAccelerated) skip-if(Android) == object-fit-scale-down-webm-001.html object-fit-scale-down-webm-001-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures -fails-if(layersGPUAccelerated) skip-if(Android) == object-fit-scale-down-webm-002.html object-fit-scale-down-webm-002-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures +fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-scale-down-webm-001.html object-fit-scale-down-webm-001-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures +fails-if(layersGPUAccelerated&&!webrender) fails-if(webrender&&browserIsRemote) skip-if(Android) == object-fit-scale-down-webm-002.html object-fit-scale-down-webm-002-ref.html # Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures fails-if(layersGPUAccelerated) skip-if(Android) fails == object-position-webm-001.html object-position-webm-001-ref.html # Bug 1098417 for across-the-board failure, Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures fails-if(layersGPUAccelerated) skip-if(Android) fails == object-position-webm-002.html object-position-webm-002-ref.html # Bug 1098417 for across-the-board failure, Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android failures