Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to webrender 0.10.0 #14286

Merged
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

@@ -17,7 +17,7 @@ gleam = "0.2.8"
ipc-channel = "0.5"
log = "0.3.5"
num-traits = "0.1.32"
offscreen_gl_context = "0.4"
offscreen_gl_context = "0.5.0"
plugins = {path = "../plugins"}
util = {path = "../util"}

@@ -23,4 +23,4 @@ serde_derive = "0.8"
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]
@@ -36,4 +36,4 @@ features = ["serde_derive"]
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]
@@ -25,7 +25,7 @@ layout_traits = {path = "../layout_traits"}
log = "0.3.5"
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
offscreen_gl_context = "0.4"
offscreen_gl_context = "0.5.0"
plugins = {path = "../plugins"}
profile_traits = {path = "../profile_traits"}
rand = "0.3"
@@ -39,7 +39,7 @@ util = {path = "../util"}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]

[target.'cfg(not(target_os = "windows"))'.dependencies]
gaol = {git = "https://github.com/servo/gaol"}
@@ -45,7 +45,7 @@ xi-unicode = "0.0.1"
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]

[target.'cfg(target_os = "macos")'.dependencies]
byteorder = "0.5"
@@ -61,4 +61,4 @@ servo-fontconfig = "0.2.1"
simd = {git = "https://github.com/huonw/simd"}

[target.'cfg(target_os = "windows")'.dependencies]
dwrote = {git = "https://github.com/vvuk/dwrote-rs"}
dwrote = "0.1.1"
@@ -50,4 +50,4 @@ util = {path = "../util"}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]
@@ -8,10 +8,10 @@
// completely converting layout to directly generate WebRender display lists, for example.

use app_units::Au;
use euclid::{Matrix4D, Point2D, Rect, Size2D, TypedRect};
use euclid::{Point2D, Rect, Size2D};
use gfx::display_list::{BorderRadii, BoxShadowClipMode, ClippingRegion};
use gfx::display_list::{DisplayItem, DisplayList, DisplayListTraversal, StackingContextType};
use gfx_traits::{FragmentType, ScrollPolicy, StackingContextId, ScrollRootId};
use gfx_traits::{FragmentType, ScrollPolicy, ScrollRootId};
use style::computed_values::{image_rendering, mix_blend_mode};
use style::computed_values::filter::{self, Filter};
use style::values::computed::BorderStyle;
@@ -346,22 +346,14 @@ impl WebRenderDisplayItemConverter for DisplayItem {
ScrollPolicy::FixedPosition => webrender_traits::ScrollPolicy::Fixed,
};

let scroll_layer_id = if stacking_context.id == StackingContextId::root() {
Some(frame_builder.next_scroll_layer_id(ScrollRootId::root()))
} else {
None
};

let context =
webrender_traits::StackingContext::new(
scroll_layer_id,
webrender_scroll_policy,
stacking_context.bounds.to_rectf(),
stacking_context.overflow.to_rectf(),
stacking_context.z_index,
&stacking_context.transform,
&stacking_context.perspective,
stacking_context.establishes_3d_context,
stacking_context.blend_mode.to_blend_mode(),
stacking_context.filters.to_filter_ops(),
&mut frame_builder.auxiliary_lists_builder);
@@ -370,22 +362,11 @@ impl WebRenderDisplayItemConverter for DisplayItem {
}
DisplayItem::PopStackingContext(_) => builder.pop_stacking_context(),
DisplayItem::PushScrollRoot(ref item) => {
let overflow = TypedRect::new(Point2D::zero(), item.scroll_root.size);
let context = webrender_traits::StackingContext::new(
Some(frame_builder.next_scroll_layer_id(item.scroll_root.id)),
webrender_traits::ScrollPolicy::Scrollable,
item.scroll_root.clip.to_rectf(),
overflow.to_rectf(),
0,
&Matrix4D::identity(),
&Matrix4D::identity(),
true,
mix_blend_mode::T::normal.to_blend_mode(),
filter::T::new(Vec::new()).to_filter_ops(),
&mut frame_builder.auxiliary_lists_builder);
builder.push_stacking_context(context);
builder.push_scroll_layer(item.scroll_root.clip.to_rectf(),
item.scroll_root.size.to_sizef(),
frame_builder.next_scroll_layer_id(item.scroll_root.id));
}
DisplayItem::PopScrollRoot(_) => builder.pop_stacking_context(),
DisplayItem::PopScrollRoot(_) => builder.pop_scroll_layer(),
}
}
}
@@ -42,4 +42,4 @@ util = {path = "../util"}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]
@@ -21,4 +21,4 @@ servo_url = {path = "../url"}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]
@@ -21,4 +21,4 @@ serde_derive = "0.8"
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]
@@ -47,7 +47,7 @@ websocket = "0.17"
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]

[target.'cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))'.dependencies]
tinyfiledialogs = {git = "https://github.com/jdm/tinyfiledialogs"}
@@ -323,11 +323,12 @@ fn get_placeholder_image(webrender_api: &webrender_traits::RenderApi) -> io::Res
let format = convert_format(image.format);
let mut bytes = Vec::new();
bytes.extend_from_slice(&*image.bytes);
let data = webrender_traits::ImageData::new(bytes);
image.id = Some(webrender_api.add_image(image.width,
image.height,
None,
format,
bytes));
data));
Ok(Arc::new(image))
}

@@ -482,11 +483,12 @@ impl ImageCache {
let format = convert_format(image.format);
let mut bytes = Vec::new();
bytes.extend_from_slice(&*image.bytes);
let data = webrender_traits::ImageData::new(bytes);
image.id = Some(self.webrender_api.add_image(image.width,
image.height,
None,
format,
bytes));
data));
}
LoadResult::PlaceholderLoaded(..) | LoadResult::None => {}
}
@@ -33,4 +33,4 @@ cookie = {version = "0.2.5", features = ["serialize-rustc"]}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["serde_derive"]
features = ["serde_derive", "ipc"]
@@ -52,7 +52,7 @@ mime_guess = "1.8.0"
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
num-traits = "0.1.32"
offscreen_gl_context = "0.4"
offscreen_gl_context = "0.5.0"
open = "1.1.1"
parking_lot = "0.3"
phf = "0.7.18"
@@ -83,4 +83,4 @@ xml5ever = {version = "0.2", features = ["unstable"]}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
default_features = false
features = ["nightly", "serde_derive"]
features = ["nightly", "serde_derive", "ipc"]
@@ -9,8 +9,9 @@ use dom::bindings::js::Root;
use dom::bindings::reflector::reflect_dom_object;
use dom::globalscope::GlobalScope;
use dom::webglobject::WebGLObject;
use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::ipc::IpcSender;
use std::cell::Cell;
use webrender_traits;
use webrender_traits::{WebGLBufferId, WebGLCommand, WebGLError, WebGLResult};

#[dom_struct]
@@ -41,7 +42,7 @@ impl WebGLBuffer {

pub fn maybe_new(global: &GlobalScope, renderer: IpcSender<CanvasMsg>)
-> Option<Root<WebGLBuffer>> {
let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateBuffer(sender))).unwrap();

let result = receiver.recv().unwrap();
@@ -13,8 +13,9 @@ use dom::globalscope::GlobalScope;
use dom::webglobject::WebGLObject;
use dom::webglrenderbuffer::WebGLRenderbuffer;
use dom::webgltexture::WebGLTexture;
use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::ipc::IpcSender;
use std::cell::Cell;
use webrender_traits;
use webrender_traits::{WebGLCommand, WebGLFramebufferBindingRequest, WebGLFramebufferId, WebGLResult, WebGLError};

#[must_root]
@@ -67,7 +68,7 @@ impl WebGLFramebuffer {

pub fn maybe_new(global: &GlobalScope, renderer: IpcSender<CanvasMsg>)
-> Option<Root<WebGLFramebuffer>> {
let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateFramebuffer(sender))).unwrap();

let result = receiver.recv().unwrap();
@@ -14,8 +14,9 @@ use dom::webglactiveinfo::WebGLActiveInfo;
use dom::webglobject::WebGLObject;
use dom::webglrenderingcontext::MAX_UNIFORM_AND_ATTRIBUTE_LEN;
use dom::webglshader::WebGLShader;
use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::ipc::IpcSender;
use std::cell::Cell;
use webrender_traits;
use webrender_traits::{WebGLCommand, WebGLError, WebGLParameter};
use webrender_traits::{WebGLProgramId, WebGLResult};

@@ -50,7 +51,7 @@ impl WebGLProgram {

pub fn maybe_new(global: &GlobalScope, renderer: IpcSender<CanvasMsg>)
-> Option<Root<WebGLProgram>> {
let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateProgram(sender))).unwrap();

let result = receiver.recv().unwrap();
@@ -224,7 +225,7 @@ impl WebGLProgram {
if self.is_deleted() {
return Err(WebGLError::InvalidValue);
}
let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
self.renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetActiveUniform(self.id, index, sender)))
.unwrap();
@@ -238,7 +239,7 @@ impl WebGLProgram {
if self.is_deleted() {
return Err(WebGLError::InvalidValue);
}
let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
self.renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetActiveAttrib(self.id, index, sender)))
.unwrap();
@@ -265,7 +266,7 @@ impl WebGLProgram {
return Ok(None);
}

let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
self.renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetAttribLocation(self.id, String::from(name), sender)))
.unwrap();
@@ -286,7 +287,7 @@ impl WebGLProgram {
return Ok(None);
}

let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
self.renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetUniformLocation(self.id, String::from(name), sender)))
.unwrap();
@@ -307,14 +308,14 @@ impl WebGLProgram {
return Ok("One or more shaders failed to compile".to_string());
}
}
let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetProgramInfoLog(self.id, sender))).unwrap();
Ok(receiver.recv().unwrap())
}

/// glGetProgramParameter
pub fn parameter(&self, param_id: u32) -> WebGLResult<WebGLParameter> {
let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetProgramParameter(self.id, param_id, sender))).unwrap();
receiver.recv().unwrap()
}
@@ -10,8 +10,9 @@ use dom::bindings::js::Root;
use dom::bindings::reflector::reflect_dom_object;
use dom::globalscope::GlobalScope;
use dom::webglobject::WebGLObject;
use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::ipc::IpcSender;
use std::cell::Cell;
use webrender_traits;
use webrender_traits::{WebGLCommand, WebGLRenderbufferId, WebGLResult, WebGLError};

#[dom_struct]
@@ -43,7 +44,7 @@ impl WebGLRenderbuffer {

pub fn maybe_new(global: &GlobalScope, renderer: IpcSender<CanvasMsg>)
-> Option<Root<WebGLRenderbuffer>> {
let (sender, receiver) = ipc::channel().unwrap();
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateRenderbuffer(sender))).unwrap();

let result = receiver.recv().unwrap();
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.