mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Auto merge of #16652 - Gankro:bincode-ipc-5, r=jdm
Update to webrender's new bincode IPC **DO NO MERGE YET** This is the required update to Servo for my changes to webrender in https://github.com/servo/webrender/pull/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 -->
This commit is contained in:
commit
74c36cb35d
2 changed files with 19 additions and 17 deletions
5
Cargo.lock
generated
5
Cargo.lock
generated
|
@ -3193,7 +3193,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "webrender"
|
||||
version = "0.36.0"
|
||||
source = "git+https://github.com/servo/webrender#d126ebae1ad960f95791c747537c88181106173f"
|
||||
source = "git+https://github.com/servo/webrender#964df2fa00f330daf4f233669e37133f93113792"
|
||||
dependencies = [
|
||||
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bincode 1.0.0-alpha6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -3222,9 +3222,10 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "webrender_traits"
|
||||
version = "0.36.0"
|
||||
source = "git+https://github.com/servo/webrender#d126ebae1ad960f95791c747537c88181106173f"
|
||||
source = "git+https://github.com/servo/webrender#964df2fa00f330daf4f233669e37133f93113792"
|
||||
dependencies = [
|
||||
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bincode 1.0.0-alpha6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
|
|
@ -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;
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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(),
|
||||
|
@ -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) => {
|
||||
|
@ -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 {
|
||||
|
@ -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 {
|
||||
|
@ -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,
|
||||
|
@ -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) => {
|
||||
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue