forked from mirrors/gecko-dev
Bug 1822436 - Remove offset from WR border-image implementation r=gfx-reviewers,lsalzman
It's not needed, as Gecko incorporates it in to the border-image rect. Differential Revision: https://phabricator.services.mozilla.com/D172636
This commit is contained in:
parent
d8e0ce0cc0
commit
30496845a0
20 changed files with 15 additions and 86 deletions
|
|
@ -1392,36 +1392,33 @@ void DisplayListBuilder::PushBorderGradient(
|
||||||
const int32_t aWidth, const int32_t aHeight, bool aFill,
|
const int32_t aWidth, const int32_t aHeight, bool aFill,
|
||||||
const wr::DeviceIntSideOffsets& aSlice, const wr::LayoutPoint& aStartPoint,
|
const wr::DeviceIntSideOffsets& aSlice, const wr::LayoutPoint& aStartPoint,
|
||||||
const wr::LayoutPoint& aEndPoint, const nsTArray<wr::GradientStop>& aStops,
|
const wr::LayoutPoint& aEndPoint, const nsTArray<wr::GradientStop>& aStops,
|
||||||
wr::ExtendMode aExtendMode, const wr::LayoutSideOffsets& aOutset) {
|
wr::ExtendMode aExtendMode) {
|
||||||
wr_dp_push_border_gradient(mWrState, aBounds, MergeClipLeaf(aClip),
|
wr_dp_push_border_gradient(
|
||||||
aIsBackfaceVisible, &mCurrentSpaceAndClipChain,
|
mWrState, aBounds, MergeClipLeaf(aClip), aIsBackfaceVisible,
|
||||||
aWidths, aWidth, aHeight, aFill, aSlice,
|
&mCurrentSpaceAndClipChain, aWidths, aWidth, aHeight, aFill, aSlice,
|
||||||
aStartPoint, aEndPoint, aStops.Elements(),
|
aStartPoint, aEndPoint, aStops.Elements(), aStops.Length(), aExtendMode);
|
||||||
aStops.Length(), aExtendMode, aOutset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayListBuilder::PushBorderRadialGradient(
|
void DisplayListBuilder::PushBorderRadialGradient(
|
||||||
const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
||||||
bool aIsBackfaceVisible, const wr::LayoutSideOffsets& aWidths, bool aFill,
|
bool aIsBackfaceVisible, const wr::LayoutSideOffsets& aWidths, bool aFill,
|
||||||
const wr::LayoutPoint& aCenter, const wr::LayoutSize& aRadius,
|
const wr::LayoutPoint& aCenter, const wr::LayoutSize& aRadius,
|
||||||
const nsTArray<wr::GradientStop>& aStops, wr::ExtendMode aExtendMode,
|
const nsTArray<wr::GradientStop>& aStops, wr::ExtendMode aExtendMode) {
|
||||||
const wr::LayoutSideOffsets& aOutset) {
|
|
||||||
wr_dp_push_border_radial_gradient(
|
wr_dp_push_border_radial_gradient(
|
||||||
mWrState, aBounds, MergeClipLeaf(aClip), aIsBackfaceVisible,
|
mWrState, aBounds, MergeClipLeaf(aClip), aIsBackfaceVisible,
|
||||||
&mCurrentSpaceAndClipChain, aWidths, aFill, aCenter, aRadius,
|
&mCurrentSpaceAndClipChain, aWidths, aFill, aCenter, aRadius,
|
||||||
aStops.Elements(), aStops.Length(), aExtendMode, aOutset);
|
aStops.Elements(), aStops.Length(), aExtendMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayListBuilder::PushBorderConicGradient(
|
void DisplayListBuilder::PushBorderConicGradient(
|
||||||
const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
||||||
bool aIsBackfaceVisible, const wr::LayoutSideOffsets& aWidths, bool aFill,
|
bool aIsBackfaceVisible, const wr::LayoutSideOffsets& aWidths, bool aFill,
|
||||||
const wr::LayoutPoint& aCenter, const float aAngle,
|
const wr::LayoutPoint& aCenter, const float aAngle,
|
||||||
const nsTArray<wr::GradientStop>& aStops, wr::ExtendMode aExtendMode,
|
const nsTArray<wr::GradientStop>& aStops, wr::ExtendMode aExtendMode) {
|
||||||
const wr::LayoutSideOffsets& aOutset) {
|
|
||||||
wr_dp_push_border_conic_gradient(
|
wr_dp_push_border_conic_gradient(
|
||||||
mWrState, aBounds, MergeClipLeaf(aClip), aIsBackfaceVisible,
|
mWrState, aBounds, MergeClipLeaf(aClip), aIsBackfaceVisible,
|
||||||
&mCurrentSpaceAndClipChain, aWidths, aFill, aCenter, aAngle,
|
&mCurrentSpaceAndClipChain, aWidths, aFill, aCenter, aAngle,
|
||||||
aStops.Elements(), aStops.Length(), aExtendMode, aOutset);
|
aStops.Elements(), aStops.Length(), aExtendMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayListBuilder::PushText(const wr::LayoutRect& aBounds,
|
void DisplayListBuilder::PushText(const wr::LayoutRect& aBounds,
|
||||||
|
|
|
||||||
|
|
@ -585,22 +585,19 @@ class DisplayListBuilder final {
|
||||||
const wr::LayoutPoint& aStartPoint,
|
const wr::LayoutPoint& aStartPoint,
|
||||||
const wr::LayoutPoint& aEndPoint,
|
const wr::LayoutPoint& aEndPoint,
|
||||||
const nsTArray<wr::GradientStop>& aStops,
|
const nsTArray<wr::GradientStop>& aStops,
|
||||||
wr::ExtendMode aExtendMode,
|
wr::ExtendMode aExtendMode);
|
||||||
const wr::LayoutSideOffsets& aOutset);
|
|
||||||
|
|
||||||
void PushBorderRadialGradient(
|
void PushBorderRadialGradient(
|
||||||
const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
||||||
bool aIsBackfaceVisible, const wr::LayoutSideOffsets& aWidths, bool aFill,
|
bool aIsBackfaceVisible, const wr::LayoutSideOffsets& aWidths, bool aFill,
|
||||||
const wr::LayoutPoint& aCenter, const wr::LayoutSize& aRadius,
|
const wr::LayoutPoint& aCenter, const wr::LayoutSize& aRadius,
|
||||||
const nsTArray<wr::GradientStop>& aStops, wr::ExtendMode aExtendMode,
|
const nsTArray<wr::GradientStop>& aStops, wr::ExtendMode aExtendMode);
|
||||||
const wr::LayoutSideOffsets& aOutset);
|
|
||||||
|
|
||||||
void PushBorderConicGradient(
|
void PushBorderConicGradient(
|
||||||
const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
||||||
bool aIsBackfaceVisible, const wr::LayoutSideOffsets& aWidths, bool aFill,
|
bool aIsBackfaceVisible, const wr::LayoutSideOffsets& aWidths, bool aFill,
|
||||||
const wr::LayoutPoint& aCenter, const float aAngle,
|
const wr::LayoutPoint& aCenter, const float aAngle,
|
||||||
const nsTArray<wr::GradientStop>& aStops, wr::ExtendMode aExtendMode,
|
const nsTArray<wr::GradientStop>& aStops, wr::ExtendMode aExtendMode);
|
||||||
const wr::LayoutSideOffsets& aOutset);
|
|
||||||
|
|
||||||
void PushText(const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
void PushText(const wr::LayoutRect& aBounds, const wr::LayoutRect& aClip,
|
||||||
bool aIsBackfaceVisible, const wr::ColorF& aColor,
|
bool aIsBackfaceVisible, const wr::ColorF& aColor,
|
||||||
|
|
|
||||||
|
|
@ -3404,7 +3404,6 @@ pub struct WrBorderImage {
|
||||||
height: i32,
|
height: i32,
|
||||||
fill: bool,
|
fill: bool,
|
||||||
slice: DeviceIntSideOffsets,
|
slice: DeviceIntSideOffsets,
|
||||||
outset: LayoutSideOffsets,
|
|
||||||
repeat_horizontal: RepeatMode,
|
repeat_horizontal: RepeatMode,
|
||||||
repeat_vertical: RepeatMode,
|
repeat_vertical: RepeatMode,
|
||||||
}
|
}
|
||||||
|
|
@ -3425,7 +3424,6 @@ pub extern "C" fn wr_dp_push_border_image(
|
||||||
height: params.height,
|
height: params.height,
|
||||||
slice: params.slice,
|
slice: params.slice,
|
||||||
fill: params.fill,
|
fill: params.fill,
|
||||||
outset: params.outset,
|
|
||||||
repeat_horizontal: params.repeat_horizontal,
|
repeat_horizontal: params.repeat_horizontal,
|
||||||
repeat_vertical: params.repeat_vertical,
|
repeat_vertical: params.repeat_vertical,
|
||||||
});
|
});
|
||||||
|
|
@ -3461,7 +3459,6 @@ pub extern "C" fn wr_dp_push_border_gradient(
|
||||||
stops: *const GradientStop,
|
stops: *const GradientStop,
|
||||||
stops_count: usize,
|
stops_count: usize,
|
||||||
extend_mode: ExtendMode,
|
extend_mode: ExtendMode,
|
||||||
outset: LayoutSideOffsets,
|
|
||||||
) {
|
) {
|
||||||
debug_assert!(unsafe { is_in_main_thread() });
|
debug_assert!(unsafe { is_in_main_thread() });
|
||||||
|
|
||||||
|
|
@ -3479,7 +3476,6 @@ pub extern "C" fn wr_dp_push_border_gradient(
|
||||||
height,
|
height,
|
||||||
slice,
|
slice,
|
||||||
fill,
|
fill,
|
||||||
outset,
|
|
||||||
repeat_horizontal: RepeatMode::Stretch,
|
repeat_horizontal: RepeatMode::Stretch,
|
||||||
repeat_vertical: RepeatMode::Stretch,
|
repeat_vertical: RepeatMode::Stretch,
|
||||||
});
|
});
|
||||||
|
|
@ -3513,7 +3509,6 @@ pub extern "C" fn wr_dp_push_border_radial_gradient(
|
||||||
stops: *const GradientStop,
|
stops: *const GradientStop,
|
||||||
stops_count: usize,
|
stops_count: usize,
|
||||||
extend_mode: ExtendMode,
|
extend_mode: ExtendMode,
|
||||||
outset: LayoutSideOffsets,
|
|
||||||
) {
|
) {
|
||||||
debug_assert!(unsafe { is_in_main_thread() });
|
debug_assert!(unsafe { is_in_main_thread() });
|
||||||
|
|
||||||
|
|
@ -3538,7 +3533,6 @@ pub extern "C" fn wr_dp_push_border_radial_gradient(
|
||||||
height: rect.height() as i32,
|
height: rect.height() as i32,
|
||||||
slice,
|
slice,
|
||||||
fill,
|
fill,
|
||||||
outset,
|
|
||||||
repeat_horizontal: RepeatMode::Stretch,
|
repeat_horizontal: RepeatMode::Stretch,
|
||||||
repeat_vertical: RepeatMode::Stretch,
|
repeat_vertical: RepeatMode::Stretch,
|
||||||
});
|
});
|
||||||
|
|
@ -3572,7 +3566,6 @@ pub extern "C" fn wr_dp_push_border_conic_gradient(
|
||||||
stops: *const GradientStop,
|
stops: *const GradientStop,
|
||||||
stops_count: usize,
|
stops_count: usize,
|
||||||
extend_mode: ExtendMode,
|
extend_mode: ExtendMode,
|
||||||
outset: LayoutSideOffsets,
|
|
||||||
) {
|
) {
|
||||||
debug_assert!(unsafe { is_in_main_thread() });
|
debug_assert!(unsafe { is_in_main_thread() });
|
||||||
|
|
||||||
|
|
@ -3597,7 +3590,6 @@ pub extern "C" fn wr_dp_push_border_conic_gradient(
|
||||||
height: rect.height() as i32,
|
height: rect.height() as i32,
|
||||||
slice,
|
slice,
|
||||||
fill,
|
fill,
|
||||||
outset,
|
|
||||||
repeat_horizontal: RepeatMode::Stretch,
|
repeat_horizontal: RepeatMode::Stretch,
|
||||||
repeat_vertical: RepeatMode::Stretch,
|
repeat_vertical: RepeatMode::Stretch,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1305,17 +1305,6 @@ impl NinePatchDescriptor {
|
||||||
) -> Vec<BrushSegment> {
|
) -> Vec<BrushSegment> {
|
||||||
let rect = LayoutRect::from_size(size);
|
let rect = LayoutRect::from_size(size);
|
||||||
|
|
||||||
// Calculate the modified rect as specific by border-image-outset
|
|
||||||
let origin = LayoutPoint::new(
|
|
||||||
rect.min.x - self.outset.left,
|
|
||||||
rect.min.y - self.outset.top,
|
|
||||||
);
|
|
||||||
let size = LayoutSize::new(
|
|
||||||
rect.width() + self.outset.left + self.outset.right,
|
|
||||||
rect.height() + self.outset.top + self.outset.bottom,
|
|
||||||
);
|
|
||||||
let rect = LayoutRect::from_origin_and_size(origin, size);
|
|
||||||
|
|
||||||
// Calculate the local texel coords of the slices.
|
// Calculate the local texel coords of the slices.
|
||||||
let px0 = 0.0;
|
let px0 = 0.0;
|
||||||
let px1 = self.slice.left as f32 / self.width as f32;
|
let px1 = self.slice.left as f32 / self.width as f32;
|
||||||
|
|
|
||||||
|
|
@ -902,7 +902,6 @@ pub struct NinePatchDescriptor {
|
||||||
pub fill: bool,
|
pub fill: bool,
|
||||||
pub repeat_horizontal: RepeatMode,
|
pub repeat_horizontal: RepeatMode,
|
||||||
pub repeat_vertical: RepeatMode,
|
pub repeat_vertical: RepeatMode,
|
||||||
pub outset: SideOffsetsKey,
|
|
||||||
pub widths: SideOffsetsKey,
|
pub widths: SideOffsetsKey,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3093,7 +3093,6 @@ impl<'a> SceneBuilder<'a> {
|
||||||
fill: border.fill,
|
fill: border.fill,
|
||||||
repeat_horizontal: border.repeat_horizontal,
|
repeat_horizontal: border.repeat_horizontal,
|
||||||
repeat_vertical: border.repeat_vertical,
|
repeat_vertical: border.repeat_vertical,
|
||||||
outset: border.outset.into(),
|
|
||||||
widths: border_item.widths.into(),
|
widths: border_item.widths.into(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -525,10 +525,6 @@ pub struct NinePatchBorder {
|
||||||
/// Determines what happens if the vertical side parts of the 9-part
|
/// Determines what happens if the vertical side parts of the 9-part
|
||||||
/// image have a different size than the vertical parts of the border.
|
/// image have a different size than the vertical parts of the border.
|
||||||
pub repeat_vertical: RepeatMode,
|
pub repeat_vertical: RepeatMode,
|
||||||
|
|
||||||
/// The outset for the border.
|
|
||||||
/// TODO(mrobinson): This should be removed and handled by the client.
|
|
||||||
pub outset: LayoutSideOffsets, // TODO: what unit is this in?
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug, Deserialize, PartialEq, Serialize, PeekPoke)]
|
#[derive(Clone, Copy, Debug, Deserialize, PartialEq, Serialize, PeekPoke)]
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,3 @@ root:
|
||||||
end: [ 200, 0 ]
|
end: [ 200, 0 ]
|
||||||
stops: [ 0.0, red, 0.177, red, 0.177, yellow, 0.50, yellow, 0.50, red ]
|
stops: [ 0.0, red, 0.177, red, 0.177, yellow, 0.50, yellow, 0.50, red ]
|
||||||
slice: [ 50 ]
|
slice: [ 50 ]
|
||||||
outset: 0
|
|
||||||
|
|
|
||||||
|
|
@ -11,4 +11,3 @@ root:
|
||||||
start: [ 25, 0 ]
|
start: [ 25, 0 ]
|
||||||
end: [ 25, 50 ]
|
end: [ 25, 50 ]
|
||||||
stops: [ 0.0, red, 1.0, green ]
|
stops: [ 0.0, red, 1.0, green ]
|
||||||
outset: [ 0, 0, 0, 0 ]
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ root:
|
||||||
image-width: 32
|
image-width: 32
|
||||||
image-height: 32
|
image-height: 32
|
||||||
slice: [ 3, 0, 1, 36 ]
|
slice: [ 3, 0, 1, 36 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: stretch
|
repeat-vertical: stretch
|
||||||
repeat-horizontal: stretch
|
repeat-horizontal: stretch
|
||||||
fill: true
|
fill: true
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ root:
|
||||||
image-width: 32
|
image-width: 32
|
||||||
image-height: 32
|
image-height: 32
|
||||||
slice: [ 3, 0, 1, 36 ]
|
slice: [ 3, 0, 1, 36 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: stretch
|
repeat-vertical: stretch
|
||||||
repeat-horizontal: stretch
|
repeat-horizontal: stretch
|
||||||
fill: true
|
fill: true
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32, 0, 32, 0 ]
|
slice: [ 32, 0, 32, 0 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: round
|
repeat-vertical: round
|
||||||
repeat-horizontal: round
|
repeat-horizontal: round
|
||||||
- type: border
|
- type: border
|
||||||
|
|
@ -23,7 +22,6 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 0, 32, 0, 32 ]
|
slice: [ 0, 32, 0, 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: round
|
repeat-vertical: round
|
||||||
repeat-horizontal: round
|
repeat-horizontal: round
|
||||||
- type: border
|
- type: border
|
||||||
|
|
@ -34,7 +32,6 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32, 0, 0, 32 ]
|
slice: [ 32, 0, 0, 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: round
|
repeat-vertical: round
|
||||||
repeat-horizontal: round
|
repeat-horizontal: round
|
||||||
- type: border
|
- type: border
|
||||||
|
|
@ -45,6 +42,5 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 0, 32, 32, 0 ]
|
slice: [ 0, 32, 32, 0 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: round
|
repeat-vertical: round
|
||||||
repeat-horizontal: round
|
repeat-horizontal: round
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ root:
|
||||||
image-width: 100
|
image-width: 100
|
||||||
image-height: 50
|
image-height: 50
|
||||||
slice: [ 20, 40 ]
|
slice: [ 20, 40 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: repeat
|
repeat-vertical: repeat
|
||||||
repeat-horizontal: repeat
|
repeat-horizontal: repeat
|
||||||
fill: true
|
fill: true
|
||||||
|
|
@ -25,7 +24,6 @@ root:
|
||||||
image-width: 100
|
image-width: 100
|
||||||
image-height: 50
|
image-height: 50
|
||||||
slice: [ 20, 40 ]
|
slice: [ 20, 40 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: stretch
|
repeat-vertical: stretch
|
||||||
repeat-horizontal: repeat
|
repeat-horizontal: repeat
|
||||||
fill: true
|
fill: true
|
||||||
|
|
@ -37,7 +35,6 @@ root:
|
||||||
image-width: 100
|
image-width: 100
|
||||||
image-height: 50
|
image-height: 50
|
||||||
slice: [ 20, 40 ]
|
slice: [ 20, 40 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: repeat
|
repeat-vertical: repeat
|
||||||
repeat-horizontal: stretch
|
repeat-horizontal: stretch
|
||||||
fill: true
|
fill: true
|
||||||
|
|
@ -49,7 +46,6 @@ root:
|
||||||
image-width: 100
|
image-width: 100
|
||||||
image-height: 50
|
image-height: 50
|
||||||
slice: [ 20, 40 ]
|
slice: [ 20, 40 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: stretch
|
repeat-vertical: stretch
|
||||||
repeat-horizontal: stretch
|
repeat-horizontal: stretch
|
||||||
fill: true
|
fill: true
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32 ]
|
slice: [ 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: repeat
|
repeat-vertical: repeat
|
||||||
repeat-horizontal: repeat
|
repeat-horizontal: repeat
|
||||||
fill: true
|
fill: true
|
||||||
|
|
@ -24,7 +23,6 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32 ]
|
slice: [ 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: stretch
|
repeat-vertical: stretch
|
||||||
repeat-horizontal: repeat
|
repeat-horizontal: repeat
|
||||||
fill: true
|
fill: true
|
||||||
|
|
@ -36,7 +34,6 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32 ]
|
slice: [ 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: repeat
|
repeat-vertical: repeat
|
||||||
repeat-horizontal: stretch
|
repeat-horizontal: stretch
|
||||||
fill: true
|
fill: true
|
||||||
|
|
@ -48,7 +45,6 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32 ]
|
slice: [ 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: stretch
|
repeat-vertical: stretch
|
||||||
repeat-horizontal: stretch
|
repeat-horizontal: stretch
|
||||||
fill: true
|
fill: true
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32 ]
|
slice: [ 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: round
|
repeat-vertical: round
|
||||||
repeat-horizontal: round
|
repeat-horizontal: round
|
||||||
# The pattern has to be stretched to fit.
|
# The pattern has to be stretched to fit.
|
||||||
|
|
@ -25,7 +24,6 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32 ]
|
slice: [ 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: round
|
repeat-vertical: round
|
||||||
repeat-horizontal: round
|
repeat-horizontal: round
|
||||||
# The pattern has to be shrunk to fit.
|
# The pattern has to be shrunk to fit.
|
||||||
|
|
@ -37,6 +35,5 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32 ]
|
slice: [ 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: round
|
repeat-vertical: round
|
||||||
repeat-horizontal: round
|
repeat-horizontal: round
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,5 @@ root:
|
||||||
image-width: 96
|
image-width: 96
|
||||||
image-height: 96
|
image-height: 96
|
||||||
slice: [ 32 ]
|
slice: [ 32 ]
|
||||||
outset: 0
|
|
||||||
repeat-vertical: stretch
|
repeat-vertical: stretch
|
||||||
repeat-horizontal: stretch
|
repeat-horizontal: stretch
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,3 @@ root:
|
||||||
radius: [ 200, 200 ]
|
radius: [ 200, 200 ]
|
||||||
stops: [ 0.0, red, 0.5, red, 0.5, green ]
|
stops: [ 0.0, red, 0.5, red, 0.5, green ]
|
||||||
slice: [ 50 ]
|
slice: [ 50 ]
|
||||||
outset: 0
|
|
||||||
|
|
|
||||||
|
|
@ -11,4 +11,3 @@ root:
|
||||||
center: [ 25, 25 ]
|
center: [ 25, 25 ]
|
||||||
radius: [ 50, 50 ]
|
radius: [ 50, 50 ]
|
||||||
stops: [ 0.0, red, 1.0, green ]
|
stops: [ 0.0, red, 1.0, green ]
|
||||||
outset: [ 0, 0, 0, 0 ]
|
|
||||||
|
|
|
||||||
|
|
@ -1082,10 +1082,6 @@ impl YamlFrameReader {
|
||||||
vec![widths.top as u32, widths.left as u32, widths.bottom as u32, widths.right as u32]
|
vec![widths.top as u32, widths.left as u32, widths.bottom as u32, widths.right as u32]
|
||||||
};
|
};
|
||||||
|
|
||||||
let outset = item["outset"]
|
|
||||||
.as_vec_f32()
|
|
||||||
.expect("border must have outset");
|
|
||||||
let outset = broadcast(&outset, 4);
|
|
||||||
let repeat_horizontal = match item["repeat-horizontal"]
|
let repeat_horizontal = match item["repeat-horizontal"]
|
||||||
.as_str()
|
.as_str()
|
||||||
.unwrap_or("stretch")
|
.unwrap_or("stretch")
|
||||||
|
|
@ -1136,7 +1132,6 @@ impl YamlFrameReader {
|
||||||
fill,
|
fill,
|
||||||
repeat_horizontal,
|
repeat_horizontal,
|
||||||
repeat_vertical,
|
repeat_vertical,
|
||||||
outset: SideOffsets2D::new(outset[0], outset[1], outset[2], outset[3]),
|
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
|
|
|
||||||
|
|
@ -3587,17 +3587,11 @@ ImgDrawResult nsCSSBorderImageRenderer::CreateWebRenderCommands(
|
||||||
|
|
||||||
float widths[4];
|
float widths[4];
|
||||||
float slice[4];
|
float slice[4];
|
||||||
float outset[4];
|
|
||||||
const int32_t appUnitsPerDevPixel =
|
const int32_t appUnitsPerDevPixel =
|
||||||
aForFrame->PresContext()->AppUnitsPerDevPixel();
|
aForFrame->PresContext()->AppUnitsPerDevPixel();
|
||||||
for (const auto i : mozilla::AllPhysicalSides()) {
|
for (const auto i : mozilla::AllPhysicalSides()) {
|
||||||
slice[i] = (float)(mSlice.Side(i)) / appUnitsPerDevPixel;
|
slice[i] = (float)(mSlice.Side(i)) / appUnitsPerDevPixel;
|
||||||
widths[i] = (float)(mWidths.Side(i)) / appUnitsPerDevPixel;
|
widths[i] = (float)(mWidths.Side(i)) / appUnitsPerDevPixel;
|
||||||
|
|
||||||
// The outset is already taken into account by the adjustments to mArea
|
|
||||||
// in our constructor. We use mArea as our dest rect so we can just supply
|
|
||||||
// zero outsets to WebRender.
|
|
||||||
outset[i] = 0.0f;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LayoutDeviceRect destRect =
|
LayoutDeviceRect destRect =
|
||||||
|
|
@ -3688,7 +3682,6 @@ ImgDrawResult nsCSSBorderImageRenderer::CreateWebRenderCommands(
|
||||||
mImageSize.height / appUnitsPerDevPixel,
|
mImageSize.height / appUnitsPerDevPixel,
|
||||||
mFill,
|
mFill,
|
||||||
wr::ToDeviceIntSideOffsets(slice[0], slice[1], slice[2], slice[3]),
|
wr::ToDeviceIntSideOffsets(slice[0], slice[1], slice[2], slice[3]),
|
||||||
wr::ToLayoutSideOffsets(outset[0], outset[1], outset[2], outset[3]),
|
|
||||||
wr::ToRepeatMode(mRepeatModeHorizontal),
|
wr::ToRepeatMode(mRepeatModeHorizontal),
|
||||||
wr::ToRepeatMode(mRepeatModeVertical)};
|
wr::ToRepeatMode(mRepeatModeVertical)};
|
||||||
|
|
||||||
|
|
@ -3724,26 +3717,20 @@ ImgDrawResult nsCSSBorderImageRenderer::CreateWebRenderCommands(
|
||||||
(float)(mImageSize.height) / appUnitsPerDevPixel, mFill,
|
(float)(mImageSize.height) / appUnitsPerDevPixel, mFill,
|
||||||
wr::ToDeviceIntSideOffsets(slice[0], slice[1], slice[2], slice[3]),
|
wr::ToDeviceIntSideOffsets(slice[0], slice[1], slice[2], slice[3]),
|
||||||
wr::ToLayoutPoint(startPoint), wr::ToLayoutPoint(endPoint), stops,
|
wr::ToLayoutPoint(startPoint), wr::ToLayoutPoint(endPoint), stops,
|
||||||
extendMode,
|
extendMode);
|
||||||
wr::ToLayoutSideOffsets(outset[0], outset[1], outset[2],
|
|
||||||
outset[3]));
|
|
||||||
} else if (gradient.IsRadial()) {
|
} else if (gradient.IsRadial()) {
|
||||||
aBuilder.PushBorderRadialGradient(
|
aBuilder.PushBorderRadialGradient(
|
||||||
dest, clip, !aItem->BackfaceIsHidden(),
|
dest, clip, !aItem->BackfaceIsHidden(),
|
||||||
wr::ToBorderWidths(widths[0], widths[1], widths[2], widths[3]),
|
wr::ToBorderWidths(widths[0], widths[1], widths[2], widths[3]),
|
||||||
mFill, wr::ToLayoutPoint(lineStart),
|
mFill, wr::ToLayoutPoint(lineStart),
|
||||||
wr::ToLayoutSize(gradientRadius), stops, extendMode,
|
wr::ToLayoutSize(gradientRadius), stops, extendMode);
|
||||||
wr::ToLayoutSideOffsets(outset[0], outset[1], outset[2],
|
|
||||||
outset[3]));
|
|
||||||
} else {
|
} else {
|
||||||
MOZ_ASSERT(gradient.IsConic());
|
MOZ_ASSERT(gradient.IsConic());
|
||||||
aBuilder.PushBorderConicGradient(
|
aBuilder.PushBorderConicGradient(
|
||||||
dest, clip, !aItem->BackfaceIsHidden(),
|
dest, clip, !aItem->BackfaceIsHidden(),
|
||||||
wr::ToBorderWidths(widths[0], widths[1], widths[2], widths[3]),
|
wr::ToBorderWidths(widths[0], widths[1], widths[2], widths[3]),
|
||||||
mFill, wr::ToLayoutPoint(gradientCenter), gradientAngle, stops,
|
mFill, wr::ToLayoutPoint(gradientCenter), gradientAngle, stops,
|
||||||
extendMode,
|
extendMode);
|
||||||
wr::ToLayoutSideOffsets(outset[0], outset[1], outset[2],
|
|
||||||
outset[3]));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue