Update to euclid 0.8

This commit is contained in:
Martin Robinson 2016-08-11 00:29:19 +02:00 committed by Anthony Ramine
parent b7facf41cb
commit 6259df5e2d
56 changed files with 538 additions and 558 deletions

View file

@ -12,13 +12,13 @@ path = "lib.rs"
[dependencies] [dependencies]
azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]} azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]}
canvas_traits = {path = "../canvas_traits"} canvas_traits = {path = "../canvas_traits"}
euclid = "0.7.1" euclid = "0.8.2"
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}
gleam = "0.2.8" gleam = "0.2.8"
ipc-channel = "0.4.0" ipc-channel = "0.4.0"
log = "0.3.5" log = "0.3.5"
num-traits = "0.1.32" num-traits = "0.1.32"
offscreen_gl_context = "0.1.2" offscreen_gl_context = "0.2.0"
plugins = {path = "../plugins"} plugins = {path = "../plugins"}
util = {path = "../util"} util = {path = "../util"}

View file

@ -520,7 +520,7 @@ impl<'a> CanvasPaintThread<'a> {
} }
fn set_transform(&mut self, transform: &Matrix2D<f32>) { fn set_transform(&mut self, transform: &Matrix2D<f32>) {
self.state.transform = *transform; self.state.transform = transform.clone();
self.drawtarget.set_transform(transform) self.drawtarget.set_transform(transform)
} }

View file

@ -12,7 +12,7 @@ path = "lib.rs"
[dependencies] [dependencies]
azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]} azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]}
cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]} cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]}
euclid = "0.7.1" euclid = "0.8.2"
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}
heapsize = "0.3.0" heapsize = "0.3.0"
heapsize_plugin = "0.1.2" heapsize_plugin = "0.1.2"

View file

@ -12,7 +12,7 @@ path = "lib.rs"
[dependencies] [dependencies]
app_units = "0.2.5" app_units = "0.2.5"
azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]} azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]}
euclid = "0.7.1" euclid = "0.8.2"
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}
gleam = "0.2.8" gleam = "0.2.8"
image = "0.10" image = "0.10"

View file

@ -153,24 +153,24 @@ pub struct IOCompositor<Window: WindowMethods> {
scene: Scene<CompositorData>, scene: Scene<CompositorData>,
/// The application window size. /// The application window size.
window_size: TypedSize2D<DevicePixel, u32>, window_size: TypedSize2D<u32, DevicePixel>,
/// The overridden viewport. /// The overridden viewport.
viewport: Option<(TypedPoint2D<DevicePixel, u32>, TypedSize2D<DevicePixel, u32>)>, viewport: Option<(TypedPoint2D<u32, DevicePixel>, TypedSize2D<u32, DevicePixel>)>,
/// "Mobile-style" zoom that does not reflow the page. /// "Mobile-style" zoom that does not reflow the page.
viewport_zoom: ScaleFactor<PagePx, ViewportPx, f32>, viewport_zoom: ScaleFactor<f32, PagePx, ViewportPx>,
/// Viewport zoom constraints provided by @viewport. /// Viewport zoom constraints provided by @viewport.
min_viewport_zoom: Option<ScaleFactor<PagePx, ViewportPx, f32>>, min_viewport_zoom: Option<ScaleFactor<f32, PagePx, ViewportPx>>,
max_viewport_zoom: Option<ScaleFactor<PagePx, ViewportPx, f32>>, max_viewport_zoom: Option<ScaleFactor<f32, PagePx, ViewportPx>>,
/// "Desktop-style" zoom that resizes the viewport to fit the window. /// "Desktop-style" zoom that resizes the viewport to fit the window.
/// See `ViewportPx` docs in util/geom.rs for details. /// See `ViewportPx` docs in util/geom.rs for details.
page_zoom: ScaleFactor<ViewportPx, ScreenPx, f32>, page_zoom: ScaleFactor<f32, ViewportPx, ScreenPx>,
/// The device pixel ratio for this window. /// The device pixel ratio for this window.
scale_factor: ScaleFactor<ScreenPx, DevicePixel, f32>, scale_factor: ScaleFactor<f32, ScreenPx, DevicePixel>,
channel_to_self: Box<CompositorProxy + Send>, channel_to_self: Box<CompositorProxy + Send>,
@ -254,9 +254,9 @@ struct ScrollZoomEvent {
/// Change the pinch zoom level by this factor /// Change the pinch zoom level by this factor
magnification: f32, magnification: f32,
/// Scroll by this offset /// Scroll by this offset
delta: TypedPoint2D<DevicePixel, f32>, delta: TypedPoint2D<f32, DevicePixel>,
/// Apply changes to the frame at this location /// Apply changes to the frame at this location
cursor: TypedPoint2D<DevicePixel, i32>, cursor: TypedPoint2D<i32, DevicePixel>,
/// The scroll event phase. /// The scroll event phase.
phase: ScrollEventPhase, phase: ScrollEventPhase,
/// The number of OS events that have been coalesced together into this one event. /// The number of OS events that have been coalesced together into this one event.
@ -281,7 +281,7 @@ struct HitTestResult {
/// The topmost layer containing the requested point /// The topmost layer containing the requested point
layer: Rc<Layer<CompositorData>>, layer: Rc<Layer<CompositorData>>,
/// The point in client coordinates of the innermost window or frame containing `layer` /// The point in client coordinates of the innermost window or frame containing `layer`
point: TypedPoint2D<LayerPixel, f32>, point: TypedPoint2D<f32, LayerPixel>,
} }
struct PipelineDetails { struct PipelineDetails {
@ -467,10 +467,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
context: None, context: None,
root_pipeline: None, root_pipeline: None,
pipeline_details: HashMap::new(), pipeline_details: HashMap::new(),
scene: Scene::new(Rect { scene: Scene::new(TypedRect::new(TypedPoint2D::zero(), window_size.as_f32())),
origin: Point2D::zero(),
size: window_size.as_f32(),
}),
window_size: window_size, window_size: window_size,
viewport: None, viewport: None,
scale_factor: scale_factor, scale_factor: scale_factor,
@ -792,7 +789,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
match self.find_layer_with_pipeline_and_layer_id(pipeline_id, layer_id) { match self.find_layer_with_pipeline_and_layer_id(pipeline_id, layer_id) {
Some(ref layer) => { Some(ref layer) => {
let typed = layer.extra_data.borrow().scroll_offset; let typed = layer.extra_data.borrow().scroll_offset;
let _ = sender.send(Point2D::new(typed.x.get(), typed.y.get())); let _ = sender.send(Point2D::new(typed.x, typed.y));
}, },
None => { None => {
warn!("Can't find requested layer in handling Msg::GetScrollOffset"); warn!("Can't find requested layer in handling Msg::GetScrollOffset");
@ -913,7 +910,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
fn create_root_layer_for_pipeline_and_size(&mut self, fn create_root_layer_for_pipeline_and_size(&mut self,
pipeline: &CompositionPipeline, pipeline: &CompositionPipeline,
frame_size: Option<TypedSize2D<PagePx, f32>>) frame_size: Option<TypedSize2D<f32, PagePx>>)
-> Rc<Layer<CompositorData>> { -> Rc<Layer<CompositorData>> {
let layer_properties = LayerProperties { let layer_properties = LayerProperties {
id: LayerId::null(), id: LayerId::null(),
@ -939,8 +936,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
*root_layer.masks_to_bounds.borrow_mut() = true; *root_layer.masks_to_bounds.borrow_mut() = true;
if let Some(ref frame_size) = frame_size { if let Some(ref frame_size) = frame_size {
let frame_size = frame_size.to_untyped(); root_layer.bounds.borrow_mut().size =
root_layer.bounds.borrow_mut().size = Size2D::from_untyped(&frame_size); TypedSize2D::new(frame_size.width, frame_size.height);
} }
root_layer root_layer
@ -998,8 +995,9 @@ impl<Window: WindowMethods> IOCompositor<Window> {
if let Some(subpage_id) = properties.subpage_pipeline_id { if let Some(subpage_id) = properties.subpage_pipeline_id {
match self.find_layer_with_pipeline_and_layer_id(subpage_id, LayerId::null()) { match self.find_layer_with_pipeline_and_layer_id(subpage_id, LayerId::null()) {
Some(layer) => { Some(layer) => {
*layer.bounds.borrow_mut() = Rect::from_untyped( *layer.bounds.borrow_mut() =
&Rect::new(Point2D::zero(), properties.rect.size)); TypedRect::new(TypedPoint2D::zero(),
TypedSize2D::from_untyped(&properties.rect.size));
} }
None => warn!("Tried to update non-existent subpage root layer: {:?}", subpage_id), None => warn!("Tried to update non-existent subpage root layer: {:?}", subpage_id),
} }
@ -1178,12 +1176,12 @@ impl<Window: WindowMethods> IOCompositor<Window> {
fn move_layer(&self, fn move_layer(&self,
pipeline_id: PipelineId, pipeline_id: PipelineId,
layer_id: LayerId, layer_id: LayerId,
origin: TypedPoint2D<LayerPixel, f32>) origin: TypedPoint2D<f32, LayerPixel>)
-> bool { -> bool {
match self.find_layer_with_pipeline_and_layer_id(pipeline_id, layer_id) { match self.find_layer_with_pipeline_and_layer_id(pipeline_id, layer_id) {
Some(ref layer) => { Some(ref layer) => {
if layer.wants_scroll_events() == WantsScrollEventsFlag::WantsScrollEvents { if layer.wants_scroll_events() == WantsScrollEventsFlag::WantsScrollEvents {
layer.clamp_scroll_offset_and_scroll_layer(Point2D::typed(0f32, 0f32) - origin); layer.clamp_scroll_offset_and_scroll_layer(TypedPoint2D::zero() - origin);
} }
true true
} }
@ -1195,7 +1193,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
pipeline_id: PipelineId, pipeline_id: PipelineId,
layer_id: LayerId) { layer_id: LayerId) {
if let Some(point) = self.fragment_point.take() { if let Some(point) = self.fragment_point.take() {
if !self.move_layer(pipeline_id, layer_id, Point2D::from_untyped(&point)) { if !self.move_layer(pipeline_id, layer_id, TypedPoint2D::from_untyped(&point)) {
return warn!("Compositor: Tried to scroll to fragment with unknown layer."); return warn!("Compositor: Tried to scroll to fragment with unknown layer.");
} }
@ -1251,8 +1249,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
new_layer_buffer_set: Box<LayerBufferSet>, new_layer_buffer_set: Box<LayerBufferSet>,
epoch: Epoch) { epoch: Epoch) {
debug!("compositor received new frame at size {:?}x{:?}", debug!("compositor received new frame at size {:?}x{:?}",
self.window_size.width.get(), self.window_size.width,
self.window_size.height.get()); self.window_size.height);
// From now on, if we destroy the buffers, they will leak. // From now on, if we destroy the buffers, they will leak.
let mut new_layer_buffer_set = new_layer_buffer_set; let mut new_layer_buffer_set = new_layer_buffer_set;
@ -1268,7 +1266,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
pipeline_id: PipelineId, pipeline_id: PipelineId,
layer_id: LayerId, layer_id: LayerId,
point: Point2D<f32>) { point: Point2D<f32>) {
if self.move_layer(pipeline_id, layer_id, Point2D::from_untyped(&point)) { if self.move_layer(pipeline_id, layer_id, TypedPoint2D::from_untyped(&point)) {
self.perform_updates_after_scroll(); self.perform_updates_after_scroll();
self.send_viewport_rects_for_all_layers() self.send_viewport_rects_for_all_layers()
} else { } else {
@ -1369,7 +1367,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
fn on_resize_window_event(&mut self, new_size: TypedSize2D<DevicePixel, u32>) { fn on_resize_window_event(&mut self, new_size: TypedSize2D<u32, DevicePixel>) {
debug!("compositor resizing to {:?}", new_size.to_untyped()); debug!("compositor resizing to {:?}", new_size.to_untyped());
// A size change could also mean a resolution change. // A size change could also mean a resolution change.
@ -1457,7 +1455,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
fn on_mouse_window_move_event_class(&mut self, cursor: TypedPoint2D<DevicePixel, f32>) { fn on_mouse_window_move_event_class(&mut self, cursor: TypedPoint2D<f32, DevicePixel>) {
if opts::get().convert_mouse_to_touch { if opts::get().convert_mouse_to_touch {
self.on_touch_move(TouchId(0), cursor); self.on_touch_move(TouchId(0), cursor);
return return
@ -1505,7 +1503,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
fn on_touch_down(&mut self, identifier: TouchId, point: TypedPoint2D<DevicePixel, f32>) { fn on_touch_down(&mut self, identifier: TouchId, point: TypedPoint2D<f32, DevicePixel>) {
self.touch_handler.on_touch_down(identifier, point); self.touch_handler.on_touch_down(identifier, point);
if let Some(result) = self.find_topmost_layer_at_point(point / self.scene.scale) { if let Some(result) = self.find_topmost_layer_at_point(point / self.scene.scale) {
result.layer.send_event(self, TouchEvent(TouchEventType::Down, identifier, result.layer.send_event(self, TouchEvent(TouchEventType::Down, identifier,
@ -1513,7 +1511,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
fn on_touch_move(&mut self, identifier: TouchId, point: TypedPoint2D<DevicePixel, f32>) { fn on_touch_move(&mut self, identifier: TouchId, point: TypedPoint2D<f32, DevicePixel>) {
match self.touch_handler.on_touch_move(identifier, point) { match self.touch_handler.on_touch_move(identifier, point) {
TouchAction::Scroll(delta) => { TouchAction::Scroll(delta) => {
match point.cast() { match point.cast() {
@ -1522,7 +1520,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
TouchAction::Zoom(magnification, scroll_delta) => { TouchAction::Zoom(magnification, scroll_delta) => {
let cursor = Point2D::typed(-1, -1); // Make sure this hits the base layer. let cursor = TypedPoint2D::new(-1, -1); // Make sure this hits the base layer.
self.pending_scroll_zoom_events.push(ScrollZoomEvent { self.pending_scroll_zoom_events.push(ScrollZoomEvent {
magnification: magnification, magnification: magnification,
delta: scroll_delta, delta: scroll_delta,
@ -1542,7 +1540,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
fn on_touch_up(&mut self, identifier: TouchId, point: TypedPoint2D<DevicePixel, f32>) { fn on_touch_up(&mut self, identifier: TouchId, point: TypedPoint2D<f32, DevicePixel>) {
if let Some(result) = self.find_topmost_layer_at_point(point / self.scene.scale) { if let Some(result) = self.find_topmost_layer_at_point(point / self.scene.scale) {
result.layer.send_event(self, TouchEvent(TouchEventType::Up, identifier, result.layer.send_event(self, TouchEvent(TouchEventType::Up, identifier,
result.point.to_untyped())); result.point.to_untyped()));
@ -1552,7 +1550,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
fn on_touch_cancel(&mut self, identifier: TouchId, point: TypedPoint2D<DevicePixel, f32>) { fn on_touch_cancel(&mut self, identifier: TouchId, point: TypedPoint2D<f32, DevicePixel>) {
// Send the event to script. // Send the event to script.
self.touch_handler.on_touch_cancel(identifier, point); self.touch_handler.on_touch_cancel(identifier, point);
if let Some(result) = self.find_topmost_layer_at_point(point / self.scene.scale) { if let Some(result) = self.find_topmost_layer_at_point(point / self.scene.scale) {
@ -1562,7 +1560,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
/// http://w3c.github.io/touch-events/#mouse-events /// http://w3c.github.io/touch-events/#mouse-events
fn simulate_mouse_click(&self, p: TypedPoint2D<DevicePixel, f32>) { fn simulate_mouse_click(&self, p: TypedPoint2D<f32, DevicePixel>) {
match self.find_topmost_layer_at_point(p / self.scene.scale) { match self.find_topmost_layer_at_point(p / self.scene.scale) {
Some(HitTestResult { layer, point }) => { Some(HitTestResult { layer, point }) => {
let button = MouseButton::Left; let button = MouseButton::Left;
@ -1576,8 +1574,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
fn on_scroll_window_event(&mut self, fn on_scroll_window_event(&mut self,
delta: TypedPoint2D<DevicePixel, f32>, delta: TypedPoint2D<f32, DevicePixel>,
cursor: TypedPoint2D<DevicePixel, i32>) { cursor: TypedPoint2D<i32, DevicePixel>) {
self.pending_scroll_zoom_events.push(ScrollZoomEvent { self.pending_scroll_zoom_events.push(ScrollZoomEvent {
magnification: 1.0, magnification: 1.0,
delta: delta, delta: delta,
@ -1589,8 +1587,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
fn on_scroll_start_window_event(&mut self, fn on_scroll_start_window_event(&mut self,
delta: TypedPoint2D<DevicePixel, f32>, delta: TypedPoint2D<f32, DevicePixel>,
cursor: TypedPoint2D<DevicePixel, i32>) { cursor: TypedPoint2D<i32, DevicePixel>) {
self.scroll_in_progress = true; self.scroll_in_progress = true;
self.pending_scroll_zoom_events.push(ScrollZoomEvent { self.pending_scroll_zoom_events.push(ScrollZoomEvent {
magnification: 1.0, magnification: 1.0,
@ -1603,8 +1601,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
fn on_scroll_end_window_event(&mut self, fn on_scroll_end_window_event(&mut self,
delta: TypedPoint2D<DevicePixel, f32>, delta: TypedPoint2D<f32, DevicePixel>,
cursor: TypedPoint2D<DevicePixel, i32>) { cursor: TypedPoint2D<i32, DevicePixel>) {
self.scroll_in_progress = false; self.scroll_in_progress = false;
self.pending_scroll_zoom_events.push(ScrollZoomEvent { self.pending_scroll_zoom_events.push(ScrollZoomEvent {
magnification: 1.0, magnification: 1.0,
@ -1710,16 +1708,18 @@ impl<Window: WindowMethods> IOCompositor<Window> {
/// sends them to layout as necessary. This ultimately triggers a rerender of the content. /// sends them to layout as necessary. This ultimately triggers a rerender of the content.
fn send_updated_display_ports_to_layout(&mut self) { fn send_updated_display_ports_to_layout(&mut self) {
fn process_layer(layer: &Layer<CompositorData>, fn process_layer(layer: &Layer<CompositorData>,
window_size: &TypedSize2D<LayerPixel, f32>, window_size: &TypedSize2D<f32, LayerPixel>,
new_display_ports: &mut HashMap<PipelineId, Vec<(LayerId, Rect<Au>)>>) { new_display_ports: &mut HashMap<PipelineId, Vec<(LayerId, Rect<Au>)>>) {
let visible_rect = let visible_rect =
Rect::new(Point2D::zero(), *window_size).translate(&-*layer.content_offset.borrow()) TypedRect::new(TypedPoint2D::zero(), *window_size)
.translate(&-*layer.content_offset.borrow())
.intersection(&*layer.bounds.borrow()) .intersection(&*layer.bounds.borrow())
.unwrap_or(Rect::zero()) .unwrap_or(TypedRect::zero())
.to_untyped(); .to_untyped();
let visible_rect = Rect::new(Point2D::new(Au::from_f32_px(visible_rect.origin.x), let visible_rect = TypedRect::new(
TypedPoint2D::new(Au::from_f32_px(visible_rect.origin.x),
Au::from_f32_px(visible_rect.origin.y)), Au::from_f32_px(visible_rect.origin.y)),
Size2D::new(Au::from_f32_px(visible_rect.size.width), TypedSize2D::new(Au::from_f32_px(visible_rect.size.width),
Au::from_f32_px(visible_rect.size.height))); Au::from_f32_px(visible_rect.size.height)));
let extra_layer_data = layer.extra_data.borrow(); let extra_layer_data = layer.extra_data.borrow();
@ -1815,7 +1815,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
fn device_pixels_per_screen_px(&self) -> ScaleFactor<ScreenPx, DevicePixel, f32> { fn device_pixels_per_screen_px(&self) -> ScaleFactor<f32, ScreenPx, DevicePixel> {
match opts::get().device_pixels_per_px { match opts::get().device_pixels_per_px {
Some(device_pixels_per_px) => ScaleFactor::new(device_pixels_per_px), Some(device_pixels_per_px) => ScaleFactor::new(device_pixels_per_px),
None => match opts::get().output_file { None => match opts::get().output_file {
@ -1825,7 +1825,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
fn device_pixels_per_page_px(&self) -> ScaleFactor<PagePx, DevicePixel, f32> { fn device_pixels_per_page_px(&self) -> ScaleFactor<f32, PagePx, DevicePixel> {
self.viewport_zoom * self.page_zoom * self.device_pixels_per_screen_px() self.viewport_zoom * self.page_zoom * self.device_pixels_per_screen_px()
} }
@ -1855,8 +1855,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
fn on_pinch_zoom_window_event(&mut self, magnification: f32) { fn on_pinch_zoom_window_event(&mut self, magnification: f32) {
self.pending_scroll_zoom_events.push(ScrollZoomEvent { self.pending_scroll_zoom_events.push(ScrollZoomEvent {
magnification: magnification, magnification: magnification,
delta: Point2D::typed(0.0, 0.0), // TODO: Scroll to keep the center in view? delta: TypedPoint2D::zero(), // TODO: Scroll to keep the center in view?
cursor: Point2D::typed(-1, -1), // Make sure this hits the base layer. cursor: TypedPoint2D::new(-1, -1), // Make sure this hits the base layer.
phase: ScrollEventPhase::Move(true), phase: ScrollEventPhase::Move(true),
event_count: 1, event_count: 1,
}); });
@ -1874,7 +1874,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
} }
fn on_touchpad_pressure_event(&self, cursor: TypedPoint2D<DevicePixel, f32>, pressure: f32, fn on_touchpad_pressure_event(&self, cursor: TypedPoint2D<f32, DevicePixel>, pressure: f32,
phase: TouchpadPressurePhase) { phase: TouchpadPressurePhase) {
if let Some(true) = PREFS.get("dom.forcetouch.enabled").as_boolean() { if let Some(true) = PREFS.get("dom.forcetouch.enabled").as_boolean() {
match self.find_topmost_layer_at_point(cursor / self.scene.scale) { match self.find_topmost_layer_at_point(cursor / self.scene.scale) {
@ -2194,7 +2194,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
return Err(UnableToComposite::NoContext) return Err(UnableToComposite::NoContext)
} }
let (width, height) = let (width, height) =
(self.window_size.width.get() as usize, self.window_size.height.get() as usize); (self.window_size.width as usize, self.window_size.height as usize);
if !self.window.prepare_for_composite(width, height) { if !self.window.prepare_for_composite(width, height) {
return Err(UnableToComposite::WindowUnprepared) return Err(UnableToComposite::WindowUnprepared)
} }
@ -2236,15 +2236,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
self.dump_layer_tree(); self.dump_layer_tree();
// Adjust the layer dimensions as necessary to correspond to the size of the window. // Adjust the layer dimensions as necessary to correspond to the size of the window.
self.scene.viewport = match self.viewport { self.scene.viewport = match self.viewport {
Some((point, size)) => Rect { Some((point, size)) => TypedRect::new(point.as_f32(), size.as_f32()),
origin: point.as_f32(), None => TypedRect::new(TypedPoint2D::zero(), self.window_size.as_f32()),
size: size.as_f32(),
},
None => Rect {
origin: Point2D::zero(),
size: self.window_size.as_f32(),
}
}; };
// Paint the scene. // Paint the scene.
@ -2255,15 +2248,13 @@ impl<Window: WindowMethods> IOCompositor<Window> {
match self.context { match self.context {
Some(context) => { Some(context) => {
if let Some((point, size)) = self.viewport { if let Some((point, size)) = self.viewport {
let point = point.to_untyped(); let point = point.to_untyped(); let size = size.to_untyped();
let size = size.to_untyped();
gl::scissor(point.x as GLint, point.y as GLint, gl::scissor(point.x as GLint, point.y as GLint, size.width as GLsizei,
size.width as GLsizei, size.height as GLsizei); size.height as GLsizei);
gl::enable(gl::SCISSOR_TEST); gl::enable(gl::SCISSOR_TEST); rendergl::render_scene(layer.clone(),
rendergl::render_scene(layer.clone(), context, &self.scene); context, &self.scene); gl::disable(gl::SCISSOR_TEST);
gl::disable(gl::SCISSOR_TEST);
} else { } else {
rendergl::render_scene(layer.clone(), context, &self.scene); rendergl::render_scene(layer.clone(), context, &self.scene);
@ -2389,8 +2380,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
fn find_topmost_layer_at_point_for_layer(&self, fn find_topmost_layer_at_point_for_layer(&self,
layer: Rc<Layer<CompositorData>>, layer: Rc<Layer<CompositorData>>,
point_in_parent_layer: TypedPoint2D<LayerPixel, f32>, point_in_parent_layer: TypedPoint2D<f32, LayerPixel>,
clip_rect_in_parent_layer: &TypedRect<LayerPixel, f32>) clip_rect_in_parent_layer: &TypedRect<f32, LayerPixel>)
-> Option<HitTestResult> { -> Option<HitTestResult> {
let layer_bounds = *layer.bounds.borrow(); let layer_bounds = *layer.bounds.borrow();
let masks_to_bounds = *layer.masks_to_bounds.borrow(); let masks_to_bounds = *layer.masks_to_bounds.borrow();
@ -2439,7 +2430,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
fn find_topmost_layer_at_point(&self, fn find_topmost_layer_at_point(&self,
point: TypedPoint2D<LayerPixel, f32>) point: TypedPoint2D<f32, LayerPixel>)
-> Option<HitTestResult> { -> Option<HitTestResult> {
match self.scene.root { match self.scene.root {
Some(ref layer) => { Some(ref layer) => {

View file

@ -4,9 +4,8 @@
use azure::azure_hl; use azure::azure_hl;
use compositor::IOCompositor; use compositor::IOCompositor;
use euclid::length::Length; use euclid::point::TypedPoint2D;
use euclid::point::{Point2D, TypedPoint2D}; use euclid::rect::TypedRect;
use euclid::rect::Rect;
use euclid::size::TypedSize2D; use euclid::size::TypedSize2D;
use gfx_traits::{Epoch, LayerId, LayerProperties, ScrollPolicy}; use gfx_traits::{Epoch, LayerId, LayerProperties, ScrollPolicy};
use layers::color::Color; use layers::color::Color;
@ -44,7 +43,7 @@ pub struct CompositorData {
/// The scroll offset originating from this scrolling root. This allows scrolling roots /// The scroll offset originating from this scrolling root. This allows scrolling roots
/// to track their current scroll position even while their content_offset does not change. /// to track their current scroll position even while their content_offset does not change.
pub scroll_offset: TypedPoint2D<LayerPixel, f32>, pub scroll_offset: TypedPoint2D<f32, LayerPixel>,
/// The pipeline ID of this layer, if it represents a subpage. /// The pipeline ID of this layer, if it represents a subpage.
pub subpage_info: Option<PipelineId>, pub subpage_info: Option<PipelineId>,
@ -63,11 +62,11 @@ impl CompositorData {
scroll_policy: layer_properties.scroll_policy, scroll_policy: layer_properties.scroll_policy,
requested_epoch: Epoch(0), requested_epoch: Epoch(0),
painted_epoch: Epoch(0), painted_epoch: Epoch(0),
scroll_offset: Point2D::typed(0., 0.), scroll_offset: TypedPoint2D::zero(),
subpage_info: layer_properties.subpage_pipeline_id, subpage_info: layer_properties.subpage_pipeline_id,
}; };
Rc::new(Layer::new(Rect::from_untyped(&layer_properties.rect), Rc::new(Layer::new(TypedRect::from_untyped(&layer_properties.rect),
tile_size, tile_size,
to_layers_color(&layer_properties.background_color), to_layers_color(&layer_properties.background_color),
1.0, 1.0,
@ -117,8 +116,8 @@ pub trait CompositorLayer {
/// ScrollPositionUnchanged or ScrollPositionChanged. If no layer was targeted by the event /// ScrollPositionUnchanged or ScrollPositionChanged. If no layer was targeted by the event
/// returns ScrollEventUnhandled. /// returns ScrollEventUnhandled.
fn handle_scroll_event(&self, fn handle_scroll_event(&self,
delta: TypedPoint2D<LayerPixel, f32>, delta: TypedPoint2D<f32, LayerPixel>,
cursor: TypedPoint2D<LayerPixel, f32>) cursor: TypedPoint2D<f32, LayerPixel>)
-> ScrollEventResult; -> ScrollEventResult;
// Takes in a MouseWindowEvent, determines if it should be passed to children, and // Takes in a MouseWindowEvent, determines if it should be passed to children, and
@ -127,12 +126,12 @@ pub trait CompositorLayer {
fn send_mouse_event<Window>(&self, fn send_mouse_event<Window>(&self,
compositor: &IOCompositor<Window>, compositor: &IOCompositor<Window>,
event: MouseWindowEvent, event: MouseWindowEvent,
cursor: TypedPoint2D<LayerPixel, f32>) cursor: TypedPoint2D<f32, LayerPixel>)
where Window: WindowMethods; where Window: WindowMethods;
fn send_mouse_move_event<Window>(&self, fn send_mouse_move_event<Window>(&self,
compositor: &IOCompositor<Window>, compositor: &IOCompositor<Window>,
cursor: TypedPoint2D<LayerPixel, f32>) cursor: TypedPoint2D<f32, LayerPixel>)
where Window: WindowMethods; where Window: WindowMethods;
fn send_event<Window>(&self, fn send_event<Window>(&self,
@ -142,17 +141,17 @@ pub trait CompositorLayer {
fn send_touchpad_pressure_event<Window>(&self, fn send_touchpad_pressure_event<Window>(&self,
compositor: &IOCompositor<Window>, compositor: &IOCompositor<Window>,
cursor: TypedPoint2D<LayerPixel, f32>, cursor: TypedPoint2D<f32, LayerPixel>,
pressure: f32, pressure: f32,
phase: TouchpadPressurePhase) phase: TouchpadPressurePhase)
where Window: WindowMethods; where Window: WindowMethods;
fn clamp_scroll_offset_and_scroll_layer(&self, fn clamp_scroll_offset_and_scroll_layer(&self,
new_offset: TypedPoint2D<LayerPixel, f32>) new_offset: TypedPoint2D<f32, LayerPixel>)
-> ScrollEventResult; -> ScrollEventResult;
fn scroll_layer_and_all_child_layers(&self, fn scroll_layer_and_all_child_layers(&self,
new_offset: TypedPoint2D<LayerPixel, f32>) new_offset: TypedPoint2D<f32, LayerPixel>)
-> bool; -> bool;
/// Return a flag describing how this layer deals with scroll events. /// Return a flag describing how this layer deals with scroll events.
@ -202,8 +201,8 @@ impl Clampable for f32 {
} }
fn calculate_content_size_for_layer(layer: &Layer<CompositorData>) fn calculate_content_size_for_layer(layer: &Layer<CompositorData>)
-> TypedSize2D<LayerPixel, f32> { -> TypedSize2D<f32, LayerPixel> {
layer.children().iter().fold(Rect::zero(), layer.children().iter().fold(TypedRect::zero(),
|unioned_rect, child_rect| { |unioned_rect, child_rect| {
unioned_rect.union(&*child_rect.bounds.borrow()) unioned_rect.union(&*child_rect.bounds.borrow())
}).size }).size
@ -229,11 +228,11 @@ impl CompositorLayer for Layer<CompositorData> {
} }
fn update_layer(&self, layer_properties: LayerProperties) { fn update_layer(&self, layer_properties: LayerProperties) {
*self.bounds.borrow_mut() = Rect::from_untyped(&layer_properties.rect); *self.bounds.borrow_mut() = TypedRect::from_untyped(&layer_properties.rect);
// Call scroll for bounds checking if the page shrunk. Use (-1, -1) as the // Call scroll for bounds checking if the page shrunk. Use (-1, -1) as the
// cursor position to make sure the scroll isn't propagated downwards. // cursor position to make sure the scroll isn't propagated downwards.
self.handle_scroll_event(Point2D::typed(0f32, 0f32), Point2D::typed(-1f32, -1f32)); self.handle_scroll_event(TypedPoint2D::zero(), TypedPoint2D::new(-1f32, -1f32));
self.update_layer_except_bounds(layer_properties); self.update_layer_except_bounds(layer_properties);
} }
@ -320,8 +319,8 @@ impl CompositorLayer for Layer<CompositorData> {
} }
fn handle_scroll_event(&self, fn handle_scroll_event(&self,
delta: TypedPoint2D<LayerPixel, f32>, delta: TypedPoint2D<f32, LayerPixel>,
cursor: TypedPoint2D<LayerPixel, f32>) cursor: TypedPoint2D<f32, LayerPixel>)
-> ScrollEventResult { -> ScrollEventResult {
// Allow children to scroll. // Allow children to scroll.
let scroll_offset = self.extra_data.borrow().scroll_offset; let scroll_offset = self.extra_data.borrow().scroll_offset;
@ -344,15 +343,15 @@ impl CompositorLayer for Layer<CompositorData> {
self.clamp_scroll_offset_and_scroll_layer(scroll_offset + delta) self.clamp_scroll_offset_and_scroll_layer(scroll_offset + delta)
} }
fn clamp_scroll_offset_and_scroll_layer(&self, new_offset: TypedPoint2D<LayerPixel, f32>) fn clamp_scroll_offset_and_scroll_layer(&self, new_offset: TypedPoint2D<f32, LayerPixel>)
-> ScrollEventResult { -> ScrollEventResult {
let layer_size = self.bounds.borrow().size; let layer_size = self.bounds.borrow().size;
let content_size = calculate_content_size_for_layer(self); let content_size = calculate_content_size_for_layer(self);
let min_x = (layer_size.width - content_size.width).get().min(0.0); let min_x = (layer_size.width - content_size.width).min(0.0);
let min_y = (layer_size.height - content_size.height).get().min(0.0); let min_y = (layer_size.height - content_size.height).min(0.0);
let new_offset: TypedPoint2D<LayerPixel, f32> = let new_offset: TypedPoint2D<f32, LayerPixel> =
Point2D::new(Length::new(new_offset.x.get().clamp(&min_x, &0.0)), TypedPoint2D::new(new_offset.x.clamp(&min_x, &0.0),
Length::new(new_offset.y.get().clamp(&min_y, &0.0))); new_offset.y.clamp(&min_y, &0.0));
if self.extra_data.borrow().scroll_offset == new_offset { if self.extra_data.borrow().scroll_offset == new_offset {
return ScrollEventResult::ScrollPositionUnchanged; return ScrollEventResult::ScrollPositionUnchanged;
@ -377,7 +376,7 @@ impl CompositorLayer for Layer<CompositorData> {
fn send_mouse_event<Window>(&self, fn send_mouse_event<Window>(&self,
compositor: &IOCompositor<Window>, compositor: &IOCompositor<Window>,
event: MouseWindowEvent, event: MouseWindowEvent,
cursor: TypedPoint2D<LayerPixel, f32>) cursor: TypedPoint2D<f32, LayerPixel>)
where Window: WindowMethods { where Window: WindowMethods {
let event_point = cursor.to_untyped(); let event_point = cursor.to_untyped();
let message = match event { let message = match event {
@ -393,7 +392,7 @@ impl CompositorLayer for Layer<CompositorData> {
fn send_mouse_move_event<Window>(&self, fn send_mouse_move_event<Window>(&self,
compositor: &IOCompositor<Window>, compositor: &IOCompositor<Window>,
cursor: TypedPoint2D<LayerPixel, f32>) cursor: TypedPoint2D<f32, LayerPixel>)
where Window: WindowMethods { where Window: WindowMethods {
self.send_event(compositor, MouseMoveEvent(Some(cursor.to_untyped()))); self.send_event(compositor, MouseMoveEvent(Some(cursor.to_untyped())));
} }
@ -409,7 +408,7 @@ impl CompositorLayer for Layer<CompositorData> {
fn send_touchpad_pressure_event<Window>(&self, fn send_touchpad_pressure_event<Window>(&self,
compositor: &IOCompositor<Window>, compositor: &IOCompositor<Window>,
cursor: TypedPoint2D<LayerPixel, f32>, cursor: TypedPoint2D<f32, LayerPixel>,
pressure: f32, pressure: f32,
phase: TouchpadPressurePhase) phase: TouchpadPressurePhase)
where Window: WindowMethods { where Window: WindowMethods {
@ -419,14 +418,14 @@ impl CompositorLayer for Layer<CompositorData> {
} }
} }
fn scroll_layer_and_all_child_layers(&self, new_offset: TypedPoint2D<LayerPixel, f32>) fn scroll_layer_and_all_child_layers(&self, new_offset: TypedPoint2D<f32, LayerPixel>)
-> bool { -> bool {
let mut result = false; let mut result = false;
// Only scroll this layer if it's not fixed-positioned. // Only scroll this layer if it's not fixed-positioned.
if self.extra_data.borrow().scroll_policy != ScrollPolicy::FixedPosition { if self.extra_data.borrow().scroll_policy != ScrollPolicy::FixedPosition {
let new_offset = new_offset.to_untyped(); let new_offset = new_offset.to_untyped();
*self.content_offset.borrow_mut() = Point2D::from_untyped(&new_offset); *self.content_offset.borrow_mut() = TypedPoint2D::from_untyped(&new_offset);
result = true result = true
} }

View file

@ -55,7 +55,7 @@ pub mod windowing;
pub struct SendableFrameTree { pub struct SendableFrameTree {
pub pipeline: CompositionPipeline, pub pipeline: CompositionPipeline,
pub size: Option<TypedSize2D<PagePx, f32>>, pub size: Option<TypedSize2D<f32, PagePx>>,
pub children: Vec<SendableFrameTree>, pub children: Vec<SendableFrameTree>,
} }

View file

@ -19,11 +19,11 @@ pub struct TouchHandler {
#[derive(Clone, Copy, Debug)] #[derive(Clone, Copy, Debug)]
pub struct TouchPoint { pub struct TouchPoint {
pub id: TouchId, pub id: TouchId,
pub point: TypedPoint2D<DevicePixel, f32> pub point: TypedPoint2D<f32, DevicePixel>
} }
impl TouchPoint { impl TouchPoint {
pub fn new(id: TouchId, point: TypedPoint2D<DevicePixel, f32>) -> Self { pub fn new(id: TouchId, point: TypedPoint2D<f32, DevicePixel>) -> Self {
TouchPoint { id: id, point: point } TouchPoint { id: id, point: point }
} }
} }
@ -57,9 +57,9 @@ pub enum TouchAction {
/// Simulate a mouse click. /// Simulate a mouse click.
Click, Click,
/// Scroll by the provided offset. /// Scroll by the provided offset.
Scroll(TypedPoint2D<DevicePixel, f32>), Scroll(TypedPoint2D<f32, DevicePixel>),
/// Zoom by a magnification factor and scroll by the provided offset. /// Zoom by a magnification factor and scroll by the provided offset.
Zoom(f32, TypedPoint2D<DevicePixel, f32>), Zoom(f32, TypedPoint2D<f32, DevicePixel>),
/// Send a JavaScript event to content. /// Send a JavaScript event to content.
DispatchEvent, DispatchEvent,
/// Don't do anything. /// Don't do anything.
@ -74,7 +74,7 @@ impl TouchHandler {
} }
} }
pub fn on_touch_down(&mut self, id: TouchId, point: TypedPoint2D<DevicePixel, f32>) { pub fn on_touch_down(&mut self, id: TouchId, point: TypedPoint2D<f32, DevicePixel>) {
let point = TouchPoint::new(id, point); let point = TouchPoint::new(id, point);
self.active_touch_points.push(point); self.active_touch_points.push(point);
@ -87,7 +87,7 @@ impl TouchHandler {
}; };
} }
pub fn on_touch_move(&mut self, id: TouchId, point: TypedPoint2D<DevicePixel, f32>) pub fn on_touch_move(&mut self, id: TouchId, point: TypedPoint2D<f32, DevicePixel>)
-> TouchAction { -> TouchAction {
let idx = match self.active_touch_points.iter_mut().position(|t| t.id == id) { let idx = match self.active_touch_points.iter_mut().position(|t| t.id == id) {
Some(i) => i, Some(i) => i,
@ -101,10 +101,10 @@ impl TouchHandler {
let action = match self.state { let action = match self.state {
Touching => { Touching => {
let delta = point - old_point; let delta = point - old_point;
// TODO let delta: TypedPoint2D<ScreenPx, _> = delta / self.device_pixels_per_screen_px(); // TODO let delta: TypedPoint2D<_, ScreenPx> = delta / self.device_pixels_per_screen_px();
if delta.x.get().abs() > TOUCH_PAN_MIN_SCREEN_PX || if delta.x.abs() > TOUCH_PAN_MIN_SCREEN_PX ||
delta.y.get().abs() > TOUCH_PAN_MIN_SCREEN_PX delta.y.abs() > TOUCH_PAN_MIN_SCREEN_PX
{ {
self.state = Panning; self.state = Panning;
TouchAction::Scroll(delta) TouchAction::Scroll(delta)
@ -142,7 +142,7 @@ impl TouchHandler {
action action
} }
pub fn on_touch_up(&mut self, id: TouchId, _point: TypedPoint2D<DevicePixel, f32>) pub fn on_touch_up(&mut self, id: TouchId, _point: TypedPoint2D<f32, DevicePixel>)
-> TouchAction { -> TouchAction {
match self.active_touch_points.iter().position(|t| t.id == id) { match self.active_touch_points.iter().position(|t| t.id == id) {
Some(i) => { Some(i) => {
@ -176,7 +176,7 @@ impl TouchHandler {
} }
} }
pub fn on_touch_cancel(&mut self, id: TouchId, _point: TypedPoint2D<DevicePixel, f32>) { pub fn on_touch_cancel(&mut self, id: TouchId, _point: TypedPoint2D<f32, DevicePixel>) {
match self.active_touch_points.iter().position(|t| t.id == id) { match self.active_touch_points.iter().position(|t| t.id == id) {
Some(i) => { Some(i) => {
self.active_touch_points.swap_remove(i); self.active_touch_points.swap_remove(i);
@ -219,16 +219,14 @@ impl TouchHandler {
self.active_touch_points.len() self.active_touch_points.len()
} }
fn pinch_distance_and_center(&self) -> (f32, TypedPoint2D<DevicePixel, f32>) { fn pinch_distance_and_center(&self) -> (f32, TypedPoint2D<f32, DevicePixel>) {
debug_assert!(self.touch_count() == 2); debug_assert!(self.touch_count() == 2);
let p0 = self.active_touch_points[0].point; let p0 = self.active_touch_points[0].point;
let p1 = self.active_touch_points[1].point; let p1 = self.active_touch_points[1].point;
let center = (p0 + p1) / ScaleFactor::new(2.0); let center = (p0 + p1) / ScaleFactor::new(2.0);
let d = p0 - p1; let d = p0 - p1;
let dx = d.x.get(); let distance = f32::sqrt(d.x * d.x + d.y * d.y);
let dy = d.y.get();
let distance = f32::sqrt(dx * dx + dy * dy);
(distance, center) (distance, center)
} }

View file

@ -21,9 +21,9 @@ use util::geometry::ScreenPx;
#[derive(Clone)] #[derive(Clone)]
pub enum MouseWindowEvent { pub enum MouseWindowEvent {
Click(MouseButton, TypedPoint2D<DevicePixel, f32>), Click(MouseButton, TypedPoint2D<f32, DevicePixel>),
MouseDown(MouseButton, TypedPoint2D<DevicePixel, f32>), MouseDown(MouseButton, TypedPoint2D<f32, DevicePixel>),
MouseUp(MouseButton, TypedPoint2D<DevicePixel, f32>), MouseUp(MouseButton, TypedPoint2D<f32, DevicePixel>),
} }
#[derive(Clone)] #[derive(Clone)]
@ -49,22 +49,22 @@ pub enum WindowEvent {
/// context when this message is sent. /// context when this message is sent.
InitializeCompositing, InitializeCompositing,
/// Sent when the window is resized. /// Sent when the window is resized.
Resize(TypedSize2D<DevicePixel, u32>), Resize(TypedSize2D<u32, DevicePixel>),
/// Touchpad Pressure /// Touchpad Pressure
TouchpadPressure(TypedPoint2D<DevicePixel, f32>, f32, TouchpadPressurePhase), TouchpadPressure(TypedPoint2D<f32, DevicePixel>, f32, TouchpadPressurePhase),
/// Sent when you want to override the viewport. /// Sent when you want to override the viewport.
Viewport(TypedPoint2D<DevicePixel, u32>, TypedSize2D<DevicePixel, u32>), Viewport(TypedPoint2D<u32, DevicePixel>, TypedSize2D<u32, DevicePixel>),
/// Sent when a new URL is to be loaded. /// Sent when a new URL is to be loaded.
LoadUrl(String), LoadUrl(String),
/// Sent when a mouse hit test is to be performed. /// Sent when a mouse hit test is to be performed.
MouseWindowEventClass(MouseWindowEvent), MouseWindowEventClass(MouseWindowEvent),
/// Sent when a mouse move. /// Sent when a mouse move.
MouseWindowMoveEventClass(TypedPoint2D<DevicePixel, f32>), MouseWindowMoveEventClass(TypedPoint2D<f32, DevicePixel>),
/// Touch event: type, identifier, point /// Touch event: type, identifier, point
Touch(TouchEventType, TouchId, TypedPoint2D<DevicePixel, f32>), Touch(TouchEventType, TouchId, TypedPoint2D<f32, DevicePixel>),
/// Sent when the user scrolls. The first point is the delta and the second point is the /// Sent when the user scrolls. The first point is the delta and the second point is the
/// origin. /// origin.
Scroll(TypedPoint2D<DevicePixel, f32>, TypedPoint2D<DevicePixel, i32>, TouchEventType), Scroll(TypedPoint2D<f32, DevicePixel>, TypedPoint2D<i32, DevicePixel>, TouchEventType),
/// Sent when the user zooms. /// Sent when the user zooms.
Zoom(f32), Zoom(f32),
/// Simulated "pinch zoom" gesture for non-touch platforms (e.g. ctrl-scrollwheel). /// Simulated "pinch zoom" gesture for non-touch platforms (e.g. ctrl-scrollwheel).
@ -108,9 +108,9 @@ impl Debug for WindowEvent {
pub trait WindowMethods { pub trait WindowMethods {
/// Returns the size of the window in hardware pixels. /// Returns the size of the window in hardware pixels.
fn framebuffer_size(&self) -> TypedSize2D<DevicePixel, u32>; fn framebuffer_size(&self) -> TypedSize2D<u32, DevicePixel>;
/// Returns the size of the window in density-independent "px" units. /// Returns the size of the window in density-independent "px" units.
fn size(&self) -> TypedSize2D<ScreenPx, f32>; fn size(&self) -> TypedSize2D<f32, ScreenPx>;
/// Presents the window to the screen (perhaps by page flipping). /// Presents the window to the screen (perhaps by page flipping).
fn present(&self); fn present(&self);
@ -137,7 +137,7 @@ pub trait WindowMethods {
fn head_parsed(&self); fn head_parsed(&self);
/// Returns the scale factor of the system (device pixels / screen pixels). /// Returns the scale factor of the system (device pixels / screen pixels).
fn scale_factor(&self) -> ScaleFactor<ScreenPx, DevicePixel, f32>; fn scale_factor(&self) -> ScaleFactor<f32, ScreenPx, DevicePixel>;
/// Gets the OS native graphics display for this window. /// Gets the OS native graphics display for this window.
fn native_display(&self) -> NativeDisplay; fn native_display(&self) -> NativeDisplay;

View file

@ -15,7 +15,7 @@ canvas = {path = "../canvas"}
canvas_traits = {path = "../canvas_traits"} canvas_traits = {path = "../canvas_traits"}
compositing = {path = "../compositing"} compositing = {path = "../compositing"}
devtools_traits = {path = "../devtools_traits"} devtools_traits = {path = "../devtools_traits"}
euclid = "0.7.1" euclid = "0.8.2"
gfx = {path = "../gfx"} gfx = {path = "../gfx"}
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}
ipc-channel = "0.4.0" ipc-channel = "0.4.0"
@ -24,7 +24,7 @@ layout_traits = {path = "../layout_traits"}
log = "0.3.5" log = "0.3.5"
msg = {path = "../msg"} msg = {path = "../msg"}
net_traits = {path = "../net_traits"} net_traits = {path = "../net_traits"}
offscreen_gl_context = "0.1.2" offscreen_gl_context = "0.2.0"
plugins = {path = "../plugins"} plugins = {path = "../plugins"}
profile_traits = {path = "../profile_traits"} profile_traits = {path = "../profile_traits"}
rand = "0.3" rand = "0.3"

View file

@ -535,7 +535,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
fn new_pipeline(&mut self, fn new_pipeline(&mut self,
pipeline_id: PipelineId, pipeline_id: PipelineId,
parent_info: Option<(PipelineId, SubpageId, FrameType)>, parent_info: Option<(PipelineId, SubpageId, FrameType)>,
initial_window_size: Option<TypedSize2D<PagePx, f32>>, initial_window_size: Option<TypedSize2D<f32, PagePx>>,
script_channel: Option<IpcSender<ConstellationControlMsg>>, script_channel: Option<IpcSender<ConstellationControlMsg>>,
load_data: LoadData, load_data: LoadData,
is_private: bool) { is_private: bool) {
@ -734,7 +734,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
// frame trees in the navigation context containing the subframe. // frame trees in the navigation context containing the subframe.
FromCompositorMsg::FrameSize(pipeline_id, size) => { FromCompositorMsg::FrameSize(pipeline_id, size) => {
debug!("constellation got frame size message"); debug!("constellation got frame size message");
self.handle_frame_size_msg(pipeline_id, &Size2D::from_untyped(&size)); self.handle_frame_size_msg(pipeline_id, &TypedSize2D::from_untyped(&size));
} }
FromCompositorMsg::GetFrame(pipeline_id, resp_chan) => { FromCompositorMsg::GetFrame(pipeline_id, resp_chan) => {
debug!("constellation got get root pipeline message"); debug!("constellation got get root pipeline message");
@ -1160,7 +1160,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
fn handle_frame_size_msg(&mut self, fn handle_frame_size_msg(&mut self,
pipeline_id: PipelineId, pipeline_id: PipelineId,
size: &TypedSize2D<PagePx, f32>) { size: &TypedSize2D<f32, PagePx>) {
let msg = ConstellationControlMsg::Resize(pipeline_id, WindowSizeData { let msg = ConstellationControlMsg::Resize(pipeline_id, WindowSizeData {
visible_viewport: *size, visible_viewport: *size,
initial_viewport: *size * ScaleFactor::new(1.0), initial_viewport: *size * ScaleFactor::new(1.0),
@ -2139,7 +2139,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
// If the rectangle for this pipeline is zero sized, it will // If the rectangle for this pipeline is zero sized, it will
// never be painted. In this case, don't query the layout // never be painted. In this case, don't query the layout
// thread as it won't contribute to the final output image. // thread as it won't contribute to the final output image.
if size == Size2D::zero() { if size == TypedSize2D::zero() {
continue; continue;
} }

View file

@ -62,7 +62,7 @@ pub struct Pipeline {
pub url: Url, pub url: Url,
/// The title of the most recently-loaded page. /// The title of the most recently-loaded page.
pub title: Option<String>, pub title: Option<String>,
pub size: Option<TypedSize2D<PagePx, f32>>, pub size: Option<TypedSize2D<f32, PagePx>>,
/// Whether this pipeline is currently running animations. Pipelines that are running /// Whether this pipeline is currently running animations. Pipelines that are running
/// animations cause composites to be continually scheduled. /// animations cause composites to be continually scheduled.
pub running_animations: bool, pub running_animations: bool,
@ -112,9 +112,9 @@ pub struct InitialPipelineState {
/// A channel to the memory profiler thread. /// A channel to the memory profiler thread.
pub mem_profiler_chan: profile_mem::ProfilerChan, pub mem_profiler_chan: profile_mem::ProfilerChan,
/// Information about the initial window size. /// Information about the initial window size.
pub window_size: Option<TypedSize2D<PagePx, f32>>, pub window_size: Option<TypedSize2D<f32, PagePx>>,
/// Information about the device pixel ratio. /// Information about the device pixel ratio.
pub device_pixel_ratio: ScaleFactor<ViewportPx, DevicePixel, f32>, pub device_pixel_ratio: ScaleFactor<f32, ViewportPx, DevicePixel>,
/// A channel to the script thread, if applicable. If this is `Some`, /// A channel to the script thread, if applicable. If this is `Some`,
/// then `parent_info` must also be `Some`. /// then `parent_info` must also be `Some`.
pub script_chan: Option<IpcSender<ConstellationControlMsg>>, pub script_chan: Option<IpcSender<ConstellationControlMsg>>,
@ -280,7 +280,7 @@ impl Pipeline {
chrome_to_paint_chan: Sender<ChromeToPaintMsg>, chrome_to_paint_chan: Sender<ChromeToPaintMsg>,
is_private: bool, is_private: bool,
url: Url, url: Url,
size: Option<TypedSize2D<PagePx, f32>>, size: Option<TypedSize2D<f32, PagePx>>,
visible: bool) visible: bool)
-> Pipeline { -> Pipeline {
Pipeline { Pipeline {

View file

@ -14,7 +14,7 @@ path = "lib.rs"
app_units = "0.2.5" app_units = "0.2.5"
azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]} azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]}
bitflags = "0.7" bitflags = "0.7"
euclid = "0.7.1" euclid = "0.8.2"
fnv = "1.0" fnv = "1.0"
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}
harfbuzz-sys = "0.1" harfbuzz-sys = "0.1"
@ -59,7 +59,7 @@ core-text = "1.1"
[target.'cfg(any(target_os = "linux", target_os = "android", target_os = "windows"))'.dependencies] [target.'cfg(any(target_os = "linux", target_os = "android", target_os = "windows"))'.dependencies]
freetype = {git = "https://github.com/servo/rust-freetype"} freetype = {git = "https://github.com/servo/rust-freetype"}
servo-fontconfig = "0.2" servo-fontconfig = "0.2.1"
[target.'cfg(any(target_arch = "x86_64", target_arch = "aarch64"))'.dependencies] [target.'cfg(any(target_arch = "x86_64", target_arch = "aarch64"))'.dependencies]
simd = {git = "https://github.com/huonw/simd"} simd = {git = "https://github.com/huonw/simd"}

View file

@ -45,7 +45,7 @@ use style::computed_values::{border_style, filter, image_rendering, mix_blend_mo
use style_traits::cursor::Cursor; use style_traits::cursor::Cursor;
use text::TextRun; use text::TextRun;
use text::glyph::ByteIndex; use text::glyph::ByteIndex;
use util::geometry::{self, MAX_RECT, ScreenPx}; use util::geometry::{self, max_rect, ScreenPx};
use webrender_traits::{self, WebGLContextId}; use webrender_traits::{self, WebGLContextId};
pub use style::dom::OpaqueNode; pub use style::dom::OpaqueNode;
@ -530,7 +530,7 @@ impl DisplayList {
} }
} }
fn transformed_tile_rect(tile_rect: TypedRect<ScreenPx, usize>, transform: &Matrix4D<f32>) -> Rect<Au> { fn transformed_tile_rect(tile_rect: TypedRect<usize, ScreenPx>, transform: &Matrix4D<f32>) -> Rect<Au> {
// Invert the current transform, then use this to back transform // Invert the current transform, then use this to back transform
// the tile rect (placed at the origin) into the space of this // the tile rect (placed at the origin) into the space of this
// stacking context. // stacking context.
@ -884,7 +884,7 @@ impl ClippingRegion {
#[inline] #[inline]
pub fn max() -> ClippingRegion { pub fn max() -> ClippingRegion {
ClippingRegion { ClippingRegion {
main: MAX_RECT, main: max_rect(),
complex: Vec::new(), complex: Vec::new(),
} }
} }
@ -1176,7 +1176,7 @@ impl BorderRadii<Au> {
// Scale the border corner radius by the specified factor // Scale the border corner radius by the specified factor
pub fn scale_corner_by(corner: Size2D<Au>, s: f32) -> Size2D<Au> { pub fn scale_corner_by(corner: Size2D<Au>, s: f32) -> Size2D<Au> {
Size2D { width: corner.width.scale_by(s), height: corner.height.scale_by(s) } Size2D::new(corner.width.scale_by(s), corner.height.scale_by(s))
} }
} }
@ -1193,10 +1193,10 @@ impl<T> BorderRadii<T> where T: PartialEq + Zero + Clone {
/// Returns a set of border radii that all have the given value. /// Returns a set of border radii that all have the given value.
pub fn all_same(value: T) -> BorderRadii<T> { pub fn all_same(value: T) -> BorderRadii<T> {
BorderRadii { BorderRadii {
top_left: Size2D { width: value.clone(), height: value.clone() }, top_left: Size2D::new(value.clone(), value.clone()),
top_right: Size2D { width: value.clone(), height: value.clone() }, top_right: Size2D::new(value.clone(), value.clone()),
bottom_right: Size2D { width: value.clone(), height: value.clone() }, bottom_right: Size2D::new(value.clone(), value.clone()),
bottom_left: Size2D { width: value.clone(), height: value.clone() }, bottom_left: Size2D::new(value.clone(), value.clone()),
} }
} }
} }

View file

@ -35,16 +35,16 @@ use style::computed_values::{border_style, filter, image_rendering, mix_blend_mo
use style_traits::PagePx; use style_traits::PagePx;
use text::TextRun; use text::TextRun;
use text::glyph::ByteIndex; use text::glyph::ByteIndex;
use util::geometry::{self, MAX_RECT, ScreenPx}; use util::geometry::{self, max_rect, ScreenPx};
use util::opts; use util::opts;
pub struct PaintContext<'a> { pub struct PaintContext<'a> {
pub draw_target: DrawTarget, pub draw_target: DrawTarget,
pub font_context: &'a mut Box<FontContext>, pub font_context: &'a mut Box<FontContext>,
/// The rectangle that this context encompasses in page coordinates. /// The rectangle that this context encompasses in page coordinates.
pub page_rect: TypedRect<PagePx, f32>, pub page_rect: TypedRect<f32, PagePx>,
/// The rectangle that this context encompasses in screen coordinates (pixels). /// The rectangle that this context encompasses in screen coordinates (pixels).
pub screen_rect: TypedRect<ScreenPx, usize>, pub screen_rect: TypedRect<usize, ScreenPx>,
/// The clipping rect for the stacking context as a whole. /// The clipping rect for the stacking context as a whole.
pub clip_rect: Option<Rect<Au>>, pub clip_rect: Option<Rect<Au>>,
/// The current transient clipping region, if any. A "transient clipping region" is the /// The current transient clipping region, if any. A "transient clipping region" is the
@ -126,8 +126,8 @@ impl<'a> PaintContext<'a> {
rect.translate(&self.subpixel_offset).to_nearest_azure_rect(self.screen_pixels_per_px()) rect.translate(&self.subpixel_offset).to_nearest_azure_rect(self.screen_pixels_per_px())
} }
pub fn screen_pixels_per_px(&self) -> ScaleFactor<PagePx, ScreenPx, f32> { pub fn screen_pixels_per_px(&self) -> ScaleFactor<f32, PagePx, ScreenPx> {
self.screen_rect.as_f32().size.width / self.page_rect.size.width ScaleFactor::new(self.screen_rect.as_f32().size.width / self.page_rect.size.width)
} }
pub fn draw_target(&self) -> &DrawTarget { pub fn draw_target(&self) -> &DrawTarget {
@ -1539,7 +1539,7 @@ impl<'a> PaintContext<'a> {
match clip_mode { match clip_mode {
BoxShadowClipMode::Inset => { BoxShadowClipMode::Inset => {
path = temporary_draw_target.draw_target path = temporary_draw_target.draw_target
.create_rectangular_border_path(&MAX_RECT, .create_rectangular_border_path(&max_rect(),
&shadow_bounds, &shadow_bounds,
pixels_per_px); pixels_per_px);
self.draw_target.push_clip( self.draw_target.push_clip(
@ -1549,7 +1549,7 @@ impl<'a> PaintContext<'a> {
path = temporary_draw_target.draw_target.create_rectangular_path(&shadow_bounds, path = temporary_draw_target.draw_target.create_rectangular_path(&shadow_bounds,
pixels_per_px); pixels_per_px);
self.draw_target.push_clip( self.draw_target.push_clip(
&self.draw_target.create_rectangular_border_path(&MAX_RECT, box_bounds, &self.draw_target.create_rectangular_border_path(&max_rect(), box_bounds,
pixels_per_px)) pixels_per_px))
} }
BoxShadowClipMode::None => { BoxShadowClipMode::None => {
@ -1644,12 +1644,12 @@ impl<'a> PaintContext<'a> {
} }
pub trait ToAzurePoint { pub trait ToAzurePoint {
fn to_nearest_azure_point(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Point2D<AzFloat>; fn to_nearest_azure_point(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Point2D<AzFloat>;
fn to_azure_point(&self) -> Point2D<AzFloat>; fn to_azure_point(&self) -> Point2D<AzFloat>;
} }
impl ToAzurePoint for Point2D<Au> { impl ToAzurePoint for Point2D<Au> {
fn to_nearest_azure_point(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Point2D<AzFloat> { fn to_nearest_azure_point(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Point2D<AzFloat> {
Point2D::new(self.x.to_nearest_pixel(pixels_per_px.get()) as AzFloat, Point2D::new(self.x.to_nearest_pixel(pixels_per_px.get()) as AzFloat,
self.y.to_nearest_pixel(pixels_per_px.get()) as AzFloat) self.y.to_nearest_pixel(pixels_per_px.get()) as AzFloat)
} }
@ -1659,15 +1659,15 @@ impl ToAzurePoint for Point2D<Au> {
} }
pub trait ToAzureRect { pub trait ToAzureRect {
fn to_nearest_azure_rect(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Rect<AzFloat>; fn to_nearest_azure_rect(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Rect<AzFloat>;
fn to_nearest_non_empty_azure_rect(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Rect<AzFloat>; fn to_nearest_non_empty_azure_rect(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Rect<AzFloat>;
fn to_azure_rect(&self) -> Rect<AzFloat>; fn to_azure_rect(&self) -> Rect<AzFloat>;
} }
impl ToAzureRect for Rect<Au> { impl ToAzureRect for Rect<Au> {
/// Round rects to pixel coordinates, maintaining the invariant of non-overlap, /// Round rects to pixel coordinates, maintaining the invariant of non-overlap,
/// assuming that before rounding rects don't overlap. /// assuming that before rounding rects don't overlap.
fn to_nearest_azure_rect(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Rect<AzFloat> { fn to_nearest_azure_rect(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Rect<AzFloat> {
// Rounding the top left corner to the nearest pixel with the size rounded // Rounding the top left corner to the nearest pixel with the size rounded
// to the nearest pixel multiple would violate the non-overlap condition, // to the nearest pixel multiple would violate the non-overlap condition,
// e.g. // e.g.
@ -1687,7 +1687,7 @@ impl ToAzureRect for Rect<Au> {
/// 10px×0.6px at 0px,28.56px -> 10px×0px at 0px,29px /// 10px×0.6px at 0px,28.56px -> 10px×0px at 0px,29px
/// Instead round the top left to the nearest pixel and the size to the nearest pixel /// Instead round the top left to the nearest pixel and the size to the nearest pixel
/// multiple. It's possible for non-overlapping rects after this rounding to overlap. /// multiple. It's possible for non-overlapping rects after this rounding to overlap.
fn to_nearest_non_empty_azure_rect(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Rect<AzFloat> { fn to_nearest_non_empty_azure_rect(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Rect<AzFloat> {
Rect::new(self.origin.to_nearest_azure_point(pixels_per_px), Rect::new(self.origin.to_nearest_azure_point(pixels_per_px),
self.size.to_nearest_azure_size(pixels_per_px)) self.size.to_nearest_azure_size(pixels_per_px))
} }
@ -1698,11 +1698,11 @@ impl ToAzureRect for Rect<Au> {
} }
pub trait ToNearestAzureSize { pub trait ToNearestAzureSize {
fn to_nearest_azure_size(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Size2D<AzFloat>; fn to_nearest_azure_size(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Size2D<AzFloat>;
} }
impl ToNearestAzureSize for Size2D<Au> { impl ToNearestAzureSize for Size2D<Au> {
fn to_nearest_azure_size(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Size2D<AzFloat> { fn to_nearest_azure_size(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Size2D<AzFloat> {
Size2D::new(self.width.to_nearest_pixel(pixels_per_px.get()) as AzFloat, Size2D::new(self.width.to_nearest_pixel(pixels_per_px.get()) as AzFloat,
self.height.to_nearest_pixel(pixels_per_px.get()) as AzFloat) self.height.to_nearest_pixel(pixels_per_px.get()) as AzFloat)
} }
@ -1735,11 +1735,11 @@ impl ToAzureIntSize for Size2D<AzFloat> {
} }
trait ToSideOffsetsPixels { trait ToSideOffsetsPixels {
fn to_float_pixels(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> SideOffsets2D<AzFloat>; fn to_float_pixels(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> SideOffsets2D<AzFloat>;
} }
impl ToSideOffsetsPixels for SideOffsets2D<Au> { impl ToSideOffsetsPixels for SideOffsets2D<Au> {
fn to_float_pixels(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> SideOffsets2D<AzFloat> { fn to_float_pixels(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> SideOffsets2D<AzFloat> {
SideOffsets2D::new(self.top.to_nearest_pixel(pixels_per_px.get()) as AzFloat, SideOffsets2D::new(self.top.to_nearest_pixel(pixels_per_px.get()) as AzFloat,
self.right.to_nearest_pixel(pixels_per_px.get()) as AzFloat, self.right.to_nearest_pixel(pixels_per_px.get()) as AzFloat,
self.bottom.to_nearest_pixel(pixels_per_px.get()) as AzFloat, self.bottom.to_nearest_pixel(pixels_per_px.get()) as AzFloat,
@ -1748,24 +1748,24 @@ impl ToSideOffsetsPixels for SideOffsets2D<Au> {
} }
trait ToRadiiPixels { trait ToRadiiPixels {
fn to_radii_pixels(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> BorderRadii<AzFloat>; fn to_radii_pixels(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> BorderRadii<AzFloat>;
} }
impl ToRadiiPixels for BorderRadii<Au> { impl ToRadiiPixels for BorderRadii<Au> {
fn to_radii_pixels(&self, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> BorderRadii<AzFloat> { fn to_radii_pixels(&self, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> BorderRadii<AzFloat> {
let to_nearest_px = |x: Au| -> AzFloat { let to_nearest_px = |x: Au| -> AzFloat {
x.to_nearest_pixel(pixels_per_px.get()) as AzFloat x.to_nearest_pixel(pixels_per_px.get()) as AzFloat
}; };
BorderRadii { BorderRadii {
top_left: Size2D { width: to_nearest_px(self.top_left.width), top_left: Size2D::new(to_nearest_px(self.top_left.width),
height: to_nearest_px(self.top_left.height) }, to_nearest_px(self.top_left.height)),
top_right: Size2D { width: to_nearest_px(self.top_right.width), top_right: Size2D::new(to_nearest_px(self.top_right.width),
height: to_nearest_px(self.top_right.height) }, to_nearest_px(self.top_right.height)),
bottom_left: Size2D { width: to_nearest_px(self.bottom_left.width), bottom_left: Size2D::new(to_nearest_px(self.bottom_left.width),
height: to_nearest_px(self.bottom_left.height) }, to_nearest_px(self.bottom_left.height)),
bottom_right: Size2D { width: to_nearest_px(self.bottom_right.width), bottom_right: Size2D::new(to_nearest_px(self.bottom_right.width),
height: to_nearest_px(self.bottom_right.height) }, to_nearest_px(self.bottom_right.height)),
} }
} }
} }
@ -1863,17 +1863,17 @@ trait DrawTargetExtensions {
fn create_rectangular_border_path(&self, fn create_rectangular_border_path(&self,
outer_rect: &Rect<Au>, outer_rect: &Rect<Au>,
inner_rect: &Rect<Au>, inner_rect: &Rect<Au>,
pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Path; pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Path;
/// Creates and returns a path that represents a rectangle. /// Creates and returns a path that represents a rectangle.
fn create_rectangular_path(&self, rect: &Rect<Au>, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Path; fn create_rectangular_path(&self, rect: &Rect<Au>, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Path;
} }
impl DrawTargetExtensions for DrawTarget { impl DrawTargetExtensions for DrawTarget {
fn create_rectangular_border_path(&self, fn create_rectangular_border_path(&self,
outer_rect: &Rect<Au>, outer_rect: &Rect<Au>,
inner_rect: &Rect<Au>, inner_rect: &Rect<Au>,
pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Path { pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Path {
// +-----------+ // +-----------+
// |2 |1 // |2 |1
// | | // | |
@ -1902,7 +1902,7 @@ impl DrawTargetExtensions for DrawTarget {
path_builder.finish() path_builder.finish()
} }
fn create_rectangular_path(&self, rect: &Rect<Au>, pixels_per_px: ScaleFactor<PagePx, ScreenPx, f32>) -> Path { fn create_rectangular_path(&self, rect: &Rect<Au>, pixels_per_px: ScaleFactor<f32, PagePx, ScreenPx>) -> Path {
// Explicitly round to the nearest non-empty rect because when drawing // Explicitly round to the nearest non-empty rect because when drawing
// box-shadow the rect height can be between 0.5px & 1px and could // box-shadow the rect height can be between 0.5px & 1px and could
// otherwise round to an empty rect. // otherwise round to an empty rect.

View file

@ -11,7 +11,7 @@ use display_list::{DisplayItem, DisplayList, DisplayListTraversal};
use display_list::{LayerInfo, StackingContext, StackingContextType}; use display_list::{LayerInfo, StackingContext, StackingContextType};
use euclid::Matrix4D; use euclid::Matrix4D;
use euclid::point::Point2D; use euclid::point::Point2D;
use euclid::rect::Rect; use euclid::rect::{Rect, TypedRect};
use euclid::size::Size2D; use euclid::size::Size2D;
use font_cache_thread::FontCacheThread; use font_cache_thread::FontCacheThread;
use font_context::FontContext; use font_context::FontContext;
@ -684,8 +684,8 @@ impl WorkerThread {
let mut paint_context = PaintContext { let mut paint_context = PaintContext {
draw_target: draw_target.clone(), draw_target: draw_target.clone(),
font_context: &mut self.font_context, font_context: &mut self.font_context,
page_rect: Rect::from_untyped(&tile.page_rect.translate(&paint_layer.display_list_origin)), page_rect: TypedRect::from_untyped(&tile.page_rect.translate(&paint_layer.display_list_origin)),
screen_rect: Rect::from_untyped(&tile.screen_rect), screen_rect: TypedRect::from_untyped(&tile.screen_rect),
clip_rect: None, clip_rect: None,
transient_clip: None, transient_clip: None,
layer_kind: layer_kind, layer_kind: layer_kind,

View file

@ -11,7 +11,7 @@ path = "lib.rs"
[dependencies] [dependencies]
azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]} azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]}
euclid = "0.7.1" euclid = "0.8.2"
heapsize = "0.3.0" heapsize = "0.3.0"
heapsize_plugin = "0.1.2" heapsize_plugin = "0.1.2"
layers = {git = "https://github.com/servo/rust-layers", features = ["plugins"]} layers = {git = "https://github.com/servo/rust-layers", features = ["plugins"]}

View file

@ -15,7 +15,7 @@ azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]}
bitflags = "0.7" bitflags = "0.7"
canvas_traits = {path = "../canvas_traits"} canvas_traits = {path = "../canvas_traits"}
cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]} cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]}
euclid = "0.7.1" euclid = "0.8.2"
fnv = "1.0" fnv = "1.0"
gfx = {path = "../gfx"} gfx = {path = "../gfx"}
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}

View file

@ -61,7 +61,7 @@ use style::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize, WritingMod
use style::properties::ServoComputedValues; use style::properties::ServoComputedValues;
use style::values::computed::{LengthOrNone, LengthOrPercentageOrNone}; use style::values::computed::{LengthOrNone, LengthOrPercentageOrNone};
use style::values::computed::{LengthOrPercentage, LengthOrPercentageOrAuto}; use style::values::computed::{LengthOrPercentage, LengthOrPercentageOrAuto};
use util::geometry::MAX_RECT; use util::geometry::max_rect;
/// The number of screens of data we're allowed to generate display lists for in each direction. /// The number of screens of data we're allowed to generate display lists for in each direction.
const DISPLAY_PORT_SIZE_FACTOR: i32 = 8; const DISPLAY_PORT_SIZE_FACTOR: i32 = 8;
@ -1842,7 +1842,7 @@ impl Flow for BlockFlow {
if self.is_root() { if self.is_root() {
self.base.clip = ClippingRegion::max(); self.base.clip = ClippingRegion::max();
self.base.stacking_relative_position_of_display_port = MAX_RECT; self.base.stacking_relative_position_of_display_port = max_rect();
} }
let transform_style = self.fragment.style().get_used_transform_style(); let transform_style = self.fragment.style().get_used_transform_style();
@ -1855,7 +1855,7 @@ impl Flow for BlockFlow {
(overflow_x::T::auto, _) | (overflow_x::T::scroll, _) | (overflow_x::T::auto, _) | (overflow_x::T::scroll, _) |
(_, overflow_x::T::auto) | (_, overflow_x::T::scroll) => { (_, overflow_x::T::auto) | (_, overflow_x::T::scroll) => {
self.base.clip = ClippingRegion::max(); self.base.clip = ClippingRegion::max();
self.base.stacking_relative_position_of_display_port = MAX_RECT; self.base.stacking_relative_position_of_display_port = max_rect();
} }
_ => {} _ => {}
} }

View file

@ -493,12 +493,11 @@ pub trait ToGfxMatrix {
impl ToGfxMatrix for ComputedMatrix { impl ToGfxMatrix for ComputedMatrix {
fn to_gfx_matrix(&self) -> Matrix4D<f32> { fn to_gfx_matrix(&self) -> Matrix4D<f32> {
Matrix4D { Matrix4D::new(
m11: self.m11 as f32, m12: self.m12 as f32, m13: self.m13 as f32, m14: self.m14 as f32, self.m11 as f32, self.m12 as f32, self.m13 as f32, self.m14 as f32,
m21: self.m21 as f32, m22: self.m22 as f32, m23: self.m23 as f32, m24: self.m24 as f32, self.m21 as f32, self.m22 as f32, self.m23 as f32, self.m24 as f32,
m31: self.m31 as f32, m32: self.m32 as f32, m33: self.m33 as f32, m34: self.m34 as f32, self.m31 as f32, self.m32 as f32, self.m33 as f32, self.m34 as f32,
m41: self.m41 as f32, m42: self.m42 as f32, m43: self.m43 as f32, m44: self.m44 as f32 self.m41 as f32, self.m42 as f32, self.m43 as f32, self.m44 as f32)
}
} }
} }

View file

@ -11,6 +11,7 @@ use block::BlockFlow;
use context::LayoutContext; use context::LayoutContext;
use display_list_builder::DisplayListBuildState; use display_list_builder::DisplayListBuildState;
use euclid::Point2D; use euclid::Point2D;
use euclid::Size2D;
use floats::FloatKind; use floats::FloatKind;
use flow::{Flow, FlowClass, OpaqueFlow, mut_base, FragmentationContext}; use flow::{Flow, FlowClass, OpaqueFlow, mut_base, FragmentationContext};
use flow_ref::{self, FlowRef}; use flow_ref::{self, FlowRef};
@ -168,7 +169,7 @@ impl Flow for MulticolFlow {
let pitch = pitch.to_physical(self.block_flow.base.writing_mode); let pitch = pitch.to_physical(self.block_flow.base.writing_mode);
for (i, child) in self.block_flow.base.children.iter_mut().enumerate() { for (i, child) in self.block_flow.base.children.iter_mut().enumerate() {
let point = &mut mut_base(child).stacking_relative_position; let point = &mut mut_base(child).stacking_relative_position;
*point = *point + pitch * i as i32; *point = *point + Size2D::new(pitch.width * i as i32, pitch.height * i as i32);
} }
} }

View file

@ -12,7 +12,7 @@ path = "lib.rs"
[dependencies] [dependencies]
app_units = "0.2.5" app_units = "0.2.5"
azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]} azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]}
euclid = "0.7.1" euclid = "0.8.2"
fnv = "1.0" fnv = "1.0"
gfx = {path = "../gfx"} gfx = {path = "../gfx"}
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}

View file

@ -113,7 +113,7 @@ use style::stylesheets::{Stylesheet, CSSRuleIteratorExt};
use style::timer::Timer; use style::timer::Timer;
use style::workqueue::WorkQueue; use style::workqueue::WorkQueue;
use url::Url; use url::Url;
use util::geometry::MAX_RECT; use util::geometry::max_rect;
use util::ipc::OptionalIpcSender; use util::ipc::OptionalIpcSender;
use util::opts; use util::opts;
use util::prefs::PREFS; use util::prefs::PREFS;
@ -617,7 +617,7 @@ impl LayoutThread {
let reflow_info = Reflow { let reflow_info = Reflow {
goal: ReflowGoal::ForDisplay, goal: ReflowGoal::ForDisplay,
page_clip_rect: MAX_RECT, page_clip_rect: max_rect(),
}; };
let mut layout_context = self.build_shared_layout_context(&*rw_data, let mut layout_context = self.build_shared_layout_context(&*rw_data,
false, false,
@ -1076,8 +1076,8 @@ impl LayoutThread {
let initial_viewport = data.window_size.initial_viewport; let initial_viewport = data.window_size.initial_viewport;
let old_viewport_size = self.viewport_size; let old_viewport_size = self.viewport_size;
let current_screen_size = Size2D::new(Au::from_f32_px(initial_viewport.width.get()), let current_screen_size = Size2D::new(Au::from_f32_px(initial_viewport.width),
Au::from_f32_px(initial_viewport.height.get())); Au::from_f32_px(initial_viewport.height));
// Calculate the actual viewport as per DEVICE-ADAPT § 6 // Calculate the actual viewport as per DEVICE-ADAPT § 6
let device = Device::new(MediaType::Screen, initial_viewport); let device = Device::new(MediaType::Screen, initial_viewport);
@ -1089,8 +1089,8 @@ impl LayoutThread {
debug!("Viewport constraints: {:?}", constraints); debug!("Viewport constraints: {:?}", constraints);
// other rules are evaluated against the actual viewport // other rules are evaluated against the actual viewport
Size2D::new(Au::from_f32_px(constraints.size.width.get()), Size2D::new(Au::from_f32_px(constraints.size.width),
Au::from_f32_px(constraints.size.height.get())) Au::from_f32_px(constraints.size.height))
} }
None => current_screen_size, None => current_screen_size,
}; };
@ -1303,7 +1303,7 @@ impl LayoutThread {
// Regenerate the display lists. // Regenerate the display lists.
let reflow_info = Reflow { let reflow_info = Reflow {
goal: ReflowGoal::ForDisplay, goal: ReflowGoal::ForDisplay,
page_clip_rect: MAX_RECT, page_clip_rect: max_rect(),
}; };
let mut layout_context = self.build_shared_layout_context(&*rw_data, let mut layout_context = self.build_shared_layout_context(&*rw_data,
@ -1347,7 +1347,7 @@ impl LayoutThread {
fn tick_animations(&mut self, rw_data: &mut LayoutThreadData) { fn tick_animations(&mut self, rw_data: &mut LayoutThreadData) {
let reflow_info = Reflow { let reflow_info = Reflow {
goal: ReflowGoal::ForDisplay, goal: ReflowGoal::ForDisplay,
page_clip_rect: MAX_RECT, page_clip_rect: max_rect(),
}; };
let mut layout_context = self.build_shared_layout_context(&*rw_data, let mut layout_context = self.build_shared_layout_context(&*rw_data,
@ -1378,7 +1378,7 @@ impl LayoutThread {
let reflow_info = Reflow { let reflow_info = Reflow {
goal: ReflowGoal::ForDisplay, goal: ReflowGoal::ForDisplay,
page_clip_rect: MAX_RECT, page_clip_rect: max_rect(),
}; };
let mut layout_context = self.build_shared_layout_context(&*rw_data, let mut layout_context = self.build_shared_layout_context(&*rw_data,

View file

@ -30,7 +30,7 @@ cookie = { version = "0.2.5", features = ["serialize-serde", "serialize-rustc" ]
cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]} cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]}
devtools_traits = {path = "../devtools_traits"} devtools_traits = {path = "../devtools_traits"}
encoding = "0.2" encoding = "0.2"
euclid = "0.7.1" euclid = "0.8.2"
fnv = "1.0" fnv = "1.0"
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}
heapsize = "0.3.6" heapsize = "0.3.6"
@ -47,7 +47,7 @@ mime_guess = "1.8.0"
msg = {path = "../msg"} msg = {path = "../msg"}
net_traits = {path = "../net_traits"} net_traits = {path = "../net_traits"}
num-traits = "0.1.32" num-traits = "0.1.32"
offscreen_gl_context = "0.1.2" offscreen_gl_context = "0.2.0"
open = "1.1.1" open = "1.1.1"
phf = "0.7.16" phf = "0.7.16"
phf_macros = "0.7.16" phf_macros = "0.7.16"

View file

@ -2807,7 +2807,7 @@ impl DocumentMethods for Document {
fn ElementFromPoint(&self, x: Finite<f64>, y: Finite<f64>) -> Option<Root<Element>> { fn ElementFromPoint(&self, x: Finite<f64>, y: Finite<f64>) -> Option<Root<Element>> {
let x = *x as f32; let x = *x as f32;
let y = *y as f32; let y = *y as f32;
let point = &Point2D { x: x, y: y }; let point = &Point2D::new(x, y);
let window = window_from_node(self); let window = window_from_node(self);
let viewport = window.window_size().unwrap().visible_viewport; let viewport = window.window_size().unwrap().visible_viewport;
@ -2815,7 +2815,7 @@ impl DocumentMethods for Document {
return None; return None;
} }
if x < 0.0 || y < 0.0 || x > viewport.width.get() || y > viewport.height.get() { if x < 0.0 || y < 0.0 || x > viewport.width || y > viewport.height {
return None; return None;
} }
@ -2840,7 +2840,7 @@ impl DocumentMethods for Document {
fn ElementsFromPoint(&self, x: Finite<f64>, y: Finite<f64>) -> Vec<Root<Element>> { fn ElementsFromPoint(&self, x: Finite<f64>, y: Finite<f64>) -> Vec<Root<Element>> {
let x = *x as f32; let x = *x as f32;
let y = *y as f32; let y = *y as f32;
let point = &Point2D { x: x, y: y }; let point = &Point2D::new(x, y);
let window = window_from_node(self); let window = window_from_node(self);
let viewport = window.window_size().unwrap().visible_viewport; let viewport = window.window_size().unwrap().visible_viewport;
@ -2849,7 +2849,7 @@ impl DocumentMethods for Document {
} }
// Step 2 // Step 2
if x < 0.0 || y < 0.0 || x > viewport.width.get() || y > viewport.height.get() { if x < 0.0 || y < 0.0 || x > viewport.width || y > viewport.height {
return vec!(); return vec!();
} }

View file

@ -103,7 +103,7 @@ use timers::{IsInterval, OneshotTimerCallback, OneshotTimerHandle, OneshotTimers
#[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))] #[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))]
use tinyfiledialogs::{self, MessageBoxIcon}; use tinyfiledialogs::{self, MessageBoxIcon};
use url::Url; use url::Url;
use util::geometry::{self, MAX_RECT}; use util::geometry::{self, max_rect};
use util::opts; use util::opts;
use util::prefs::PREFS; use util::prefs::PREFS;
use webdriver_handlers::jsval_to_webdriver; use webdriver_handlers::jsval_to_webdriver;
@ -751,7 +751,7 @@ impl WindowMethods for Window {
//TODO Include Scrollbar //TODO Include Scrollbar
fn InnerHeight(&self) -> i32 { fn InnerHeight(&self) -> i32 {
self.window_size.get() self.window_size.get()
.and_then(|e| e.visible_viewport.height.get().to_i32()) .and_then(|e| e.visible_viewport.height.to_i32())
.unwrap_or(0) .unwrap_or(0)
} }
@ -759,7 +759,7 @@ impl WindowMethods for Window {
//TODO Include Scrollbar //TODO Include Scrollbar
fn InnerWidth(&self) -> i32 { fn InnerWidth(&self) -> i32 {
self.window_size.get() self.window_size.get()
.and_then(|e| e.visible_viewport.width.get().to_i32()) .and_then(|e| e.visible_viewport.width.to_i32())
.unwrap_or(0) .unwrap_or(0)
} }
@ -1529,7 +1529,7 @@ impl Window {
return false; return false;
} }
let had_clip_rect = clip_rect != MAX_RECT; let had_clip_rect = clip_rect != max_rect();
if had_clip_rect && !should_move_clip_rect(clip_rect, viewport) { if had_clip_rect && !should_move_clip_rect(clip_rect, viewport) {
return false; return false;
} }
@ -1537,7 +1537,7 @@ impl Window {
self.page_clip_rect.set(proposed_clip_rect); self.page_clip_rect.set(proposed_clip_rect);
// If we didn't have a clip rect, the previous display doesn't need rebuilding // If we didn't have a clip rect, the previous display doesn't need rebuilding
// because it was built for infinite clip (MAX_RECT). // because it was built for infinite clip (max_rect()).
had_clip_rect had_clip_rect
} }
@ -1721,7 +1721,7 @@ impl Window {
resource_threads: resource_threads, resource_threads: resource_threads,
bluetooth_thread: bluetooth_thread, bluetooth_thread: bluetooth_thread,
constellation_chan: constellation_chan, constellation_chan: constellation_chan,
page_clip_rect: Cell::new(MAX_RECT), page_clip_rect: Cell::new(max_rect()),
fragment_name: DOMRefCell::new(None), fragment_name: DOMRefCell::new(None),
resize_event: Cell::new(None), resize_event: Cell::new(None),
next_subpage_id: Cell::new(SubpageId(0)), next_subpage_id: Cell::new(SubpageId(0)),

View file

@ -14,7 +14,7 @@ app_units = "0.2.5"
bitflags = "0.7" bitflags = "0.7"
canvas_traits = {path = "../canvas_traits"} canvas_traits = {path = "../canvas_traits"}
cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]} cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]}
euclid = "0.7.1" euclid = "0.8.2"
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}
heapsize = "0.3.0" heapsize = "0.3.0"
heapsize_plugin = "0.1.2" heapsize_plugin = "0.1.2"

View file

@ -14,7 +14,7 @@ app_units = "0.2.5"
canvas_traits = {path = "../canvas_traits"} canvas_traits = {path = "../canvas_traits"}
cookie = { version = "0.2.5", features = ["serialize-rustc", "serialize-serde"]} cookie = { version = "0.2.5", features = ["serialize-rustc", "serialize-serde"]}
devtools_traits = {path = "../devtools_traits"} devtools_traits = {path = "../devtools_traits"}
euclid = "0.7.1" euclid = "0.8.2"
gfx_traits = {path = "../gfx_traits"} gfx_traits = {path = "../gfx_traits"}
heapsize = "0.3.0" heapsize = "0.3.0"
heapsize_plugin = "0.1.2" heapsize_plugin = "0.1.2"
@ -23,7 +23,7 @@ layers = {git = "https://github.com/servo/rust-layers", features = ["plugins"]}
libc = "0.2" libc = "0.2"
msg = {path = "../msg"} msg = {path = "../msg"}
net_traits = {path = "../net_traits"} net_traits = {path = "../net_traits"}
offscreen_gl_context = "0.1.2" offscreen_gl_context = "0.2.0"
plugins = {path = "../plugins"} plugins = {path = "../plugins"}
profile_traits = {path = "../profile_traits"} profile_traits = {path = "../profile_traits"}
rustc-serialize = "0.3.4" rustc-serialize = "0.3.4"

View file

@ -365,9 +365,9 @@ pub enum Milliseconds {}
pub enum Nanoseconds {} pub enum Nanoseconds {}
/// Amount of milliseconds. /// Amount of milliseconds.
pub type MsDuration = Length<Milliseconds, u64>; pub type MsDuration = Length<u64, Milliseconds>;
/// Amount of nanoseconds. /// Amount of nanoseconds.
pub type NsDuration = Length<Nanoseconds, u64>; pub type NsDuration = Length<u64, Nanoseconds>;
/// Returns the duration since an unspecified epoch measured in ms. /// Returns the duration since an unspecified epoch measured in ms.
pub fn precise_time_ms() -> MsDuration { pub fn precise_time_ms() -> MsDuration {
@ -568,13 +568,13 @@ pub struct StackingContextScrollState {
pub struct WindowSizeData { pub struct WindowSizeData {
/// The size of the initial layout viewport, before parsing an /// The size of the initial layout viewport, before parsing an
/// http://www.w3.org/TR/css-device-adapt/#initial-viewport /// http://www.w3.org/TR/css-device-adapt/#initial-viewport
pub initial_viewport: TypedSize2D<ViewportPx, f32>, pub initial_viewport: TypedSize2D<f32, ViewportPx>,
/// The "viewing area" in page px. See `PagePx` documentation for details. /// The "viewing area" in page px. See `PagePx` documentation for details.
pub visible_viewport: TypedSize2D<PagePx, f32>, pub visible_viewport: TypedSize2D<f32, PagePx>,
/// The resolution of the window in dppx, not including any "pinch zoom" factor. /// The resolution of the window in dppx, not including any "pinch zoom" factor.
pub device_pixel_ratio: ScaleFactor<ViewportPx, DevicePixel, f32>, pub device_pixel_ratio: ScaleFactor<f32, ViewportPx, DevicePixel>,
} }
/// Messages to the constellation originating from the WebDriver server. /// Messages to the constellation originating from the WebDriver server.

View file

@ -13,7 +13,7 @@ dependencies = [
"devtools 0.0.1", "devtools 0.0.1",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gaol 0.0.1 (git+https://github.com/servo/gaol)", "gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_tests 0.0.1", "gfx_tests 0.0.1",
@ -46,7 +46,7 @@ dependencies = [
"util_tests 0.0.1", "util_tests 0.0.1",
"webdriver_server 0.0.1", "webdriver_server 0.0.1",
"webrender 0.1.0 (git+https://github.com/servo/webrender)", "webrender 0.1.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -102,13 +102,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "azure" name = "azure"
version = "0.4.6" version = "0.6.2"
source = "git+https://github.com/servo/rust-azure#4d72934a73820653986d9b11da759f5955a13e44" source = "git+https://github.com/servo/rust-azure#6e028b5fafc1dad4cd48e233a9760cb67937d487"
dependencies = [ dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -116,8 +117,8 @@ dependencies = [
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 2.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-skia 0.20130412.10 (registry+https://github.com/rust-lang/crates.io-index)", "servo-skia 0.20130412.19 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -204,27 +205,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
name = "canvas" name = "canvas"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1", "plugins 0.0.1",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
name = "canvas_traits" name = "canvas_traits"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -232,7 +233,7 @@ dependencies = [
"plugins 0.0.1", "plugins 0.0.1",
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -302,13 +303,13 @@ name = "compositing"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
@ -322,7 +323,7 @@ dependencies = [
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender 0.1.0 (git+https://github.com/servo/webrender)", "webrender 0.1.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -334,17 +335,17 @@ dependencies = [
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"compositing 0.0.1", "compositing 0.0.1",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gaol 0.0.1 (git+https://github.com/servo/gaol)", "gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"layout_traits 0.0.1", "layout_traits 0.0.1",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1", "plugins 0.0.1",
"profile_traits 0.0.1", "profile_traits 0.0.1",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
@ -354,7 +355,7 @@ dependencies = [
"style_traits 0.0.1", "style_traits 0.0.1",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -651,7 +652,7 @@ dependencies = [
[[package]] [[package]]
name = "euclid" name = "euclid"
version = "0.7.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -745,13 +746,13 @@ name = "gfx"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
@ -759,7 +760,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -774,7 +775,7 @@ dependencies = [
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"simd 0.1.0 (git+https://github.com/huonw/simd)", "simd 0.1.0 (git+https://github.com/huonw/simd)",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)",
@ -784,7 +785,7 @@ dependencies = [
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
"xi-unicode 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "xi-unicode 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -801,11 +802,11 @@ dependencies = [
name = "gfx_traits" name = "gfx_traits"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"msg 0.0.1", "msg 0.0.1",
"plugins 0.0.1", "plugins 0.0.1",
"profile_traits 0.0.1", "profile_traits 0.0.1",
@ -853,10 +854,10 @@ version = "0.0.1"
dependencies = [ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"compositing 0.0.1", "compositing 0.0.1",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
@ -1018,12 +1019,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "io-surface" name = "io-surface"
version = "0.2.1" version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1085,23 +1086,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "layers" name = "layers"
version = "0.2.6" version = "0.3.1"
source = "git+https://github.com/servo/rust-layers#79fca9ca5f2b7bded94dd34637a251967a9b0247" source = "git+https://github.com/servo/rust-layers#c1965cf7a265f758c34e57413506f508969248a0"
dependencies = [ dependencies = [
"azure 0.4.6 (git+https://github.com/servo/rust-azure)",
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "io-surface 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-skia 0.20130412.10 (registry+https://github.com/rust-lang/crates.io-index)", "servo-skia 0.20130412.19 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1110,11 +1110,11 @@ name = "layout"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
@ -1142,7 +1142,7 @@ dependencies = [
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -1157,8 +1157,8 @@ name = "layout_thread"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
@ -1180,7 +1180,7 @@ dependencies = [
"style 0.0.1", "style 0.0.1",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -1195,7 +1195,7 @@ dependencies = [
"script_traits 0.0.1", "script_traits 0.0.1",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -1358,7 +1358,7 @@ dependencies = [
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -1395,7 +1395,7 @@ dependencies = [
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1546,12 +1546,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "offscreen_gl_context" name = "offscreen_gl_context"
version = "0.1.9" version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1873,7 +1873,7 @@ dependencies = [
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1890,7 +1890,7 @@ dependencies = [
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
"num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"open 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "open 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"phf 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)", "phf 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)",
"phf_macros 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)", "phf_macros 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1915,7 +1915,7 @@ dependencies = [
"util 0.0.1", "util 0.0.1",
"uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"video-metadata 0.1.3 (git+https://github.com/GuillaumeGomez/video-metadata-rs)", "video-metadata 0.1.3 (git+https://github.com/GuillaumeGomez/video-metadata-rs)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
"xml5ever 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "xml5ever 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1928,7 +1928,7 @@ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1966,16 +1966,16 @@ dependencies = [
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1", "plugins 0.0.1",
"profile_traits 0.0.1", "profile_traits 0.0.1",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2056,28 +2056,29 @@ dependencies = [
[[package]] [[package]]
name = "servo-fontconfig" name = "servo-fontconfig"
version = "0.2.0" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig-sys 2.11.3 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "servo-fontconfig-sys" name = "servo-fontconfig-sys"
version = "2.11.3" version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 2.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "servo-freetype-sys" name = "servo-freetype-sys"
version = "2.4.11" version = "4.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -2112,19 +2113,20 @@ dependencies = [
[[package]] [[package]]
name = "servo-skia" name = "servo-skia"
version = "0.20130412.10" version = "0.20130412.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "io-surface 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 2.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-glutin 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)", "servo-glutin 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -2194,7 +2196,7 @@ dependencies = [
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2226,7 +2228,7 @@ version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2241,7 +2243,7 @@ name = "style_traits"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2423,7 +2425,7 @@ version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2547,7 +2549,7 @@ name = "webdriver_server"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2566,14 +2568,14 @@ dependencies = [
[[package]] [[package]]
name = "webrender" name = "webrender"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/servo/webrender#e2e8d91f24de961bfd6b53338e2403bc0c675aab" source = "git+https://github.com/servo/webrender#2c25e910b2a1f0399c57a077085d5cc3451f4499"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2581,25 +2583,25 @@ dependencies = [
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
name = "webrender_traits" name = "webrender_traits"
version = "0.2.0" version = "0.2.1"
source = "git+https://github.com/servo/webrender_traits#a26ebe4da490cc1fb60d830c73cbefb135b768b1" source = "git+https://github.com/servo/webrender_traits#75d40708694949a2e092ff4c344f952e3afbaa55"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
] ]

View file

@ -52,7 +52,7 @@ constellation = {path = "../constellation"}
devtools = {path = "../devtools"} devtools = {path = "../devtools"}
devtools_traits = {path = "../devtools_traits"} devtools_traits = {path = "../devtools_traits"}
env_logger = "0.3" env_logger = "0.3"
euclid = "0.7.1" euclid = "0.8.2"
gfx = {path = "../gfx"} gfx = {path = "../gfx"}
gleam = "0.2" gleam = "0.2"
glutin_app = {path = "../../ports/glutin"} glutin_app = {path = "../../ports/glutin"}

View file

@ -25,7 +25,7 @@ bitflags = "0.7"
cssparser = "0.5.5" cssparser = "0.5.5"
deque = "0.3.1" deque = "0.3.1"
encoding = "0.2" encoding = "0.2"
euclid = "0.7.1" euclid = "0.8.2"
fnv = "1.0" fnv = "1.0"
gecko_bindings = {path = "../../ports/geckolib/gecko_bindings", optional = true} gecko_bindings = {path = "../../ports/geckolib/gecko_bindings", optional = true}
gecko_string_cache = {path = "../../ports/geckolib/string_cache", optional = true} gecko_string_cache = {path = "../../ports/geckolib/string_cache", optional = true}

View file

@ -301,9 +301,9 @@ impl<T: Copy> LogicalSize<T> {
pub fn to_physical(&self, mode: WritingMode) -> Size2D<T> { pub fn to_physical(&self, mode: WritingMode) -> Size2D<T> {
self.debug_writing_mode.check(mode); self.debug_writing_mode.check(mode);
if mode.is_vertical() { if mode.is_vertical() {
Size2D { width: self.block, height: self.inline } Size2D::new(self.block, self.inline)
} else { } else {
Size2D { width: self.inline, height: self.block } Size2D::new(self.inline, self.block)
} }
} }
@ -450,15 +450,13 @@ impl<T: Copy + Sub<T, Output=T>> LogicalPoint<T> {
pub fn to_physical(&self, mode: WritingMode, container_size: Size2D<T>) -> Point2D<T> { pub fn to_physical(&self, mode: WritingMode, container_size: Size2D<T>) -> Point2D<T> {
self.debug_writing_mode.check(mode); self.debug_writing_mode.check(mode);
if mode.is_vertical() { if mode.is_vertical() {
Point2D { Point2D::new(
x: if mode.is_vertical_lr() { self.b } else { container_size.width - self.b }, if mode.is_vertical_lr() { self.b } else { container_size.width - self.b },
y: if mode.is_inline_tb() { self.i } else { container_size.height - self.i } if mode.is_inline_tb() { self.i } else { container_size.height - self.i })
}
} else { } else {
Point2D { Point2D::new(
x: if mode.is_bidi_ltr() { self.i } else { container_size.width - self.i }, if mode.is_bidi_ltr() { self.i } else { container_size.width - self.i },
y: self.b self.b)
}
} }
} }
@ -953,8 +951,8 @@ impl<T: Copy + Add<T, Output=T> + Sub<T, Output=T>> LogicalRect<T> {
} }
} }
Rect { Rect {
origin: Point2D { x: x, y: y }, origin: Point2D::new(x, y),
size: Size2D { width: width, height: height }, size: Size2D::new(width, height),
} }
} }

View file

@ -118,11 +118,11 @@ pub enum MediaType {
#[cfg_attr(feature = "servo", derive(HeapSizeOf))] #[cfg_attr(feature = "servo", derive(HeapSizeOf))]
pub struct Device { pub struct Device {
pub media_type: MediaType, pub media_type: MediaType,
pub viewport_size: TypedSize2D<ViewportPx, f32>, pub viewport_size: TypedSize2D<f32, ViewportPx>,
} }
impl Device { impl Device {
pub fn new(media_type: MediaType, viewport_size: TypedSize2D<ViewportPx, f32>) -> Device { pub fn new(media_type: MediaType, viewport_size: TypedSize2D<f32, ViewportPx>) -> Device {
Device { Device {
media_type: media_type, media_type: media_type,
viewport_size: viewport_size, viewport_size: viewport_size,
@ -131,8 +131,8 @@ impl Device {
#[inline] #[inline]
pub fn au_viewport_size(&self) -> Size2D<Au> { pub fn au_viewport_size(&self) -> Size2D<Au> {
Size2D::new(Au::from_f32_px(self.viewport_size.width.get()), Size2D::new(Au::from_f32_px(self.viewport_size.width),
Au::from_f32_px(self.viewport_size.height.get())) Au::from_f32_px(self.viewport_size.height))
} }
} }

View file

@ -369,47 +369,43 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto",
animatable="False"> animatable="False">
use self::computed_value::{StartEnd, TransitionTimingFunction}; use self::computed_value::{StartEnd, TransitionTimingFunction};
use euclid::point::Point2D; use euclid::point::{Point2D, TypedPoint2D};
use std::marker::PhantomData;
pub use self::computed_value::SingleComputedValue as SingleSpecifiedValue; pub use self::computed_value::SingleComputedValue as SingleSpecifiedValue;
pub use self::computed_value::T as SpecifiedValue; pub use self::computed_value::T as SpecifiedValue;
static EASE: TransitionTimingFunction = TransitionTimingFunction::CubicBezier(Point2D { // FIXME: This could use static variables and const functions when they are available.
x: 0.25, #[inline(always)]
y: 0.1, fn ease() -> TransitionTimingFunction {
}, Point2D { TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.25, 0.1),
x: 0.25, TypedPoint2D::new(0.25, 1.0))
y: 1.0, }
});
static LINEAR: TransitionTimingFunction = TransitionTimingFunction::CubicBezier(Point2D { #[inline(always)]
x: 0.0, fn linear() -> TransitionTimingFunction {
y: 0.0, TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.0, 0.0),
}, Point2D { TypedPoint2D::new(1.0, 1.0))
x: 1.0, }
y: 1.0,
}); #[inline(always)]
static EASE_IN: TransitionTimingFunction = TransitionTimingFunction::CubicBezier(Point2D { fn ease_in() -> TransitionTimingFunction {
x: 0.42, TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.42, 0.0),
y: 0.0, TypedPoint2D::new(1.0, 1.0))
}, Point2D { }
x: 1.0,
y: 1.0, #[inline(always)]
}); fn ease_out() -> TransitionTimingFunction {
static EASE_OUT: TransitionTimingFunction = TransitionTimingFunction::CubicBezier(Point2D { TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.0, 0.0),
x: 0.0, TypedPoint2D::new(0.58, 1.0))
y: 0.0, }
}, Point2D {
x: 0.58, #[inline(always)]
y: 1.0, fn ease_in_out() -> TransitionTimingFunction {
}); TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.42, 0.0),
static EASE_IN_OUT: TransitionTimingFunction = TypedPoint2D::new(0.58, 1.0))
TransitionTimingFunction::CubicBezier(Point2D { }
x: 0.42,
y: 0.0,
}, Point2D {
x: 0.58,
y: 1.0,
});
static STEP_START: TransitionTimingFunction = static STEP_START: TransitionTimingFunction =
TransitionTimingFunction::Steps(1, StartEnd::Start); TransitionTimingFunction::Steps(1, StartEnd::Start);
static STEP_END: TransitionTimingFunction = static STEP_END: TransitionTimingFunction =
@ -509,7 +505,7 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto",
#[inline] #[inline]
pub fn get_initial_single_value() -> TransitionTimingFunction { pub fn get_initial_single_value() -> TransitionTimingFunction {
EASE ease()
} }
pub fn parse_one(input: &mut Parser) -> Result<SingleSpecifiedValue,()> { pub fn parse_one(input: &mut Parser) -> Result<SingleSpecifiedValue,()> {
@ -551,11 +547,11 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto",
} }
match_ignore_ascii_case! { match_ignore_ascii_case! {
try!(input.expect_ident()), try!(input.expect_ident()),
"ease" => Ok(EASE), "ease" => Ok(ease()),
"linear" => Ok(LINEAR), "linear" => Ok(linear()),
"ease-in" => Ok(EASE_IN), "ease-in" => Ok(ease_in()),
"ease-out" => Ok(EASE_OUT), "ease-out" => Ok(ease_out()),
"ease-in-out" => Ok(EASE_IN_OUT), "ease-in-out" => Ok(ease_in_out()),
"step-start" => Ok(STEP_START), "step-start" => Ok(STEP_START),
"step-end" => Ok(STEP_END), "step-end" => Ok(STEP_END),
_ => Err(()) _ => Err(())

View file

@ -555,13 +555,13 @@ impl<'a, I> ViewportDescriptorDeclarationCascade for I
} }
pub trait MaybeNew { pub trait MaybeNew {
fn maybe_new(initial_viewport: TypedSize2D<ViewportPx, f32>, fn maybe_new(initial_viewport: TypedSize2D<f32, ViewportPx>,
rule: &ViewportRule) rule: &ViewportRule)
-> Option<ViewportConstraints>; -> Option<ViewportConstraints>;
} }
impl MaybeNew for ViewportConstraints { impl MaybeNew for ViewportConstraints {
fn maybe_new(initial_viewport: TypedSize2D<ViewportPx, f32>, fn maybe_new(initial_viewport: TypedSize2D<f32, ViewportPx>,
rule: &ViewportRule) rule: &ViewportRule)
-> Option<ViewportConstraints> -> Option<ViewportConstraints>
{ {
@ -639,8 +639,8 @@ impl MaybeNew for ViewportConstraints {
// //
// Note: DEVICE-ADAPT § 5. states that relative length values are // Note: DEVICE-ADAPT § 5. states that relative length values are
// resolved against initial values // resolved against initial values
let initial_viewport = Size2D::new(Au::from_f32_px(initial_viewport.width.get()), let initial_viewport = Size2D::new(Au::from_f32_px(initial_viewport.width),
Au::from_f32_px(initial_viewport.height.get())); Au::from_f32_px(initial_viewport.height));
let context = Context { let context = Context {
@ -749,7 +749,7 @@ impl MaybeNew for ViewportConstraints {
}); });
Some(ViewportConstraints { Some(ViewportConstraints {
size: Size2D::typed(width.to_f32_px(), height.to_f32_px()), size: TypedSize2D::new(width.to_f32_px(), height.to_f32_px()),
// TODO: compute a zoom factor for 'auto' as suggested by DEVICE-ADAPT § 10. // TODO: compute a zoom factor for 'auto' as suggested by DEVICE-ADAPT § 10.
initial_zoom: ScaleFactor::new(initial_zoom.unwrap_or(1.)), initial_zoom: ScaleFactor::new(initial_zoom.unwrap_or(1.)),

View file

@ -10,12 +10,12 @@ name = "style_traits"
path = "lib.rs" path = "lib.rs"
[features] [features]
servo = ["heapsize", "heapsize_plugin", "serde", "serde_macros", "euclid/plugins", servo = ["heapsize", "heapsize_plugin", "serde", "serde_macros",
"cssparser/heap_size", "cssparser/serde-serialization"] "cssparser/heap_size", "cssparser/serde-serialization"]
[dependencies] [dependencies]
cssparser = "0.5.4" cssparser = "0.5.4"
euclid = "0.7.1" euclid = "0.8.2"
heapsize = {version = "0.3.0", optional = true} heapsize = {version = "0.3.0", optional = true}
heapsize_plugin = {version = "0.1.2", optional = true} heapsize_plugin = {version = "0.1.2", optional = true}
rustc-serialize = "0.3" rustc-serialize = "0.3"

View file

@ -23,11 +23,11 @@ define_css_keyword_enum!(Orientation:
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq)]
#[cfg_attr(feature = "servo", derive(Deserialize, Serialize, HeapSizeOf))] #[cfg_attr(feature = "servo", derive(Deserialize, Serialize, HeapSizeOf))]
pub struct ViewportConstraints { pub struct ViewportConstraints {
pub size: TypedSize2D<ViewportPx, f32>, pub size: TypedSize2D<f32, ViewportPx>,
pub initial_zoom: ScaleFactor<PagePx, ViewportPx, f32>, pub initial_zoom: ScaleFactor<f32, PagePx, ViewportPx>,
pub min_zoom: Option<ScaleFactor<PagePx, ViewportPx, f32>>, pub min_zoom: Option<ScaleFactor<f32, PagePx, ViewportPx>>,
pub max_zoom: Option<ScaleFactor<PagePx, ViewportPx, f32>>, pub max_zoom: Option<ScaleFactor<f32, PagePx, ViewportPx>>,
pub user_zoom: UserZoom, pub user_zoom: UserZoom,
pub orientation: Orientation pub orientation: Orientation
@ -38,8 +38,8 @@ impl ToCss for ViewportConstraints {
where W: fmt::Write where W: fmt::Write
{ {
try!(write!(dest, "@viewport {{")); try!(write!(dest, "@viewport {{"));
try!(write!(dest, " width: {}px;", self.size.width.get())); try!(write!(dest, " width: {}px;", self.size.width));
try!(write!(dest, " height: {}px;", self.size.height.get())); try!(write!(dest, " height: {}px;", self.size.height));
try!(write!(dest, " zoom: {};", self.initial_zoom.get())); try!(write!(dest, " zoom: {};", self.initial_zoom.get()));
if let Some(min_zoom) = self.min_zoom { if let Some(min_zoom) = self.min_zoom {
try!(write!(dest, " min-zoom: {};", min_zoom.get())); try!(write!(dest, " min-zoom: {};", min_zoom.get()));

View file

@ -12,12 +12,12 @@ path = "lib.rs"
[features] [features]
# servo as opposed to geckolib # servo as opposed to geckolib
servo = ["serde", "serde_macros", "ipc-channel", "app_units/plugins", servo = ["serde", "serde_macros", "ipc-channel", "app_units/plugins",
"euclid/plugins", "euclid/unstable", "url/heap_size", "url/serde", "plugins"] "euclid/unstable", "url/heap_size", "url/serde", "plugins"]
[dependencies] [dependencies]
app_units = "0.2.5" app_units = "0.2.5"
bitflags = "0.7" bitflags = "0.7"
euclid = "0.7.1" euclid = "0.8.2"
getopts = "0.2.11" getopts = "0.2.11"
heapsize = "0.3.0" heapsize = "0.3.0"
ipc-channel = {version = "0.4.0", optional = true} ipc-channel = {version = "0.4.0", optional = true}

View file

@ -32,16 +32,10 @@ known_heap_size!(0, ScreenPx);
// originally proposed in 2002 as a standard unit of measure in Gecko. // originally proposed in 2002 as a standard unit of measure in Gecko.
// See https://bugzilla.mozilla.org/show_bug.cgi?id=177805 for more info. // See https://bugzilla.mozilla.org/show_bug.cgi?id=177805 for more info.
pub static MAX_RECT: Rect<Au> = Rect { #[inline(always)]
origin: Point2D { pub fn max_rect() -> Rect<Au> {
x: Au(i32::MIN / 2), Rect::new(Point2D::new(Au(i32::MIN / 2), Au(i32::MIN / 2)), Size2D::new(MAX_AU, MAX_AU))
y: Au(i32::MIN / 2), }
},
size: Size2D {
width: MAX_AU,
height: MAX_AU,
}
};
/// A helper function to convert a rect of `f32` pixels to a rect of app units. /// A helper function to convert a rect of `f32` pixels to a rect of app units.
pub fn f32_rect_to_au_rect(rect: Rect<f32>) -> Rect<Au> { pub fn f32_rect_to_au_rect(rect: Rect<f32>) -> Rect<Au> {

View file

@ -14,7 +14,7 @@
extern crate app_units; extern crate app_units;
#[allow(unused_extern_crates)] #[macro_use] extern crate bitflags; #[allow(unused_extern_crates)] #[macro_use] extern crate bitflags;
extern crate core; extern crate core;
extern crate euclid; #[macro_use] extern crate euclid;
extern crate getopts; extern crate getopts;
#[macro_use] extern crate heapsize; #[macro_use] extern crate heapsize;
#[cfg(feature = "servo")] extern crate ipc_channel; #[cfg(feature = "servo")] extern crate ipc_channel;

View file

@ -5,7 +5,7 @@
//! Configuration options for a single run of the servo application. Created //! Configuration options for a single run of the servo application. Created
//! from command line arguments. //! from command line arguments.
use euclid::size::{Size2D, TypedSize2D}; use euclid::size::TypedSize2D;
use geometry::ScreenPx; use geometry::ScreenPx;
use getopts::Options; use getopts::Options;
use num_cpus; use num_cpus;
@ -136,7 +136,7 @@ pub struct Opts {
pub webdriver_port: Option<u16>, pub webdriver_port: Option<u16>,
/// The initial requested size of the window. /// The initial requested size of the window.
pub initial_window_size: TypedSize2D<ScreenPx, u32>, pub initial_window_size: TypedSize2D<u32, ScreenPx>,
/// An optional string allowing the user agent to be set for testing. /// An optional string allowing the user agent to be set for testing.
pub user_agent: String, pub user_agent: String,
@ -494,7 +494,7 @@ pub fn default_opts() -> Opts {
trace_layout: false, trace_layout: false,
devtools_port: None, devtools_port: None,
webdriver_port: None, webdriver_port: None,
initial_window_size: Size2D::typed(1024, 740), initial_window_size: TypedSize2D::new(1024, 740),
user_agent: default_user_agent_string(DEFAULT_USER_AGENT), user_agent: default_user_agent_string(DEFAULT_USER_AGENT),
multiprocess: false, multiprocess: false,
random_pipeline_closure_probability: None, random_pipeline_closure_probability: None,
@ -722,10 +722,10 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
let res: Vec<u32> = res_string.split('x').map(|r| { let res: Vec<u32> = res_string.split('x').map(|r| {
r.parse().unwrap_or_else(|err| args_fail(&format!("Error parsing option: --resolution ({})", err))) r.parse().unwrap_or_else(|err| args_fail(&format!("Error parsing option: --resolution ({})", err)))
}).collect(); }).collect();
Size2D::typed(res[0], res[1]) TypedSize2D::new(res[0], res[1])
} }
None => { None => {
Size2D::typed(1024, 740) TypedSize2D::new(1024, 740)
} }
}; };

View file

@ -10,7 +10,7 @@ name = "webdriver_server"
path = "lib.rs" path = "lib.rs"
[dependencies] [dependencies]
euclid = "0.7.1" euclid = "0.8.2"
hyper = "0.9.9" hyper = "0.9.9"
image = "0.10" image = "0.10"
ipc-channel = "0.4.0" ipc-channel = "0.4.0"

View file

@ -389,7 +389,7 @@ impl Handler {
let window_size = receiver.recv().unwrap(); let window_size = receiver.recv().unwrap();
let vp = window_size.visible_viewport; let vp = window_size.visible_viewport;
let window_size_response = WindowSizeResponse::new(vp.width.get() as u64, vp.height.get() as u64); let window_size_response = WindowSizeResponse::new(vp.width as u64, vp.height as u64);
Ok(WebDriverResponse::WindowSize(window_size_response)) Ok(WebDriverResponse::WindowSize(window_size_response))
} }
@ -413,7 +413,7 @@ impl Handler {
let window_size = receiver.recv().unwrap(); let window_size = receiver.recv().unwrap();
let vp = window_size.visible_viewport; let vp = window_size.visible_viewport;
let window_size_response = WindowSizeResponse::new(vp.width.get() as u64, vp.height.get() as u64); let window_size_response = WindowSizeResponse::new(vp.width as u64, vp.height as u64);
Ok(WebDriverResponse::WindowSize(window_size_response)) Ok(WebDriverResponse::WindowSize(window_size_response))
} }

168
ports/cef/Cargo.lock generated
View file

@ -5,10 +5,10 @@ dependencies = [
"cocoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "cocoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
"compositing 0.0.1", "compositing 0.0.1",
"devtools 0.0.1", "devtools 0.0.1",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin_app 0.0.1", "glutin_app 0.0.1",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
@ -76,13 +76,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "azure" name = "azure"
version = "0.4.6" version = "0.6.2"
source = "git+https://github.com/servo/rust-azure#4d72934a73820653986d9b11da759f5955a13e44" source = "git+https://github.com/servo/rust-azure#6e028b5fafc1dad4cd48e233a9760cb67937d487"
dependencies = [ dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -90,8 +91,8 @@ dependencies = [
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 2.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-skia 0.20130412.10 (registry+https://github.com/rust-lang/crates.io-index)", "servo-skia 0.20130412.19 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -178,27 +179,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
name = "canvas" name = "canvas"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1", "plugins 0.0.1",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
name = "canvas_traits" name = "canvas_traits"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -206,7 +207,7 @@ dependencies = [
"plugins 0.0.1", "plugins 0.0.1",
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -261,13 +262,13 @@ name = "compositing"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
@ -281,7 +282,7 @@ dependencies = [
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender 0.1.0 (git+https://github.com/servo/webrender)", "webrender 0.1.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -293,17 +294,17 @@ dependencies = [
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"compositing 0.0.1", "compositing 0.0.1",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gaol 0.0.1 (git+https://github.com/servo/gaol)", "gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"layout_traits 0.0.1", "layout_traits 0.0.1",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1", "plugins 0.0.1",
"profile_traits 0.0.1", "profile_traits 0.0.1",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
@ -313,7 +314,7 @@ dependencies = [
"style_traits 0.0.1", "style_traits 0.0.1",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -569,7 +570,7 @@ dependencies = [
[[package]] [[package]]
name = "euclid" name = "euclid"
version = "0.7.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -663,13 +664,13 @@ name = "gfx"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
@ -677,7 +678,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -692,7 +693,7 @@ dependencies = [
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"simd 0.1.0 (git+https://github.com/huonw/simd)", "simd 0.1.0 (git+https://github.com/huonw/simd)",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)",
@ -702,7 +703,7 @@ dependencies = [
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
"xi-unicode 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "xi-unicode 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -710,11 +711,11 @@ dependencies = [
name = "gfx_traits" name = "gfx_traits"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"msg 0.0.1", "msg 0.0.1",
"plugins 0.0.1", "plugins 0.0.1",
"profile_traits 0.0.1", "profile_traits 0.0.1",
@ -762,10 +763,10 @@ version = "0.0.1"
dependencies = [ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"compositing 0.0.1", "compositing 0.0.1",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
@ -927,12 +928,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "io-surface" name = "io-surface"
version = "0.2.1" version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
@ -994,23 +995,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "layers" name = "layers"
version = "0.2.6" version = "0.3.1"
source = "git+https://github.com/servo/rust-layers#79fca9ca5f2b7bded94dd34637a251967a9b0247" source = "git+https://github.com/servo/rust-layers#c1965cf7a265f758c34e57413506f508969248a0"
dependencies = [ dependencies = [
"azure 0.4.6 (git+https://github.com/servo/rust-azure)",
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "io-surface 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-skia 0.20130412.10 (registry+https://github.com/rust-lang/crates.io-index)", "servo-skia 0.20130412.19 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1019,11 +1019,11 @@ name = "layout"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
@ -1051,7 +1051,7 @@ dependencies = [
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -1059,8 +1059,8 @@ name = "layout_thread"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"azure 0.4.6 (git+https://github.com/servo/rust-azure)", "azure 0.6.2 (git+https://github.com/servo/rust-azure)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
@ -1082,7 +1082,7 @@ dependencies = [
"style 0.0.1", "style 0.0.1",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -1097,7 +1097,7 @@ dependencies = [
"script_traits 0.0.1", "script_traits 0.0.1",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -1260,7 +1260,7 @@ dependencies = [
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -1297,7 +1297,7 @@ dependencies = [
"url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1", "util 0.0.1",
"uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1420,12 +1420,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "offscreen_gl_context" name = "offscreen_gl_context"
version = "0.1.9" version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1727,7 +1727,7 @@ dependencies = [
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1744,7 +1744,7 @@ dependencies = [
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
"num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"open 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "open 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"phf 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)", "phf 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)",
"phf_macros 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)", "phf_macros 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1769,7 +1769,7 @@ dependencies = [
"util 0.0.1", "util 0.0.1",
"uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"video-metadata 0.1.3 (git+https://github.com/GuillaumeGomez/video-metadata-rs)", "video-metadata 0.1.3 (git+https://github.com/GuillaumeGomez/video-metadata-rs)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
"xml5ever 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "xml5ever 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1782,7 +1782,7 @@ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1810,16 +1810,16 @@ dependencies = [
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.2.6 (git+https://github.com/servo/rust-layers)", "layers 0.3.1 (git+https://github.com/servo/rust-layers)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1", "plugins 0.0.1",
"profile_traits 0.0.1", "profile_traits 0.0.1",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1904,7 +1904,7 @@ dependencies = [
"devtools 0.0.1", "devtools 0.0.1",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gaol 0.0.1 (git+https://github.com/servo/gaol)", "gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1", "gfx 0.0.1",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1928,7 +1928,7 @@ dependencies = [
"util 0.0.1", "util 0.0.1",
"webdriver_server 0.0.1", "webdriver_server 0.0.1",
"webrender 0.1.0 (git+https://github.com/servo/webrender)", "webrender 0.1.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
@ -1941,28 +1941,29 @@ dependencies = [
[[package]] [[package]]
name = "servo-fontconfig" name = "servo-fontconfig"
version = "0.2.0" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig-sys 2.11.3 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "servo-fontconfig-sys" name = "servo-fontconfig-sys"
version = "2.11.3" version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 2.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "servo-freetype-sys" name = "servo-freetype-sys"
version = "2.4.11" version = "4.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1997,19 +1998,20 @@ dependencies = [
[[package]] [[package]]
name = "servo-skia" name = "servo-skia"
version = "0.20130412.10" version = "0.20130412.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "io-surface 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 2.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-glutin 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)", "servo-glutin 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -2079,7 +2081,7 @@ dependencies = [
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2110,7 +2112,7 @@ name = "style_traits"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2292,7 +2294,7 @@ version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2409,7 +2411,7 @@ name = "webdriver_server"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2428,14 +2430,14 @@ dependencies = [
[[package]] [[package]]
name = "webrender" name = "webrender"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/servo/webrender#e2e8d91f24de961bfd6b53338e2403bc0c675aab" source = "git+https://github.com/servo/webrender#2c25e910b2a1f0399c57a077085d5cc3451f4499"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2443,25 +2445,25 @@ dependencies = [
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)", "webrender_traits 0.2.1 (git+https://github.com/servo/webrender_traits)",
] ]
[[package]] [[package]]
name = "webrender_traits" name = "webrender_traits"
version = "0.2.0" version = "0.2.1"
source = "git+https://github.com/servo/webrender_traits#a26ebe4da490cc1fb60d830c73cbefb135b768b1" source = "git+https://github.com/servo/webrender_traits#75d40708694949a2e092ff4c344f952e3afbaa55"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
] ]

View file

@ -17,7 +17,7 @@ opt-level = 3
[dependencies] [dependencies]
compositing = {path = "../../components/compositing"} compositing = {path = "../../components/compositing"}
devtools = {path = "../../components/devtools"} devtools = {path = "../../components/devtools"}
euclid = "0.7.1" euclid = "0.8.2"
gleam = "0.2.8" gleam = "0.2.8"
glutin_app = {path = "../glutin"} glutin_app = {path = "../glutin"}
layers = {git = "https://github.com/servo/rust-layers"} layers = {git = "https://github.com/servo/rust-layers"}

View file

@ -11,8 +11,8 @@ use types::{cef_mouse_button_type_t, cef_mouse_event, cef_rect_t, cef_key_event,
use wrappers::CefWrap; use wrappers::CefWrap;
use compositing::windowing::{WindowEvent, MouseWindowEvent}; use compositing::windowing::{WindowEvent, MouseWindowEvent};
use euclid::point::Point2D; use euclid::point::TypedPoint2D;
use euclid::size::Size2D; use euclid::size::TypedSize2D;
use libc::{c_double, c_int}; use libc::{c_double, c_int};
use msg::constellation_msg::{self, KeyModifiers, KeyState}; use msg::constellation_msg::{self, KeyModifiers, KeyState};
use script_traits::{MouseButton, TouchEventType}; use script_traits::{MouseButton, TouchEventType};
@ -384,7 +384,7 @@ full_cef_class_impl! {
.get_render_handler() .get_render_handler()
.get_view_rect(this.downcast().browser.borrow().clone().unwrap(), &mut rect); .get_view_rect(this.downcast().browser.borrow().clone().unwrap(), &mut rect);
} }
let size = Size2D::typed(rect.width as u32, rect.height as u32); let size = TypedSize2D::new(rect.width as u32, rect.height as u32);
this.downcast().send_window_event(WindowEvent::Resize(size)); this.downcast().send_window_event(WindowEvent::Resize(size));
}} }}
@ -443,7 +443,7 @@ full_cef_class_impl! {
cef_mouse_button_type_t::MBT_MIDDLE => MouseButton::Middle, cef_mouse_button_type_t::MBT_MIDDLE => MouseButton::Middle,
cef_mouse_button_type_t::MBT_RIGHT => MouseButton::Right, cef_mouse_button_type_t::MBT_RIGHT => MouseButton::Right,
}; };
let point = Point2D::typed((*event).x as f32, (*event).y as f32); let point = TypedPoint2D::new((*event).x as f32, (*event).y as f32);
if mouse_up != 0 { if mouse_up != 0 {
this.downcast().send_window_event(WindowEvent::MouseWindowEventClass( this.downcast().send_window_event(WindowEvent::MouseWindowEventClass(
MouseWindowEvent::Click(button_type, point))) MouseWindowEvent::Click(button_type, point)))
@ -457,7 +457,7 @@ full_cef_class_impl! {
_mouse_exited: c_int [c_int],) _mouse_exited: c_int [c_int],)
-> () {{ -> () {{
let event: &cef_mouse_event = event; let event: &cef_mouse_event = event;
let point = Point2D::typed((*event).x as f32, (*event).y as f32); let point = TypedPoint2D::new((*event).x as f32, (*event).y as f32);
this.downcast().send_window_event(WindowEvent::MouseWindowMoveEventClass(point)) this.downcast().send_window_event(WindowEvent::MouseWindowMoveEventClass(point))
}} }}
@ -469,8 +469,8 @@ full_cef_class_impl! {
let event: &cef_mouse_event = event; let event: &cef_mouse_event = event;
let delta_x: c_int = delta_x; let delta_x: c_int = delta_x;
let delta_y: c_int = delta_y; let delta_y: c_int = delta_y;
let delta = Point2D::typed(delta_x as f32, delta_y as f32); let delta = TypedPoint2D::new(delta_x as f32, delta_y as f32);
let origin = Point2D::typed((*event).x as i32, (*event).y as i32); let origin = TypedPoint2D::new((*event).x as i32, (*event).y as i32);
this.downcast().send_window_event(WindowEvent::Scroll(delta, this.downcast().send_window_event(WindowEvent::Scroll(delta,
origin, origin,
TouchEventType::Move)) TouchEventType::Move))

View file

@ -49,7 +49,7 @@ pub static mut DISPLAY: *mut c_void = 0 as *mut c_void;
#[derive(Clone)] #[derive(Clone)]
pub struct Window { pub struct Window {
cef_browser: RefCell<Option<CefBrowser>>, cef_browser: RefCell<Option<CefBrowser>>,
size: TypedSize2D<DevicePixel,u32> size: TypedSize2D<u32, DevicePixel>
} }
#[cfg(target_os="macos")] #[cfg(target_os="macos")]
@ -89,7 +89,7 @@ impl Window {
Rc::new(Window { Rc::new(Window {
cef_browser: RefCell::new(None), cef_browser: RefCell::new(None),
size: Size2D::typed(width, height) size: TypedSize2D::new(width, height)
}) })
} }
@ -171,7 +171,7 @@ impl Window {
} }
impl WindowMethods for Window { impl WindowMethods for Window {
fn framebuffer_size(&self) -> TypedSize2D<DevicePixel,u32> { fn framebuffer_size(&self) -> TypedSize2D<u32, DevicePixel> {
let browser = self.cef_browser.borrow(); let browser = self.cef_browser.borrow();
match *browser { match *browser {
None => self.size, None => self.size,
@ -180,8 +180,8 @@ impl WindowMethods for Window {
self.size self.size
} else { } else {
let mut rect = cef_rect_t::zero(); let mut rect = cef_rect_t::zero();
rect.width = self.size.width.get() as i32; rect.width = self.size.width as i32;
rect.height = self.size.height.get() as i32; rect.height = self.size.height as i32;
if cfg!(target_os="macos") { if cfg!(target_os="macos") {
// osx relies on virtual pixel scaling to provide sizes different from actual // osx relies on virtual pixel scaling to provide sizes different from actual
// pixel size on screen. other platforms are just 1.0 unless the desktop/toolkit says otherwise // pixel size on screen. other platforms are just 1.0 unless the desktop/toolkit says otherwise
@ -202,23 +202,23 @@ impl WindowMethods for Window {
} }
} }
Size2D::typed(rect.width as u32, rect.height as u32) TypedSize2D::new(rect.width as u32, rect.height as u32)
} }
} }
} }
} }
fn size(&self) -> TypedSize2D<ScreenPx,f32> { fn size(&self) -> TypedSize2D<f32, ScreenPx> {
let browser = self.cef_browser.borrow(); let browser = self.cef_browser.borrow();
match *browser { match *browser {
None => Size2D::typed(400.0, 300.0), None => TypedSize2D::new(400.0, 300.0),
Some(ref browser) => { Some(ref browser) => {
let mut rect = cef_rect_t::zero(); let mut rect = cef_rect_t::zero();
browser.get_host() browser.get_host()
.get_client() .get_client()
.get_render_handler() .get_render_handler()
.get_view_rect((*browser).clone(), &mut rect); .get_view_rect((*browser).clone(), &mut rect);
Size2D::typed(rect.width as f32, rect.height as f32) TypedSize2D::new(rect.width as f32, rect.height as f32)
} }
} }
} }
@ -252,7 +252,7 @@ impl WindowMethods for Window {
} }
} }
fn scale_factor(&self) -> ScaleFactor<ScreenPx,DevicePixel,f32> { fn scale_factor(&self) -> ScaleFactor<f32, ScreenPx, DevicePixel> {
if cfg!(target_os="macos") { if cfg!(target_os="macos") {
let browser = self.cef_browser.borrow(); let browser = self.cef_browser.borrow();
match *browser { match *browser {

View file

@ -4,7 +4,7 @@ version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gecko_bindings 0.0.1", "gecko_bindings 0.0.1",
"gecko_string_cache 0.2.20", "gecko_string_cache 0.2.20",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -140,7 +140,7 @@ dependencies = [
[[package]] [[package]]
name = "euclid" name = "euclid"
version = "0.7.1" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -354,7 +354,7 @@ dependencies = [
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gecko_bindings 0.0.1", "gecko_bindings 0.0.1",
"gecko_string_cache 0.2.20", "gecko_string_cache 0.2.20",
@ -381,7 +381,7 @@ name = "style_traits"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -453,7 +453,7 @@ version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",

View file

@ -12,7 +12,7 @@ crate-type = ["staticlib"]
[dependencies] [dependencies]
app_units = "0.2.5" app_units = "0.2.5"
env_logger = "0.3" env_logger = "0.3"
euclid = "0.7.1" euclid = "0.8.2"
gecko_bindings = {version = "0.0.1", path = "gecko_bindings"} gecko_bindings = {version = "0.0.1", path = "gecko_bindings"}
gecko_string_cache = {path = "string_cache"} gecko_string_cache = {path = "string_cache"}
lazy_static = "0.2" lazy_static = "0.2"

View file

@ -2,7 +2,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use euclid::Size2D;
use euclid::size::TypedSize2D; use euclid::size::TypedSize2D;
use gecko_bindings::bindings::RawServoStyleSet; use gecko_bindings::bindings::RawServoStyleSet;
use num_cpus; use num_cpus;
@ -56,7 +55,7 @@ lazy_static! {
impl PerDocumentStyleData { impl PerDocumentStyleData {
pub fn new() -> PerDocumentStyleData { pub fn new() -> PerDocumentStyleData {
// FIXME(bholley): Real window size. // FIXME(bholley): Real window size.
let window_size: TypedSize2D<ViewportPx, f32> = Size2D::typed(800.0, 600.0); let window_size: TypedSize2D<f32, ViewportPx> = TypedSize2D::new(800.0, 600.0);
let device = Device::new(MediaType::Screen, window_size); let device = Device::new(MediaType::Screen, window_size);
let (new_anims_sender, new_anims_receiver) = channel(); let (new_anims_sender, new_anims_receiver) = channel();

View file

@ -11,7 +11,7 @@ path = "lib.rs"
[dependencies] [dependencies]
bitflags = "0.7" bitflags = "0.7"
compositing = {path = "../../components/compositing"} compositing = {path = "../../components/compositing"}
euclid = "0.7.1" euclid = "0.8.2"
gleam = "0.2.8" gleam = "0.2.8"
layers = {git = "https://github.com/servo/rust-layers", features = ["plugins"]} layers = {git = "https://github.com/servo/rust-layers", features = ["plugins"]}
log = "0.3.5" log = "0.3.5"

View file

@ -10,7 +10,7 @@ use compositing::windowing::{MouseWindowEvent, WindowNavigateMsg};
use compositing::windowing::{WindowEvent, WindowMethods}; use compositing::windowing::{WindowEvent, WindowMethods};
use euclid::scale_factor::ScaleFactor; use euclid::scale_factor::ScaleFactor;
use euclid::size::TypedSize2D; use euclid::size::TypedSize2D;
use euclid::{Size2D, Point2D}; use euclid::{Size2D, Point2D, TypedPoint2D};
#[cfg(target_os = "windows")] use gdi32; #[cfg(target_os = "windows")] use gdi32;
use gleam::gl; use gleam::gl;
use glutin; use glutin;
@ -108,12 +108,12 @@ pub struct Window {
} }
#[cfg(not(target_os = "windows"))] #[cfg(not(target_os = "windows"))]
fn window_creation_scale_factor() -> ScaleFactor<ScreenPx, DevicePixel, f32> { fn window_creation_scale_factor() -> ScaleFactor<f32, ScreenPx, DevicePixel> {
ScaleFactor::new(1.0) ScaleFactor::new(1.0)
} }
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
fn window_creation_scale_factor() -> ScaleFactor<ScreenPx, DevicePixel, f32> { fn window_creation_scale_factor() -> ScaleFactor<f32, ScreenPx, DevicePixel> {
let hdc = unsafe { user32::GetDC(::std::ptr::null_mut()) }; let hdc = unsafe { user32::GetDC(::std::ptr::null_mut()) };
let ppi = unsafe { gdi32::GetDeviceCaps(hdc, winapi::wingdi::LOGPIXELSY) }; let ppi = unsafe { gdi32::GetDeviceCaps(hdc, winapi::wingdi::LOGPIXELSY) };
ScaleFactor::new(ppi as f32 / 96.0) ScaleFactor::new(ppi as f32 / 96.0)
@ -122,9 +122,9 @@ fn window_creation_scale_factor() -> ScaleFactor<ScreenPx, DevicePixel, f32> {
impl Window { impl Window {
pub fn new(is_foreground: bool, pub fn new(is_foreground: bool,
window_size: TypedSize2D<ScreenPx, u32>, window_size: TypedSize2D<u32, ScreenPx>,
parent: Option<glutin::WindowID>) -> Rc<Window> { parent: Option<glutin::WindowID>) -> Rc<Window> {
let win_size: TypedSize2D<DevicePixel, u32> = let win_size: TypedSize2D<u32, DevicePixel> =
(window_size.as_f32() * window_creation_scale_factor()) (window_size.as_f32() * window_creation_scale_factor())
.as_uint().cast().expect("Window size should fit in u32"); .as_uint().cast().expect("Window size should fit in u32");
let width = win_size.to_untyped().width; let width = win_size.to_untyped().width;
@ -203,7 +203,7 @@ impl Window {
None => {} None => {}
Some(listener) => { Some(listener) => {
(*listener).handle_event_from_nested_event_loop( (*listener).handle_event_from_nested_event_loop(
WindowEvent::Resize(Size2D::typed(width, height))); WindowEvent::Resize(TypedSize2D::new(width, height)));
} }
} }
} }
@ -297,7 +297,7 @@ impl Window {
debug!("Keyboard input without virtual key."); debug!("Keyboard input without virtual key.");
} }
Event::Resized(width, height) => { Event::Resized(width, height) => {
self.event_queue.borrow_mut().push(WindowEvent::Resize(Size2D::typed(width, height))); self.event_queue.borrow_mut().push(WindowEvent::Resize(TypedSize2D::new(width, height)));
} }
Event::MouseInput(element_state, mouse_button, pos) => { Event::MouseInput(element_state, mouse_button, pos) => {
if mouse_button == MouseButton::Left || if mouse_button == MouseButton::Left ||
@ -306,7 +306,7 @@ impl Window {
Some((x, y)) => { Some((x, y)) => {
self.mouse_pos.set(Point2D::new(x, y)); self.mouse_pos.set(Point2D::new(x, y));
self.event_queue.borrow_mut().push( self.event_queue.borrow_mut().push(
WindowEvent::MouseWindowMoveEventClass(Point2D::typed(x as f32, y as f32))); WindowEvent::MouseWindowMoveEventClass(TypedPoint2D::new(x as f32, y as f32)));
self.handle_mouse(mouse_button, element_state, x, y); self.handle_mouse(mouse_button, element_state, x, y);
} }
None => { None => {
@ -319,7 +319,7 @@ impl Window {
Event::MouseMoved(x, y) => { Event::MouseMoved(x, y) => {
self.mouse_pos.set(Point2D::new(x, y)); self.mouse_pos.set(Point2D::new(x, y));
self.event_queue.borrow_mut().push( self.event_queue.borrow_mut().push(
WindowEvent::MouseWindowMoveEventClass(Point2D::typed(x as f32, y as f32))); WindowEvent::MouseWindowMoveEventClass(TypedPoint2D::new(x as f32, y as f32)));
} }
Event::MouseWheel(delta, phase) => { Event::MouseWheel(delta, phase) => {
let (dx, dy) = match delta { let (dx, dy) = match delta {
@ -334,12 +334,12 @@ impl Window {
let phase = glutin_phase_to_touch_event_type(touch.phase); let phase = glutin_phase_to_touch_event_type(touch.phase);
let id = TouchId(touch.id as i32); let id = TouchId(touch.id as i32);
let point = Point2D::typed(touch.location.0 as f32, touch.location.1 as f32); let point = TypedPoint2D::new(touch.location.0 as f32, touch.location.1 as f32);
self.event_queue.borrow_mut().push(WindowEvent::Touch(phase, id, point)); self.event_queue.borrow_mut().push(WindowEvent::Touch(phase, id, point));
} }
Event::TouchpadPressure(pressure, stage) => { Event::TouchpadPressure(pressure, stage) => {
let m = self.mouse_pos.get(); let m = self.mouse_pos.get();
let point = Point2D::typed(m.x as f32, m.y as f32); let point = TypedPoint2D::new(m.x as f32, m.y as f32);
let phase = glutin_pressure_stage_to_touchpad_pressure_phase(stage); let phase = glutin_pressure_stage_to_touchpad_pressure_phase(stage);
self.event_queue.borrow_mut().push(WindowEvent::TouchpadPressure(point, pressure, phase)); self.event_queue.borrow_mut().push(WindowEvent::TouchpadPressure(point, pressure, phase));
} }
@ -371,8 +371,8 @@ impl Window {
dy = 0.0; dy = 0.0;
} }
let mouse_pos = self.mouse_pos.get(); let mouse_pos = self.mouse_pos.get();
let event = WindowEvent::Scroll(Point2D::typed(dx as f32, dy as f32), let event = WindowEvent::Scroll(TypedPoint2D::new(dx as f32, dy as f32),
Point2D::typed(mouse_pos.x as i32, mouse_pos.y as i32), TypedPoint2D::new(mouse_pos.x as i32, mouse_pos.y as i32),
phase); phase);
self.event_queue.borrow_mut().push(event); self.event_queue.borrow_mut().push(event);
} }
@ -387,10 +387,11 @@ impl Window {
ElementState::Pressed => { ElementState::Pressed => {
self.mouse_down_point.set(Point2D::new(x, y)); self.mouse_down_point.set(Point2D::new(x, y));
self.mouse_down_button.set(Some(button)); self.mouse_down_button.set(Some(button));
MouseWindowEvent::MouseDown(MouseButton::Left, Point2D::typed(x as f32, y as f32)) MouseWindowEvent::MouseDown(MouseButton::Left, TypedPoint2D::new(x as f32, y as f32))
} }
ElementState::Released => { ElementState::Released => {
let mouse_up_event = MouseWindowEvent::MouseUp(MouseButton::Left, Point2D::typed(x as f32, y as f32)); let mouse_up_event = MouseWindowEvent::MouseUp(MouseButton::Left,
TypedPoint2D::new(x as f32, y as f32));
match self.mouse_down_button.get() { match self.mouse_down_button.get() {
None => mouse_up_event, None => mouse_up_event,
Some(but) if button == but => { Some(but) if button == but => {
@ -399,7 +400,7 @@ impl Window {
pixel_dist.y * pixel_dist.y) as f64).sqrt(); pixel_dist.y * pixel_dist.y) as f64).sqrt();
if pixel_dist < max_pixel_dist { if pixel_dist < max_pixel_dist {
self.event_queue.borrow_mut().push(WindowEvent::MouseWindowEventClass(mouse_up_event)); self.event_queue.borrow_mut().push(WindowEvent::MouseWindowEventClass(mouse_up_event));
MouseWindowEvent::Click(MouseButton::Left, Point2D::typed(x as f32, y as f32)) MouseWindowEvent::Click(MouseButton::Left, TypedPoint2D::new(x as f32, y as f32))
} else { } else {
mouse_up_event mouse_up_event
} }
@ -671,17 +672,17 @@ fn create_window_proxy(window: &Window) -> Option<glutin::WindowProxy> {
} }
impl WindowMethods for Window { impl WindowMethods for Window {
fn framebuffer_size(&self) -> TypedSize2D<DevicePixel, u32> { fn framebuffer_size(&self) -> TypedSize2D<u32, DevicePixel> {
let scale_factor = self.window.hidpi_factor() as u32; let scale_factor = self.window.hidpi_factor() as u32;
// TODO(ajeffrey): can this fail? // TODO(ajeffrey): can this fail?
let (width, height) = self.window.get_inner_size().expect("Failed to get window inner size."); let (width, height) = self.window.get_inner_size().expect("Failed to get window inner size.");
Size2D::typed(width * scale_factor, height * scale_factor) TypedSize2D::new(width * scale_factor, height * scale_factor)
} }
fn size(&self) -> TypedSize2D<ScreenPx, f32> { fn size(&self) -> TypedSize2D<f32, ScreenPx> {
// TODO(ajeffrey): can this fail? // TODO(ajeffrey): can this fail?
let (width, height) = self.window.get_inner_size().expect("Failed to get window inner size."); let (width, height) = self.window.get_inner_size().expect("Failed to get window inner size.");
Size2D::typed(width as f32, height as f32) TypedSize2D::new(width as f32, height as f32)
} }
fn client_window(&self) -> (Size2D<u32>, Point2D<i32>) { fn client_window(&self) -> (Size2D<u32>, Point2D<i32>) {
@ -722,12 +723,12 @@ impl WindowMethods for Window {
} }
#[cfg(not(target_os = "windows"))] #[cfg(not(target_os = "windows"))]
fn scale_factor(&self) -> ScaleFactor<ScreenPx, DevicePixel, f32> { fn scale_factor(&self) -> ScaleFactor<f32, ScreenPx, DevicePixel> {
ScaleFactor::new(self.window.hidpi_factor()) ScaleFactor::new(self.window.hidpi_factor())
} }
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
fn scale_factor(&self) -> ScaleFactor<ScreenPx, DevicePixel, f32> { fn scale_factor(&self) -> ScaleFactor<f32, ScreenPx, DevicePixel> {
let hdc = unsafe { user32::GetDC(::std::ptr::null_mut()) }; let hdc = unsafe { user32::GetDC(::std::ptr::null_mut()) };
let ppi = unsafe { gdi32::GetDeviceCaps(hdc, winapi::wingdi::LOGPIXELSY) }; let ppi = unsafe { gdi32::GetDeviceCaps(hdc, winapi::wingdi::LOGPIXELSY) };
ScaleFactor::new(ppi as f32 / 96.0) ScaleFactor::new(ppi as f32 / 96.0)

View file

@ -12,7 +12,7 @@ doctest = false
[dependencies] [dependencies]
app_units = "0.2.5" app_units = "0.2.5"
cssparser = {version = "0.5.4", features = ["heap_size"]} cssparser = {version = "0.5.4", features = ["heap_size"]}
euclid = "0.7.1" euclid = "0.8.2"
rustc-serialize = "0.3" rustc-serialize = "0.3"
selectors = {version = "0.8", features = ["heap_size"]} selectors = {version = "0.8", features = ["heap_size"]}
string_cache = {version = "0.2", features = ["heap_size"]} string_cache = {version = "0.2", features = ["heap_size"]}

View file

@ -4,7 +4,7 @@
use app_units::Au; use app_units::Au;
use cssparser::{Parser, SourcePosition}; use cssparser::{Parser, SourcePosition};
use euclid::size::Size2D; use euclid::size::TypedSize2D;
use std::borrow::ToOwned; use std::borrow::ToOwned;
use style::error_reporting::ParseErrorReporter; use style::error_reporting::ParseErrorReporter;
use style::media_queries::*; use style::media_queries::*;
@ -362,7 +362,7 @@ fn test_mq_malformed_expressions() {
fn test_matching_simple() { fn test_matching_simple() {
let device = Device { let device = Device {
media_type: MediaType::Screen, media_type: MediaType::Screen,
viewport_size: Size2D::typed(200.0, 100.0), viewport_size: TypedSize2D::new(200.0, 100.0),
}; };
media_query_test(&device, "@media not all { a { color: red; } }", 0); media_query_test(&device, "@media not all { a { color: red; } }", 0);
@ -381,7 +381,7 @@ fn test_matching_simple() {
fn test_matching_width() { fn test_matching_width() {
let device = Device { let device = Device {
media_type: MediaType::Screen, media_type: MediaType::Screen,
viewport_size: Size2D::typed(200.0, 100.0), viewport_size: TypedSize2D::new(200.0, 100.0),
}; };
media_query_test(&device, "@media { a { color: red; } }", 1); media_query_test(&device, "@media { a { color: red; } }", 1);
@ -425,7 +425,7 @@ fn test_matching_width() {
fn test_matching_invalid() { fn test_matching_invalid() {
let device = Device { let device = Device {
media_type: MediaType::Screen, media_type: MediaType::Screen,
viewport_size: Size2D::typed(200.0, 100.0), viewport_size: TypedSize2D::new(200.0, 100.0),
}; };
media_query_test(&device, "@media fridge { a { color: red; } }", 0); media_query_test(&device, "@media fridge { a { color: red; } }", 0);

View file

@ -4,7 +4,7 @@
use cssparser::Parser; use cssparser::Parser;
use euclid::scale_factor::ScaleFactor; use euclid::scale_factor::ScaleFactor;
use euclid::size::Size2D; use euclid::size::TypedSize2D;
use media_queries::CSSErrorReporterTest; use media_queries::CSSErrorReporterTest;
use style::error_reporting::ParseErrorReporter; use style::error_reporting::ParseErrorReporter;
use style::media_queries::{Device, MediaType}; use style::media_queries::{Device, MediaType};
@ -84,7 +84,7 @@ macro_rules! viewport_length {
#[test] #[test]
fn empty_viewport_rule() { fn empty_viewport_rule() {
let device = Device::new(MediaType::Screen, Size2D::typed(800., 600.)); let device = Device::new(MediaType::Screen, TypedSize2D::new(800., 600.));
test_viewport_rule("@viewport {}", &device, |declarations, css| { test_viewport_rule("@viewport {}", &device, |declarations, css| {
println!("{}", css); println!("{}", css);
@ -107,7 +107,7 @@ macro_rules! assert_decl_eq {
#[test] #[test]
fn simple_viewport_rules() { fn simple_viewport_rules() {
let device = Device::new(MediaType::Screen, Size2D::typed(800., 600.)); let device = Device::new(MediaType::Screen, TypedSize2D::new(800., 600.));
test_viewport_rule("@viewport { width: auto; height: auto;\ test_viewport_rule("@viewport { width: auto; height: auto;\
zoom: auto; min-zoom: 0; max-zoom: 200%;\ zoom: auto; min-zoom: 0; max-zoom: 200%;\
@ -179,7 +179,7 @@ fn simple_meta_viewport_contents() {
#[test] #[test]
fn cascading_within_viewport_rule() { fn cascading_within_viewport_rule() {
let device = Device::new(MediaType::Screen, Size2D::typed(800., 600.)); let device = Device::new(MediaType::Screen, TypedSize2D::new(800., 600.));
// normal order of appearance // normal order of appearance
test_viewport_rule("@viewport { min-width: 200px; min-width: auto; }", test_viewport_rule("@viewport { min-width: 200px; min-width: auto; }",
@ -246,7 +246,7 @@ fn cascading_within_viewport_rule() {
fn multiple_stylesheets_cascading() { fn multiple_stylesheets_cascading() {
::util::prefs::PREFS.set("layout.viewport.enabled", ::util::prefs::PREFS.set("layout.viewport.enabled",
::util::prefs::PrefValue::Boolean(true)); ::util::prefs::PrefValue::Boolean(true));
let device = Device::new(MediaType::Screen, Size2D::typed(800., 600.)); let device = Device::new(MediaType::Screen, TypedSize2D::new(800., 600.));
let error_reporter = CSSErrorReporterTest; let error_reporter = CSSErrorReporterTest;
let stylesheets = vec![ let stylesheets = vec![
stylesheet!("@viewport { min-width: 100px; min-height: 100px; zoom: 1; }", UserAgent, error_reporter.clone()), stylesheet!("@viewport { min-width: 100px; min-height: 100px; zoom: 1; }", UserAgent, error_reporter.clone()),
@ -289,11 +289,11 @@ fn constrain_viewport() {
} }
} }
let initial_viewport = Size2D::typed(800., 600.); let initial_viewport = TypedSize2D::new(800., 600.);
assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("")), assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("")),
None); None);
let initial_viewport = Size2D::typed(800., 600.); let initial_viewport = TypedSize2D::new(800., 600.);
assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("width: 320px auto")), assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("width: 320px auto")),
Some(ViewportConstraints { Some(ViewportConstraints {
size: initial_viewport, size: initial_viewport,
@ -306,10 +306,10 @@ fn constrain_viewport() {
orientation: Orientation::Auto orientation: Orientation::Auto
})); }));
let initial_viewport = Size2D::typed(200., 150.); let initial_viewport = TypedSize2D::new(200., 150.);
assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("width: 320px auto")), assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("width: 320px auto")),
Some(ViewportConstraints { Some(ViewportConstraints {
size: Size2D::typed(320., 240.), size: TypedSize2D::new(320., 240.),
initial_zoom: ScaleFactor::new(1.), initial_zoom: ScaleFactor::new(1.),
min_zoom: None, min_zoom: None,
@ -319,7 +319,7 @@ fn constrain_viewport() {
orientation: Orientation::Auto orientation: Orientation::Auto
})); }));
let initial_viewport = Size2D::typed(800., 600.); let initial_viewport = TypedSize2D::new(800., 600.);
assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("width: 320px auto")), assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("width: 320px auto")),
Some(ViewportConstraints { Some(ViewportConstraints {
size: initial_viewport, size: initial_viewport,
@ -332,7 +332,7 @@ fn constrain_viewport() {
orientation: Orientation::Auto orientation: Orientation::Auto
})); }));
let initial_viewport = Size2D::typed(800., 600.); let initial_viewport = TypedSize2D::new(800., 600.);
assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("width: 800px; height: 600px;\ assert_eq!(ViewportConstraints::maybe_new(initial_viewport, from_css!("width: 800px; height: 600px;\
zoom: 1;\ zoom: 1;\
user-zoom: zoom;\ user-zoom: zoom;\