mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +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]]
|
[[package]]
|
||||||
name = "webrender"
|
name = "webrender"
|
||||||
version = "0.36.0"
|
version = "0.36.0"
|
||||||
source = "git+https://github.com/servo/webrender#d126ebae1ad960f95791c747537c88181106173f"
|
source = "git+https://github.com/servo/webrender#964df2fa00f330daf4f233669e37133f93113792"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"bincode 1.0.0-alpha6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3222,9 +3222,10 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "webrender_traits"
|
name = "webrender_traits"
|
||||||
version = "0.36.0"
|
version = "0.36.0"
|
||||||
source = "git+https://github.com/servo/webrender#d126ebae1ad960f95791c747537c88181106173f"
|
source = "git+https://github.com/servo/webrender#964df2fa00f330daf4f233669e37133f93113792"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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-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)",
|
"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::{image_rendering, mix_blend_mode};
|
||||||
use style::computed_values::filter::{self, Filter};
|
use style::computed_values::filter::{self, Filter};
|
||||||
use style::values::computed::BorderStyle;
|
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 {
|
pub trait WebRenderDisplayListConverter {
|
||||||
fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder;
|
fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder;
|
||||||
|
@ -114,18 +115,18 @@ impl ToRectF for Rect<Au> {
|
||||||
}
|
}
|
||||||
|
|
||||||
trait ToClipRegion {
|
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 {
|
impl ToClipRegion for ClippingRegion {
|
||||||
fn to_clip_region(&self, builder: &mut DisplayListBuilder) -> webrender_traits::ClipRegion {
|
fn push_clip_region(&self, builder: &mut DisplayListBuilder) -> ClipRegionToken {
|
||||||
builder.new_clip_region(&self.main.to_rectf(),
|
builder.push_clip_region(&self.main.to_rectf(),
|
||||||
self.complex.iter().map(|complex_clipping_region| {
|
self.complex.iter().map(|complex_clipping_region| {
|
||||||
webrender_traits::ComplexClipRegion::new(
|
webrender_traits::ComplexClipRegion::new(
|
||||||
complex_clipping_region.rect.to_rectf(),
|
complex_clipping_region.rect.to_rectf(),
|
||||||
complex_clipping_region.radii.to_border_radius(),
|
complex_clipping_region.radii.to_border_radius(),
|
||||||
)
|
)
|
||||||
}).collect(),
|
}),
|
||||||
None)
|
None)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -241,7 +242,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
DisplayItem::SolidColor(ref item) => {
|
DisplayItem::SolidColor(ref item) => {
|
||||||
let color = item.color;
|
let color = item.color;
|
||||||
if color.a > 0.0 {
|
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);
|
builder.push_rect(item.base.bounds.to_rectf(), clip, color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -272,7 +273,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
if glyphs.len() > 0 {
|
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(),
|
builder.push_text(item.base.bounds.to_rectf(),
|
||||||
clip,
|
clip,
|
||||||
&glyphs,
|
&glyphs,
|
||||||
|
@ -287,7 +288,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
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) {
|
||||||
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(),
|
builder.push_image(item.base.bounds.to_rectf(),
|
||||||
clip,
|
clip,
|
||||||
item.stretch_size.to_sizef(),
|
item.stretch_size.to_sizef(),
|
||||||
|
@ -298,13 +299,13 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DisplayItem::WebGL(ref item) => {
|
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);
|
builder.push_webgl_canvas(item.base.bounds.to_rectf(), clip, item.context_id);
|
||||||
}
|
}
|
||||||
DisplayItem::Border(ref item) => {
|
DisplayItem::Border(ref item) => {
|
||||||
let rect = item.base.bounds.to_rectf();
|
let rect = item.base.bounds.to_rectf();
|
||||||
let widths = item.border_widths.to_border_widths();
|
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 {
|
let details = match item.details {
|
||||||
BorderDetails::Normal(ref border) => {
|
BorderDetails::Normal(ref border) => {
|
||||||
|
@ -369,7 +370,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
let rect = item.base.bounds.to_rectf();
|
let rect = item.base.bounds.to_rectf();
|
||||||
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();
|
||||||
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 {
|
let extend_mode = if item.gradient.repeating {
|
||||||
ExtendMode::Repeat
|
ExtendMode::Repeat
|
||||||
} else {
|
} else {
|
||||||
|
@ -389,7 +390,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
let rect = item.base.bounds.to_rectf();
|
let rect = item.base.bounds.to_rectf();
|
||||||
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();
|
||||||
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 {
|
let extend_mode = if item.gradient.repeating {
|
||||||
ExtendMode::Repeat
|
ExtendMode::Repeat
|
||||||
} else {
|
} else {
|
||||||
|
@ -411,7 +412,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
DisplayItem::BoxShadow(ref item) => {
|
DisplayItem::BoxShadow(ref item) => {
|
||||||
let rect = item.base.bounds.to_rectf();
|
let rect = item.base.bounds.to_rectf();
|
||||||
let box_bounds = item.box_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,
|
builder.push_box_shadow(rect,
|
||||||
clip,
|
clip,
|
||||||
box_bounds,
|
box_bounds,
|
||||||
|
@ -425,7 +426,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
DisplayItem::Iframe(ref item) => {
|
DisplayItem::Iframe(ref item) => {
|
||||||
let rect = item.base.bounds.to_rectf();
|
let rect = item.base.bounds.to_rectf();
|
||||||
let pipeline_id = item.iframe.to_webrender();
|
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);
|
builder.push_iframe(rect, clip, pipeline_id);
|
||||||
}
|
}
|
||||||
DisplayItem::PushStackingContext(ref item) => {
|
DisplayItem::PushStackingContext(ref item) => {
|
||||||
|
@ -452,7 +453,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
builder.push_clip_id(item.scroll_root.parent_id);
|
builder.push_clip_id(item.scroll_root.parent_id);
|
||||||
|
|
||||||
let our_id = item.scroll_root.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 content_rect = item.scroll_root.content_rect.to_rectf();
|
||||||
let webrender_id = builder.define_clip(content_rect, clip, Some(our_id));
|
let webrender_id = builder.define_clip(content_rect, clip, Some(our_id));
|
||||||
debug_assert!(our_id == webrender_id);
|
debug_assert!(our_id == webrender_id);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue