Bug 1367734 - Update for push_yuv_image API change in WR cset a4b9e25. r?jerry
MozReview-Commit-ID: DCn790PVD03
--- a/gfx/layers/wr/WebRenderImageLayer.cpp
+++ b/gfx/layers/wr/WebRenderImageLayer.cpp
@@ -218,17 +218,17 @@ WebRenderImageLayer::RenderLayer(wr::Dis
#if defined(XP_WIN)
// Use libyuv to convert the buffer to rgba format.
MOZ_ASSERT(mVideoKeys.Length() == 1);
aBuilder.PushImage(sc.ToRelativeWrRect(rect), clip, filter, mVideoKeys[0]);
#elif defined(XP_MACOSX)
if (gfx::gfxVars::CanUseHardwareVideoDecoding()) {
// Use the hardware MacIOSurface with YCbCr interleaved format.
MOZ_ASSERT(mVideoKeys.Length() == 1);
- aBuilder.PushYCbCrInterleavedImage(sc.ToRelativeWrRect(rect), clip, mVideoKeys[0], WrYuvColorSpace::Rec601);
+ aBuilder.PushYCbCrInterleavedImage(sc.ToRelativeWrRect(rect), clip, mVideoKeys[0], WrYuvColorSpace::Rec601, filter);
} else {
// Use libyuv to convert the buffer to rgba format.
MOZ_ASSERT(mVideoKeys.Length() == 1);
aBuilder.PushImage(sc.ToRelativeWrRect(rect), clip, filter, mVideoKeys[0]);
}
#elif defined(MOZ_WIDGET_GTK)
// Use libyuv to convert the buffer to rgba format.
MOZ_ASSERT(mVideoKeys.Length() == 1);
--- a/gfx/webrender_bindings/WebRenderAPI.cpp
+++ b/gfx/webrender_bindings/WebRenderAPI.cpp
@@ -698,53 +698,59 @@ DisplayListBuilder::PushImage(const WrRe
}
void
DisplayListBuilder::PushYCbCrPlanarImage(const WrRect& aBounds,
const WrClipRegionToken aClip,
wr::ImageKey aImageChannel0,
wr::ImageKey aImageChannel1,
wr::ImageKey aImageChannel2,
- WrYuvColorSpace aColorSpace)
+ WrYuvColorSpace aColorSpace,
+ wr::ImageRendering aRendering)
{
wr_dp_push_yuv_planar_image(mWrState,
aBounds,
aClip,
aImageChannel0,
aImageChannel1,
aImageChannel2,
- aColorSpace);
+ aColorSpace,
+ aRendering);
}
void
DisplayListBuilder::PushNV12Image(const WrRect& aBounds,
const WrClipRegionToken aClip,
wr::ImageKey aImageChannel0,
wr::ImageKey aImageChannel1,
- WrYuvColorSpace aColorSpace)
+ WrYuvColorSpace aColorSpace,
+ wr::ImageRendering aRendering)
{
wr_dp_push_yuv_NV12_image(mWrState,
aBounds,
aClip,
aImageChannel0,
aImageChannel1,
- aColorSpace);
+ aColorSpace,
+ aRendering);
}
void
DisplayListBuilder::PushYCbCrInterleavedImage(const WrRect& aBounds,
const WrClipRegionToken aClip,
wr::ImageKey aImageChannel0,
- WrYuvColorSpace aColorSpace)
+ WrYuvColorSpace aColorSpace,
+ wr::ImageRendering aRendering)
{
wr_dp_push_yuv_interleaved_image(mWrState,
aBounds,
aClip,
aImageChannel0,
- aColorSpace);
+ aColorSpace,
+ aRendering);
}
void
DisplayListBuilder::PushIFrame(const WrRect& aBounds,
const WrClipRegionToken aClip,
PipelineId aPipeline)
{
wr_dp_push_iframe(mWrState, aBounds, aClip, aPipeline);
--- a/gfx/webrender_bindings/WebRenderAPI.h
+++ b/gfx/webrender_bindings/WebRenderAPI.h
@@ -202,28 +202,31 @@ public:
wr::ImageRendering aFilter,
wr::ImageKey aImage);
void PushYCbCrPlanarImage(const WrRect& aBounds,
const WrClipRegionToken aClip,
wr::ImageKey aImageChannel0,
wr::ImageKey aImageChannel1,
wr::ImageKey aImageChannel2,
- WrYuvColorSpace aColorSpace);
+ WrYuvColorSpace aColorSpace,
+ wr::ImageRendering aFilter);
void PushNV12Image(const WrRect& aBounds,
const WrClipRegionToken aClip,
wr::ImageKey aImageChannel0,
wr::ImageKey aImageChannel1,
- WrYuvColorSpace aColorSpace);
+ WrYuvColorSpace aColorSpace,
+ wr::ImageRendering aFilter);
void PushYCbCrInterleavedImage(const WrRect& aBounds,
const WrClipRegionToken aClip,
wr::ImageKey aImageChannel0,
- WrYuvColorSpace aColorSpace);
+ WrYuvColorSpace aColorSpace,
+ wr::ImageRendering aFilter);
void PushIFrame(const WrRect& aBounds,
const WrClipRegionToken aClip,
wr::PipelineId aPipeline);
void PushBorder(const WrRect& aBounds,
const WrClipRegionToken aClip,
const WrBorderWidths& aWidths,
--- a/gfx/webrender_bindings/src/bindings.rs
+++ b/gfx/webrender_bindings/src/bindings.rs
@@ -1373,60 +1373,66 @@ pub extern "C" fn wr_dp_push_image(state
/// Push a 3 planar yuv image.
#[no_mangle]
pub extern "C" fn wr_dp_push_yuv_planar_image(state: &mut WrState,
bounds: WrRect,
clip: WrClipRegionToken,
image_key_0: WrImageKey,
image_key_1: WrImageKey,
image_key_2: WrImageKey,
- color_space: WrYuvColorSpace) {
+ color_space: WrYuvColorSpace,
+ image_rendering: WrImageRendering) {
assert!(unsafe { is_in_main_thread() });
state.frame_builder
.dl_builder
.push_yuv_image(bounds.into(),
clip.into(),
YuvData::PlanarYCbCr(image_key_0, image_key_1, image_key_2),
- color_space);
+ color_space,
+ image_rendering);
}
/// Push a 2 planar NV12 image.
#[no_mangle]
pub extern "C" fn wr_dp_push_yuv_NV12_image(state: &mut WrState,
bounds: WrRect,
clip: WrClipRegionToken,
image_key_0: WrImageKey,
image_key_1: WrImageKey,
- color_space: WrYuvColorSpace) {
+ color_space: WrYuvColorSpace,
+ image_rendering: WrImageRendering) {
assert!(unsafe { is_in_main_thread() });
state.frame_builder
.dl_builder
.push_yuv_image(bounds.into(),
clip.into(),
YuvData::NV12(image_key_0, image_key_1),
- color_space);
+ color_space,
+ image_rendering);
}
/// Push a yuv interleaved image.
#[no_mangle]
pub extern "C" fn wr_dp_push_yuv_interleaved_image(state: &mut WrState,
bounds: WrRect,
clip: WrClipRegionToken,
image_key_0: WrImageKey,
- color_space: WrYuvColorSpace) {
+ color_space: WrYuvColorSpace,
+ image_rendering: WrImageRendering) {
assert!(unsafe { is_in_main_thread() });
state.frame_builder
.dl_builder
.push_yuv_image(bounds.into(),
clip.into(),
YuvData::InterleavedYCbCr(image_key_0),
- color_space);
+ color_space,
+ image_rendering);
}
#[no_mangle]
pub extern "C" fn wr_dp_push_text(state: &mut WrState,
bounds: WrRect,
clip: WrClipRegionToken,
color: WrColor,
font_key: WrFontKey,
--- a/gfx/webrender_bindings/webrender_ffi_generated.h
+++ b/gfx/webrender_bindings/webrender_ffi_generated.h
@@ -798,35 +798,38 @@ void wr_dp_push_text(WrState* aState,
WR_FUNC;
WR_INLINE
void wr_dp_push_yuv_NV12_image(WrState* aState,
WrRect aBounds,
WrClipRegionToken aClip,
WrImageKey aImageKey0,
WrImageKey aImageKey1,
- WrYuvColorSpace aColorSpace)
+ WrYuvColorSpace aColorSpace,
+ WrImageRendering aImageRendering)
WR_FUNC;
WR_INLINE
void wr_dp_push_yuv_interleaved_image(WrState* aState,
WrRect aBounds,
WrClipRegionToken aClip,
WrImageKey aImageKey0,
- WrYuvColorSpace aColorSpace)
+ WrYuvColorSpace aColorSpace,
+ WrImageRendering aImageRendering)
WR_FUNC;
WR_INLINE
void wr_dp_push_yuv_planar_image(WrState* aState,
WrRect aBounds,
WrClipRegionToken aClip,
WrImageKey aImageKey0,
WrImageKey aImageKey1,
WrImageKey aImageKey2,
- WrYuvColorSpace aColorSpace)
+ WrYuvColorSpace aColorSpace,
+ WrImageRendering aImageRendering)
WR_FUNC;
WR_INLINE
void wr_rendered_epochs_delete(WrRenderedEpochs* aPipelineEpochs)
WR_DESTRUCTOR_SAFE_FUNC;
WR_INLINE
bool wr_rendered_epochs_next(WrRenderedEpochs* aPipelineEpochs,