diff --git a/gfx/layers/wr/AsyncImagePipelineManager.cpp b/gfx/layers/wr/AsyncImagePipelineManager.cpp index 07189a919226b959531ab677beb2d82af030d4ee..0d3318ce9f1e0f182c2ec8268f4afeaf4b6c611b 100644 --- a/gfx/layers/wr/AsyncImagePipelineManager.cpp +++ b/gfx/layers/wr/AsyncImagePipelineManager.cpp @@ -392,7 +392,7 @@ AsyncImagePipelineManager::ApplyAsyncImageForPipeline(const wr::Epoch& aEpoch, nsTArray<wr::WrFilterOp>(), true, // This is fine to do unconditionally because we only push images here. - wr::GlyphRasterSpace::Screen()); + wr::RasterSpace::Screen()); if (aPipeline->mCurrentTexture && !keys.IsEmpty()) { LayoutDeviceRect rect(0, 0, aPipeline->mCurrentTexture->GetSize().width, aPipeline->mCurrentTexture->GetSize().height); diff --git a/gfx/layers/wr/StackingContextHelper.cpp b/gfx/layers/wr/StackingContextHelper.cpp index 4e314965d83b63c16acb9e1252197d383f06ea00..1a3a4acff909c3e26caf6c9f1d6af49efcf5e358 100644 --- a/gfx/layers/wr/StackingContextHelper.cpp +++ b/gfx/layers/wr/StackingContextHelper.cpp @@ -62,8 +62,8 @@ StackingContextHelper::StackingContextHelper(const StackingContextHelper& aParen } auto rasterSpace = mRasterizeLocally - ? wr::GlyphRasterSpace::Local(std::max(mScale.width, mScale.height)) - : wr::GlyphRasterSpace::Screen(); + ? wr::RasterSpace::Local(std::max(mScale.width, mScale.height)) + : wr::RasterSpace::Screen(); mReferenceFrameId = mBuilder->PushStackingContext( wr::ToLayoutRect(aBounds), diff --git a/gfx/webrender_bindings/WebRenderAPI.cpp b/gfx/webrender_bindings/WebRenderAPI.cpp index b87e694c345e38981b60ea4f0a7f621fbda497f5..0e969fa4cae6a2cfd2f7dd84aad96a9637421f26 100644 --- a/gfx/webrender_bindings/WebRenderAPI.cpp +++ b/gfx/webrender_bindings/WebRenderAPI.cpp @@ -825,7 +825,7 @@ DisplayListBuilder::PushStackingContext(const wr::LayoutRect& aBounds, const wr::MixBlendMode& aMixBlendMode, const nsTArray<wr::WrFilterOp>& aFilters, bool aIsBackfaceVisible, - const wr::GlyphRasterSpace& aRasterSpace) + const wr::RasterSpace& aRasterSpace) { MOZ_ASSERT(mClipChainLeaf.isNothing(), "Non-empty leaf from clip chain given, but not used with SC!"); diff --git a/gfx/webrender_bindings/WebRenderAPI.h b/gfx/webrender_bindings/WebRenderAPI.h index 8dcb79c85c8b73c63a11c532c22197e1e58eec27..8dcf1ca403903d6637af13baaf4d48a25c5df733 100644 --- a/gfx/webrender_bindings/WebRenderAPI.h +++ b/gfx/webrender_bindings/WebRenderAPI.h @@ -310,7 +310,7 @@ public: const wr::MixBlendMode& aMixBlendMode, const nsTArray<wr::WrFilterOp>& aFilters, bool aIsBackfaceVisible, - const wr::GlyphRasterSpace& aRasterSpace); + const wr::RasterSpace& aRasterSpace); void PopStackingContext(bool aIsReferenceFrame); wr::WrClipChainId DefineClipChain(const Maybe<wr::WrClipChainId>& aParent, diff --git a/gfx/webrender_bindings/src/bindings.rs b/gfx/webrender_bindings/src/bindings.rs index 8e0d77e8e8e647c6b1346e14bc05e108adeee774..f59a506551494385f18322366aefe3c9c663a685 100644 --- a/gfx/webrender_bindings/src/bindings.rs +++ b/gfx/webrender_bindings/src/bindings.rs @@ -1679,7 +1679,7 @@ pub extern "C" fn wr_dp_push_stacking_context(state: &mut WrState, filters: *const WrFilterOp, filter_count: usize, is_backface_visible: bool, - glyph_raster_space: GlyphRasterSpace, + glyph_raster_space: RasterSpace, out_is_reference_frame: &mut bool, out_reference_frame_id: &mut usize) { debug_assert!(unsafe { !is_in_render_thread() }); diff --git a/gfx/webrender_bindings/webrender_ffi_generated.h b/gfx/webrender_bindings/webrender_ffi_generated.h index 04db0006eb9271d4b12a30b2cdcc7cc9ee21ed1f..a29efe9ad96626eb88584d907d7e6210caf8e846 100644 --- a/gfx/webrender_bindings/webrender_ffi_generated.h +++ b/gfx/webrender_bindings/webrender_ffi_generated.h @@ -820,7 +820,13 @@ struct WrFilterOp { float matrix[20]; }; -union GlyphRasterSpace { +// Configure whether the contents of a stacking context +// should be rasterized in local space or screen space. +// Local space rasterized pictures are typically used +// when we want to cache the output, and performance is +// important. Note that this is a performance hint only, +// which WR may choose to ignore. +union RasterSpace { enum class Tag : uint32_t { Local, Screen, @@ -842,15 +848,15 @@ union GlyphRasterSpace { }; Local_Body local; - static GlyphRasterSpace Local(float const& a0) { - GlyphRasterSpace result; + static RasterSpace Local(float const& a0) { + RasterSpace result; result.local._0 = a0; result.tag = Tag::Local; return result; } - static GlyphRasterSpace Screen() { - GlyphRasterSpace result; + static RasterSpace Screen() { + RasterSpace result; result.tag = Tag::Screen; return result; } @@ -863,7 +869,7 @@ union GlyphRasterSpace { return tag == Tag::Screen; } - bool operator==(const GlyphRasterSpace& aOther) const { + bool operator==(const RasterSpace& aOther) const { if (tag != aOther.tag) { return false; } @@ -1427,7 +1433,7 @@ void wr_dp_push_stacking_context(WrState *aState, const WrFilterOp *aFilters, uintptr_t aFilterCount, bool aIsBackfaceVisible, - GlyphRasterSpace aGlyphRasterSpace, + RasterSpace aGlyphRasterSpace, bool *aOutIsReferenceFrame, uintptr_t *aOutReferenceFrameId) WR_FUNC;