Auto merge of #19681 - pyfisch:rustfmt-display-lists, r=emilio

Format parts of layout

Formats the following files:
* components/layout/display_list_builder.rs
* components/layout/webrender_helpers.rs

Remove outdated options from rustfmt.toml.
Configure rustfmt to place binary operators
at the end of line (to match ./mach test-tidy).

Rationale: I am tired of indenting my patches by hand trying my best to do it correctly and match the surrounding code. Just to be told that either my indentation is wrong or that I should switch to block indentation for this function because it looks better.

The new formatting passes `./mach test-tidy`. Compared to the old formatting it is a lot more consistent but also tends to spread the code across more lines. The diff is this big because a lot of code used visual indentation.

See also #8553

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19681)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-01-03 19:49:02 -06:00 committed by GitHub
commit 3692f13dcb
3 changed files with 1562 additions and 1143 deletions

File diff suppressed because it is too large Load diff

View file

@ -8,7 +8,7 @@
// completely converting layout to directly generate WebRender display lists, for example. // completely converting layout to directly generate WebRender display lists, for example.
use app_units::Au; use app_units::Au;
use euclid::{Point2D, Vector2D, Rect, SideOffsets2D, Size2D}; use euclid::{Point2D, Rect, SideOffsets2D, Size2D, Vector2D};
use gfx::display_list::{BorderDetails, BorderRadii, BoxShadowClipMode, ClipScrollNode}; use gfx::display_list::{BorderDetails, BorderRadii, BoxShadowClipMode, ClipScrollNode};
use gfx::display_list::{ClipScrollNodeIndex, ClipScrollNodeType, ClippingRegion, DisplayItem}; use gfx::display_list::{ClipScrollNodeIndex, ClipScrollNodeType, ClippingRegion, DisplayItem};
use gfx::display_list::{DisplayList, StackingContextType}; use gfx::display_list::{DisplayList, StackingContextType};
@ -32,7 +32,7 @@ trait WebRenderDisplayItemConverter {
builder: &mut DisplayListBuilder, builder: &mut DisplayListBuilder,
clip_scroll_nodes: &[ClipScrollNode], clip_scroll_nodes: &[ClipScrollNode],
clip_ids: &mut Vec<Option<ClipId>>, clip_ids: &mut Vec<Option<ClipId>>,
current_clip_and_scroll_info: &mut ClipAndScrollInfo current_clip_and_scroll_info: &mut ClipAndScrollInfo,
); );
} }
@ -196,17 +196,33 @@ impl ToFilterOps for Vec<Filter> {
let mut result = Vec::with_capacity(self.len()); let mut result = Vec::with_capacity(self.len());
for filter in self.iter() { for filter in self.iter() {
match *filter { match *filter {
GenericFilter::Blur(radius) => result.push(webrender_api::FilterOp::Blur(radius.px())), GenericFilter::Blur(radius) => {
GenericFilter::Brightness(amount) => result.push(webrender_api::FilterOp::Brightness(amount.0)), result.push(webrender_api::FilterOp::Blur(radius.px()))
GenericFilter::Contrast(amount) => result.push(webrender_api::FilterOp::Contrast(amount.0)), },
GenericFilter::Grayscale(amount) => result.push(webrender_api::FilterOp::Grayscale(amount.0)), GenericFilter::Brightness(amount) => {
GenericFilter::HueRotate(angle) => result.push(webrender_api::FilterOp::HueRotate(angle.radians())), result.push(webrender_api::FilterOp::Brightness(amount.0))
GenericFilter::Invert(amount) => result.push(webrender_api::FilterOp::Invert(amount.0)), },
GenericFilter::Contrast(amount) => {
result.push(webrender_api::FilterOp::Contrast(amount.0))
},
GenericFilter::Grayscale(amount) => {
result.push(webrender_api::FilterOp::Grayscale(amount.0))
},
GenericFilter::HueRotate(angle) => {
result.push(webrender_api::FilterOp::HueRotate(angle.radians()))
},
GenericFilter::Invert(amount) => {
result.push(webrender_api::FilterOp::Invert(amount.0))
},
GenericFilter::Opacity(amount) => { GenericFilter::Opacity(amount) => {
result.push(webrender_api::FilterOp::Opacity(amount.0.into(), amount.0)); result.push(webrender_api::FilterOp::Opacity(amount.0.into(), amount.0));
} },
GenericFilter::Saturate(amount) => result.push(webrender_api::FilterOp::Saturate(amount.0)), GenericFilter::Saturate(amount) => {
GenericFilter::Sepia(amount) => result.push(webrender_api::FilterOp::Sepia(amount.0)), result.push(webrender_api::FilterOp::Saturate(amount.0))
},
GenericFilter::Sepia(amount) => {
result.push(webrender_api::FilterOp::Sepia(amount.0))
},
GenericFilter::DropShadow(ref shadow) => match *shadow {}, GenericFilter::DropShadow(ref shadow) => match *shadow {},
} }
} }
@ -229,9 +245,11 @@ impl ToTransformStyle for TransformStyle {
impl WebRenderDisplayListConverter for DisplayList { impl WebRenderDisplayListConverter for DisplayList {
fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder { fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder {
let mut builder = DisplayListBuilder::with_capacity(pipeline_id.to_webrender(), let mut builder = DisplayListBuilder::with_capacity(
self.bounds().size.to_sizef(), pipeline_id.to_webrender(),
1024 * 1024); // 1 MB of space self.bounds().size.to_sizef(),
1024 * 1024,
); // 1 MB of space
let mut current_clip_and_scroll_info = pipeline_id.root_clip_and_scroll_info(); let mut current_clip_and_scroll_info = pipeline_id.root_clip_and_scroll_info();
builder.push_clip_and_scroll_info(current_clip_and_scroll_info); builder.push_clip_and_scroll_info(current_clip_and_scroll_info);
@ -245,7 +263,7 @@ impl WebRenderDisplayListConverter for DisplayList {
&mut builder, &mut builder,
&self.clip_scroll_nodes, &self.clip_scroll_nodes,
&mut clip_ids, &mut clip_ids,
&mut current_clip_and_scroll_info &mut current_clip_and_scroll_info,
); );
} }
builder builder
@ -272,7 +290,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
builder: &mut DisplayListBuilder, builder: &mut DisplayListBuilder,
clip_scroll_nodes: &[ClipScrollNode], clip_scroll_nodes: &[ClipScrollNode],
clip_ids: &mut Vec<Option<ClipId>>, clip_ids: &mut Vec<Option<ClipId>>,
current_clip_and_scroll_info: &mut ClipAndScrollInfo current_clip_and_scroll_info: &mut ClipAndScrollInfo,
) { ) {
let get_id = |clip_ids: &[Option<ClipId>], index: ClipScrollNodeIndex| -> ClipId { let get_id = |clip_ids: &[Option<ClipId>], index: ClipScrollNodeIndex| -> ClipId {
match clip_ids[index.0] { match clip_ids[index.0] {
@ -297,12 +315,14 @@ impl WebRenderDisplayItemConverter for DisplayItem {
match *self { match *self {
DisplayItem::SolidColor(ref item) => { DisplayItem::SolidColor(ref item) => {
builder.push_rect(&self.prim_info(), item.color); builder.push_rect(&self.prim_info(), item.color);
} },
DisplayItem::Text(ref item) => { DisplayItem::Text(ref item) => {
let mut origin = item.baseline_origin.clone(); let mut origin = item.baseline_origin.clone();
let mut glyphs = vec!(); let mut glyphs = vec![];
for slice in item.text_run.natural_word_slices_in_visual_order(&item.range) { for slice in item.text_run
.natural_word_slices_in_visual_order(&item.range)
{
for glyph in slice.glyphs.iter_glyphs_for_byte_range(&slice.range) { for glyph in slice.glyphs.iter_glyphs_for_byte_range(&slice.range) {
let glyph_advance = if glyph.char_is_space() { let glyph_advance = if glyph.char_is_space() {
glyph.advance() + item.text_run.extra_word_spacing glyph.advance() + item.text_run.extra_word_spacing
@ -321,29 +341,32 @@ impl WebRenderDisplayItemConverter for DisplayItem {
glyphs.push(glyph); glyphs.push(glyph);
} }
origin.x = origin.x + glyph_advance; origin.x = origin.x + glyph_advance;
}; }
} }
if glyphs.len() > 0 { if glyphs.len() > 0 {
builder.push_text(&self.prim_info(), builder.push_text(
&glyphs, &self.prim_info(),
item.text_run.font_key, &glyphs,
item.text_color, item.text_run.font_key,
None); item.text_color,
None,
);
} }
} },
DisplayItem::Image(ref item) => { DisplayItem::Image(ref item) => {
if let Some(id) = item.webrender_image.key { if let Some(id) = item.webrender_image.key {
if item.stretch_size.width > Au(0) && if item.stretch_size.width > Au(0) && item.stretch_size.height > Au(0) {
item.stretch_size.height > Au(0) { builder.push_image(
builder.push_image(&self.prim_info(), &self.prim_info(),
item.stretch_size.to_sizef(), item.stretch_size.to_sizef(),
item.tile_spacing.to_sizef(), item.tile_spacing.to_sizef(),
item.image_rendering.to_image_rendering(), item.image_rendering.to_image_rendering(),
id); id,
);
} }
} }
} },
DisplayItem::Border(ref item) => { DisplayItem::Border(ref item) => {
let widths = item.border_widths.to_border_widths(); let widths = item.border_widths.to_border_widths();
@ -373,26 +396,24 @@ impl WebRenderDisplayItemConverter for DisplayItem {
bottom: bottom, bottom: bottom,
radius: radius, radius: radius,
}) })
} },
BorderDetails::Image(ref image) => { BorderDetails::Image(ref image) => match image.image.key {
match image.image.key { None => return,
None => return, Some(key) => {
Some(key) => { webrender_api::BorderDetails::Image(webrender_api::ImageBorder {
webrender_api::BorderDetails::Image(webrender_api::ImageBorder { image_key: key,
image_key: key, patch: webrender_api::NinePatchDescriptor {
patch: webrender_api::NinePatchDescriptor { width: image.image.width,
width: image.image.width, height: image.image.height,
height: image.image.height, slice: image.slice,
slice: image.slice, },
}, fill: image.fill,
fill: image.fill, outset: image.outset,
outset: image.outset, repeat_horizontal: image.repeat_horizontal,
repeat_horizontal: image.repeat_horizontal, repeat_vertical: image.repeat_vertical,
repeat_vertical: image.repeat_vertical, })
}) },
} },
}
}
BorderDetails::Gradient(ref gradient) => { BorderDetails::Gradient(ref gradient) => {
let extend_mode = if gradient.gradient.repeating { let extend_mode = if gradient.gradient.repeating {
ExtendMode::Repeat ExtendMode::Repeat
@ -401,32 +422,36 @@ impl WebRenderDisplayItemConverter for DisplayItem {
}; };
webrender_api::BorderDetails::Gradient(webrender_api::GradientBorder { webrender_api::BorderDetails::Gradient(webrender_api::GradientBorder {
gradient: builder.create_gradient( gradient: builder.create_gradient(
gradient.gradient.start_point.to_pointf(), gradient.gradient.start_point.to_pointf(),
gradient.gradient.end_point.to_pointf(), gradient.gradient.end_point.to_pointf(),
gradient.gradient.stops.clone(), gradient.gradient.stops.clone(),
extend_mode), extend_mode,
),
outset: gradient.outset, outset: gradient.outset,
}) })
} },
BorderDetails::RadialGradient(ref gradient) => { BorderDetails::RadialGradient(ref gradient) => {
let extend_mode = if gradient.gradient.repeating { let extend_mode = if gradient.gradient.repeating {
ExtendMode::Repeat ExtendMode::Repeat
} else { } else {
ExtendMode::Clamp ExtendMode::Clamp
}; };
webrender_api::BorderDetails::RadialGradient(webrender_api::RadialGradientBorder { webrender_api::BorderDetails::RadialGradient(
gradient: builder.create_radial_gradient( webrender_api::RadialGradientBorder {
gradient.gradient.center.to_pointf(), gradient: builder.create_radial_gradient(
gradient.gradient.radius.to_sizef(), gradient.gradient.center.to_pointf(),
gradient.gradient.stops.clone(), gradient.gradient.radius.to_sizef(),
extend_mode), gradient.gradient.stops.clone(),
outset: gradient.outset, extend_mode,
}) ),
} outset: gradient.outset,
},
)
},
}; };
builder.push_border(&self.prim_info(), widths, details); builder.push_border(&self.prim_info(), widths, details);
} },
DisplayItem::Gradient(ref item) => { DisplayItem::Gradient(ref item) => {
let start_point = item.gradient.start_point.to_pointf(); let start_point = item.gradient.start_point.to_pointf();
let end_point = item.gradient.end_point.to_pointf(); let end_point = item.gradient.end_point.to_pointf();
@ -435,15 +460,19 @@ impl WebRenderDisplayItemConverter for DisplayItem {
} else { } else {
ExtendMode::Clamp ExtendMode::Clamp
}; };
let gradient = builder.create_gradient(start_point, let gradient = builder.create_gradient(
end_point, start_point,
item.gradient.stops.clone(), end_point,
extend_mode); item.gradient.stops.clone(),
builder.push_gradient(&self.prim_info(), extend_mode,
gradient, );
item.tile.to_sizef(), builder.push_gradient(
item.tile_spacing.to_sizef()); &self.prim_info(),
} gradient,
item.tile.to_sizef(),
item.tile_spacing.to_sizef(),
);
},
DisplayItem::RadialGradient(ref item) => { DisplayItem::RadialGradient(ref item) => {
let center = item.gradient.center.to_pointf(); let center = item.gradient.center.to_pointf();
let radius = item.gradient.radius.to_sizef(); let radius = item.gradient.radius.to_sizef();
@ -452,58 +481,68 @@ impl WebRenderDisplayItemConverter for DisplayItem {
} else { } else {
ExtendMode::Clamp ExtendMode::Clamp
}; };
let gradient = builder.create_radial_gradient(center, let gradient = builder.create_radial_gradient(
radius, center,
item.gradient.stops.clone(), radius,
extend_mode); item.gradient.stops.clone(),
builder.push_radial_gradient(&self.prim_info(), extend_mode,
gradient, );
item.tile.to_sizef(), builder.push_radial_gradient(
item.tile_spacing.to_sizef()); &self.prim_info(),
} gradient,
item.tile.to_sizef(),
item.tile_spacing.to_sizef(),
);
},
DisplayItem::Line(ref item) => { DisplayItem::Line(ref item) => {
builder.push_line(&self.prim_info(), builder.push_line(
// TODO(gw): Use a better estimate for wavy line thickness. &self.prim_info(),
(0.33 * item.base.bounds.size.height.to_f32_px()).ceil(), // TODO(gw): Use a better estimate for wavy line thickness.
webrender_api::LineOrientation::Horizontal, (0.33 * item.base.bounds.size.height.to_f32_px()).ceil(),
&item.color, webrender_api::LineOrientation::Horizontal,
item.style); &item.color,
} item.style,
);
},
DisplayItem::BoxShadow(ref item) => { DisplayItem::BoxShadow(ref item) => {
let box_bounds = item.box_bounds.to_rectf(); let box_bounds = item.box_bounds.to_rectf();
builder.push_box_shadow(&self.prim_info(), builder.push_box_shadow(
box_bounds, &self.prim_info(),
item.offset.to_vectorf(), box_bounds,
item.color, item.offset.to_vectorf(),
item.blur_radius.to_f32_px(), item.color,
item.spread_radius.to_f32_px(), item.blur_radius.to_f32_px(),
item.border_radius.to_border_radius(), item.spread_radius.to_f32_px(),
item.clip_mode.to_clip_mode()); item.border_radius.to_border_radius(),
} item.clip_mode.to_clip_mode(),
);
},
DisplayItem::PushTextShadow(ref item) => { DisplayItem::PushTextShadow(ref item) => {
builder.push_shadow(&self.prim_info(), builder.push_shadow(
webrender_api::Shadow { &self.prim_info(),
blur_radius: item.blur_radius.to_f32_px(), webrender_api::Shadow {
offset: item.offset.to_vectorf(), blur_radius: item.blur_radius.to_f32_px(),
color: item.color, offset: item.offset.to_vectorf(),
}); color: item.color,
} },
);
},
DisplayItem::PopAllTextShadows(_) => { DisplayItem::PopAllTextShadows(_) => {
builder.pop_all_shadows(); builder.pop_all_shadows();
} },
DisplayItem::Iframe(ref item) => { DisplayItem::Iframe(ref item) => {
builder.push_iframe(&self.prim_info(), item.iframe.to_webrender()); builder.push_iframe(&self.prim_info(), item.iframe.to_webrender());
} },
DisplayItem::PushStackingContext(ref item) => { DisplayItem::PushStackingContext(ref item) => {
let stacking_context = &item.stacking_context; let stacking_context = &item.stacking_context;
debug_assert!(stacking_context.context_type == StackingContextType::Real); debug_assert!(stacking_context.context_type == StackingContextType::Real);
let transform = stacking_context.transform.map(|transform| { let transform = stacking_context
LayoutTransform::from_untyped(&transform).into() .transform
}); .map(|transform| LayoutTransform::from_untyped(&transform).into());
let perspective = stacking_context.perspective.map(|perspective| { let perspective = stacking_context
LayoutTransform::from_untyped(&perspective) .perspective
}); .map(|perspective| LayoutTransform::from_untyped(&perspective));
builder.push_stacking_context( builder.push_stacking_context(
&webrender_api::LayoutPrimitiveInfo::new(stacking_context.bounds.to_rectf()), &webrender_api::LayoutPrimitiveInfo::new(stacking_context.bounds.to_rectf()),
@ -512,9 +551,9 @@ impl WebRenderDisplayItemConverter for DisplayItem {
stacking_context.transform_style, stacking_context.transform_style,
perspective, perspective,
stacking_context.mix_blend_mode, stacking_context.mix_blend_mode,
stacking_context.filters.to_filter_ops() stacking_context.filters.to_filter_ops(),
); );
} },
DisplayItem::PopStackingContext(_) => builder.pop_stacking_context(), DisplayItem::PopStackingContext(_) => builder.pop_stacking_context(),
DisplayItem::DefineClipScrollNode(ref item) => { DisplayItem::DefineClipScrollNode(ref item) => {
let node = &clip_scroll_nodes[item.node_index.0]; let node = &clip_scroll_nodes[item.node_index.0];
@ -522,26 +561,23 @@ impl WebRenderDisplayItemConverter for DisplayItem {
let item_rect = node.clip.main.to_rectf(); let item_rect = node.clip.main.to_rectf();
let webrender_id = match node.node_type { let webrender_id = match node.node_type {
ClipScrollNodeType::Clip => { ClipScrollNodeType::Clip => builder.define_clip_with_parent(
builder.define_clip_with_parent( node.id,
node.id, parent_id,
parent_id, item_rect,
item_rect, node.clip.get_complex_clips(),
node.clip.get_complex_clips(), None,
None ),
) ClipScrollNodeType::ScrollFrame(scroll_sensitivity) => builder
} .define_scroll_frame_with_parent(
ClipScrollNodeType::ScrollFrame(scroll_sensitivity) => {
builder.define_scroll_frame_with_parent(
node.id, node.id,
parent_id, parent_id,
node.content_rect.to_rectf(), node.content_rect.to_rectf(),
node.clip.main.to_rectf(), node.clip.main.to_rectf(),
node.clip.get_complex_clips(), node.clip.get_complex_clips(),
None, None,
scroll_sensitivity scroll_sensitivity,
) ),
}
ClipScrollNodeType::StickyFrame(ref sticky_data) => { ClipScrollNodeType::StickyFrame(ref sticky_data) => {
// TODO: Add define_sticky_frame_with_parent to WebRender. // TODO: Add define_sticky_frame_with_parent to WebRender.
builder.push_clip_id(parent_id); builder.push_clip_id(parent_id);
@ -555,12 +591,12 @@ impl WebRenderDisplayItemConverter for DisplayItem {
); );
builder.pop_clip_id(); builder.pop_clip_id();
id id
} },
}; };
debug_assert!(node.id.is_none() || node.id == Some(webrender_id)); debug_assert!(node.id.is_none() || node.id == Some(webrender_id));
clip_ids[item.node_index.0] = Some(webrender_id); clip_ids[item.node_index.0] = Some(webrender_id);
} },
} }
} }
} }
@ -571,12 +607,15 @@ trait ToWebRenderClip {
impl ToWebRenderClip for ClippingRegion { impl ToWebRenderClip for ClippingRegion {
fn get_complex_clips(&self) -> Vec<ComplexClipRegion> { fn get_complex_clips(&self) -> Vec<ComplexClipRegion> {
self.complex.iter().map(|complex_clipping_region| { self.complex
ComplexClipRegion::new( .iter()
complex_clipping_region.rect.to_rectf(), .map(|complex_clipping_region| {
complex_clipping_region.radii.to_border_radius(), ComplexClipRegion::new(
ClipMode::Clip, complex_clipping_region.rect.to_rectf(),
) complex_clipping_region.radii.to_border_radius(),
}).collect() ClipMode::Clip,
)
})
.collect()
} }
} }

View file

@ -1,7 +1,2 @@
ideal_width = 80
match_block_trailing_comma = true match_block_trailing_comma = true
max_width = 120 binop_separator = "Back"
newline_style = "Unix"
normalize_comments = false
struct_lit_multiline_style = "ForceMulti"
where_trailing_comma = true