Skip to content

Commit

Permalink
Auto merge of #16652 - Gankro:bincode-ipc-5, r=jdm
Browse files Browse the repository at this point in the history
Update to webrender's new bincode IPC

**DO NO MERGE YET**

This is the required update to Servo for my changes to webrender in servo/webrender#1181

<!-- 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/16652)
<!-- Reviewable:end -->
  • Loading branch information
bors-servo committed May 3, 2017
2 parents 3905b5a + f46be5b commit 74c36cb
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
5 changes: 3 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 16 additions & 15 deletions components/layout/webrender_helpers.rs
Expand Up @@ -15,7 +15,8 @@ use msg::constellation_msg::PipelineId;
use style::computed_values::{image_rendering, mix_blend_mode};
use style::computed_values::filter::{self, Filter};
use style::values::computed::BorderStyle;
use webrender_traits::{self, DisplayListBuilder, ExtendMode, LayoutTransform, ClipId};
use webrender_traits::{self, DisplayListBuilder, ExtendMode};
use webrender_traits::{LayoutTransform, ClipId, ClipRegionToken};

pub trait WebRenderDisplayListConverter {
fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder;
Expand Down Expand Up @@ -114,18 +115,18 @@ impl ToRectF for Rect<Au> {
}

trait ToClipRegion {
fn to_clip_region(&self, builder: &mut DisplayListBuilder) -> webrender_traits::ClipRegion;
fn push_clip_region(&self, builder: &mut DisplayListBuilder) -> ClipRegionToken;
}

impl ToClipRegion for ClippingRegion {
fn to_clip_region(&self, builder: &mut DisplayListBuilder) -> webrender_traits::ClipRegion {
builder.new_clip_region(&self.main.to_rectf(),
fn push_clip_region(&self, builder: &mut DisplayListBuilder) -> ClipRegionToken {
builder.push_clip_region(&self.main.to_rectf(),
self.complex.iter().map(|complex_clipping_region| {
webrender_traits::ComplexClipRegion::new(
complex_clipping_region.rect.to_rectf(),
complex_clipping_region.radii.to_border_radius(),
)
}).collect(),
}),
None)
}
}
Expand Down Expand Up @@ -241,7 +242,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
DisplayItem::SolidColor(ref item) => {
let color = item.color;
if color.a > 0.0 {
let clip = item.base.clip.to_clip_region(builder);
let clip = item.base.clip.push_clip_region(builder);
builder.push_rect(item.base.bounds.to_rectf(), clip, color);
}
}
Expand Down Expand Up @@ -272,7 +273,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
}

if glyphs.len() > 0 {
let clip = item.base.clip.to_clip_region(builder);
let clip = item.base.clip.push_clip_region(builder);
builder.push_text(item.base.bounds.to_rectf(),
clip,
&glyphs,
Expand All @@ -287,7 +288,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
if let Some(id) = item.webrender_image.key {
if item.stretch_size.width > Au(0) &&
item.stretch_size.height > Au(0) {
let clip = item.base.clip.to_clip_region(builder);
let clip = item.base.clip.push_clip_region(builder);
builder.push_image(item.base.bounds.to_rectf(),
clip,
item.stretch_size.to_sizef(),
Expand All @@ -298,13 +299,13 @@ impl WebRenderDisplayItemConverter for DisplayItem {
}
}
DisplayItem::WebGL(ref item) => {
let clip = item.base.clip.to_clip_region(builder);
let clip = item.base.clip.push_clip_region(builder);
builder.push_webgl_canvas(item.base.bounds.to_rectf(), clip, item.context_id);
}
DisplayItem::Border(ref item) => {
let rect = item.base.bounds.to_rectf();
let widths = item.border_widths.to_border_widths();
let clip = item.base.clip.to_clip_region(builder);
let clip = item.base.clip.push_clip_region(builder);

let details = match item.details {
BorderDetails::Normal(ref border) => {
Expand Down Expand Up @@ -369,7 +370,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
let rect = item.base.bounds.to_rectf();
let start_point = item.gradient.start_point.to_pointf();
let end_point = item.gradient.end_point.to_pointf();
let clip = item.base.clip.to_clip_region(builder);
let clip = item.base.clip.push_clip_region(builder);
let extend_mode = if item.gradient.repeating {
ExtendMode::Repeat
} else {
Expand All @@ -389,7 +390,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
let rect = item.base.bounds.to_rectf();
let center = item.gradient.center.to_pointf();
let radius = item.gradient.radius.to_sizef();
let clip = item.base.clip.to_clip_region(builder);
let clip = item.base.clip.push_clip_region(builder);
let extend_mode = if item.gradient.repeating {
ExtendMode::Repeat
} else {
Expand All @@ -411,7 +412,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
DisplayItem::BoxShadow(ref item) => {
let rect = item.base.bounds.to_rectf();
let box_bounds = item.box_bounds.to_rectf();
let clip = item.base.clip.to_clip_region(builder);
let clip = item.base.clip.push_clip_region(builder);
builder.push_box_shadow(rect,
clip,
box_bounds,
Expand All @@ -425,7 +426,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
DisplayItem::Iframe(ref item) => {
let rect = item.base.bounds.to_rectf();
let pipeline_id = item.iframe.to_webrender();
let clip = item.base.clip.to_clip_region(builder);
let clip = item.base.clip.push_clip_region(builder);
builder.push_iframe(rect, clip, pipeline_id);
}
DisplayItem::PushStackingContext(ref item) => {
Expand All @@ -452,7 +453,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
builder.push_clip_id(item.scroll_root.parent_id);

let our_id = item.scroll_root.id;
let clip = item.scroll_root.clip.to_clip_region(builder);
let clip = item.scroll_root.clip.push_clip_region(builder);
let content_rect = item.scroll_root.content_rect.to_rectf();
let webrender_id = builder.define_clip(content_rect, clip, Some(our_id));
debug_assert!(our_id == webrender_id);
Expand Down

0 comments on commit 74c36cb

Please sign in to comment.