mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
style: Avoid manual paint-order glue code.
Differential Revision: https://phabricator.services.mozilla.com/D42913
This commit is contained in:
parent
14c7e133ad
commit
432b417d98
2 changed files with 6 additions and 16 deletions
|
@ -2599,18 +2599,7 @@ clip-path
|
||||||
</%self:impl_trait>
|
</%self:impl_trait>
|
||||||
|
|
||||||
<%self:impl_trait style_struct_name="InheritedSVG"
|
<%self:impl_trait style_struct_name="InheritedSVG"
|
||||||
skip_longhands="paint-order stroke-dasharray">
|
skip_longhands="stroke-dasharray">
|
||||||
pub fn set_paint_order(&mut self, v: longhands::paint_order::computed_value::T) {
|
|
||||||
self.gecko.mPaintOrder = v.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
${impl_simple_copy('paint_order', 'mPaintOrder')}
|
|
||||||
|
|
||||||
pub fn clone_paint_order(&self) -> longhands::paint_order::computed_value::T {
|
|
||||||
use crate::properties::longhands::paint_order::computed_value::T;
|
|
||||||
T(self.gecko.mPaintOrder)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn set_stroke_dasharray(&mut self, v: longhands::stroke_dasharray::computed_value::T) {
|
pub fn set_stroke_dasharray(&mut self, v: longhands::stroke_dasharray::computed_value::T) {
|
||||||
use crate::gecko_bindings::structs::nsStyleSVG_STROKE_DASHARRAY_CONTEXT as CONTEXT_VALUE;
|
use crate::gecko_bindings::structs::nsStyleSVG_STROKE_DASHARRAY_CONTEXT as CONTEXT_VALUE;
|
||||||
use crate::values::generics::svg::SVGStrokeDashArray;
|
use crate::values::generics::svg::SVGStrokeDashArray;
|
||||||
|
|
|
@ -106,13 +106,13 @@ pub enum PaintOrder {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Number of non-normal components
|
/// Number of non-normal components
|
||||||
const PAINT_ORDER_COUNT: u8 = 3;
|
pub const PAINT_ORDER_COUNT: u8 = 3;
|
||||||
|
|
||||||
/// Number of bits for each component
|
/// Number of bits for each component
|
||||||
const PAINT_ORDER_SHIFT: u8 = 2;
|
pub const PAINT_ORDER_SHIFT: u8 = 2;
|
||||||
|
|
||||||
/// Mask with above bits set
|
/// Mask with above bits set
|
||||||
const PAINT_ORDER_MASK: u8 = 0b11;
|
pub const PAINT_ORDER_MASK: u8 = 0b11;
|
||||||
|
|
||||||
/// The specified value is tree `PaintOrder` values packed into the
|
/// The specified value is tree `PaintOrder` values packed into the
|
||||||
/// bitfields below, as a six-bit field, of 3 two-bit pairs
|
/// bitfields below, as a six-bit field, of 3 two-bit pairs
|
||||||
|
@ -135,6 +135,7 @@ const PAINT_ORDER_MASK: u8 = 0b11;
|
||||||
ToResolvedValue,
|
ToResolvedValue,
|
||||||
ToShmem,
|
ToShmem,
|
||||||
)]
|
)]
|
||||||
|
#[repr(transparent)]
|
||||||
pub struct SVGPaintOrder(pub u8);
|
pub struct SVGPaintOrder(pub u8);
|
||||||
|
|
||||||
impl SVGPaintOrder {
|
impl SVGPaintOrder {
|
||||||
|
@ -146,7 +147,7 @@ impl SVGPaintOrder {
|
||||||
/// Get variant of `paint-order`
|
/// Get variant of `paint-order`
|
||||||
pub fn order_at(&self, pos: u8) -> PaintOrder {
|
pub fn order_at(&self, pos: u8) -> PaintOrder {
|
||||||
// Safe because PaintOrder covers all possible patterns.
|
// Safe because PaintOrder covers all possible patterns.
|
||||||
unsafe { ::std::mem::transmute((self.0 >> pos * PAINT_ORDER_SHIFT) & PAINT_ORDER_MASK) }
|
unsafe { std::mem::transmute((self.0 >> pos * PAINT_ORDER_SHIFT) & PAINT_ORDER_MASK) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue