mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Using TransformStyle::Preserve3D
This commit is contained in:
parent
0388e11db2
commit
d04a64394e
9 changed files with 79 additions and 57 deletions
|
@ -12,7 +12,7 @@ use euclid::{Point2D, Rect, SideOffsets2D, Size2D};
|
|||
use gfx::display_list::{BorderDetails, BorderRadii, BoxShadowClipMode, ClippingRegion};
|
||||
use gfx::display_list::{DisplayItem, DisplayList, DisplayListTraversal, StackingContextType};
|
||||
use msg::constellation_msg::PipelineId;
|
||||
use style::computed_values::{image_rendering, mix_blend_mode};
|
||||
use style::computed_values::{image_rendering, mix_blend_mode, transform_style};
|
||||
use style::computed_values::filter::{self, Filter};
|
||||
use style::values::computed::BorderStyle;
|
||||
use webrender_traits::{self, DisplayListBuilder, ExtendMode};
|
||||
|
@ -146,12 +146,12 @@ impl ToBorderRadius for BorderRadii<Au> {
|
|||
}
|
||||
}
|
||||
|
||||
trait ToBlendMode {
|
||||
fn to_blend_mode(&self) -> webrender_traits::MixBlendMode;
|
||||
pub trait ToMixBlendMode {
|
||||
fn to_mix_blend_mode(&self) -> webrender_traits::MixBlendMode;
|
||||
}
|
||||
|
||||
impl ToBlendMode for mix_blend_mode::T {
|
||||
fn to_blend_mode(&self) -> webrender_traits::MixBlendMode {
|
||||
impl ToMixBlendMode for mix_blend_mode::T {
|
||||
fn to_mix_blend_mode(&self) -> webrender_traits::MixBlendMode {
|
||||
match *self {
|
||||
mix_blend_mode::T::normal => webrender_traits::MixBlendMode::Normal,
|
||||
mix_blend_mode::T::multiply => webrender_traits::MixBlendMode::Multiply,
|
||||
|
@ -211,6 +211,19 @@ impl ToFilterOps for filter::T {
|
|||
}
|
||||
}
|
||||
|
||||
pub trait ToTransformStyle {
|
||||
fn to_transform_style(&self) -> webrender_traits::TransformStyle;
|
||||
}
|
||||
|
||||
impl ToTransformStyle for transform_style::T {
|
||||
fn to_transform_style(&self) -> webrender_traits::TransformStyle {
|
||||
match *self {
|
||||
transform_style::T::auto | transform_style::T::flat => webrender_traits::TransformStyle::Flat,
|
||||
transform_style::T::preserve_3d => webrender_traits::TransformStyle::Preserve3D,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl WebRenderDisplayListConverter for DisplayList {
|
||||
fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder {
|
||||
let traversal = DisplayListTraversal::new(self);
|
||||
|
@ -464,9 +477,9 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
|||
builder.push_stacking_context(stacking_context.scroll_policy,
|
||||
stacking_context.bounds.to_rectf(),
|
||||
transform,
|
||||
webrender_traits::TransformStyle::Flat,
|
||||
stacking_context.transform_style,
|
||||
perspective,
|
||||
stacking_context.blend_mode.to_blend_mode(),
|
||||
stacking_context.mix_blend_mode,
|
||||
stacking_context.filters.to_filter_ops());
|
||||
}
|
||||
DisplayItem::PopStackingContext(_) => builder.pop_stacking_context(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue