Update euclid.

There are a few canvas2d-related dependencies that haven't updated, but they
only use euclid internally so that's not blocking landing the rest of the
changes.

Given the size of this patch, I think it's useful to get this landed as-is.
This commit is contained in:
Emilio Cobos Álvarez 2019-07-22 12:49:39 +02:00
parent 2ff7cb5a37
commit 3d57c22e9c
133 changed files with 686 additions and 596 deletions

View file

@ -21,14 +21,14 @@ azure = {git = "https://github.com/servo/rust-azure", optional = true}
byteorder = "1"
canvas_traits = {path = "../canvas_traits"}
cssparser = "0.25"
euclid = "0.19"
euclid = "0.20"
fnv = "1.0"
gleam = "0.6.7"
half = "1"
ipc-channel = "0.11"
log = "0.4"
num-traits = "0.2"
offscreen_gl_context = {version = "0.22", features = ["serde", "osmesa"]}
offscreen_gl_context = {version = "0.23", features = ["serde", "osmesa"]}
raqote = {git = "https://github.com/jrmuizel/raqote", optional = true}
pixels = {path = "../pixels"}
serde_bytes = "0.10"

View file

@ -16,7 +16,7 @@ use azure::azure_hl::{CapStyle, JoinStyle};
use azure::azure_hl::{LinearGradientPattern, RadialGradientPattern};
use canvas_traits::canvas::*;
use cssparser::RGBA;
use euclid::{Point2D, Rect, Size2D, Transform2D, Vector2D};
use euclid::default::{Point2D, Rect, Size2D, Transform2D, Vector2D};
pub struct AzureBackend;

View file

@ -5,7 +5,7 @@
use crate::canvas_paint_thread::AntialiasMode;
use canvas_traits::canvas::*;
use cssparser::RGBA;
use euclid::{Point2D, Rect, Size2D, Transform2D, Vector2D};
use euclid::default::{Point2D, Rect, Size2D, Transform2D, Vector2D};
use ipc_channel::ipc::{IpcSender, IpcSharedMemory};
use num_traits::ToPrimitive;
#[allow(unused_imports)]
@ -13,6 +13,7 @@ use std::marker::PhantomData;
use std::mem;
use std::sync::Arc;
use webrender::api::DirtyRect;
use webrender_api::units::RectExt;
/// The canvas data stores a state machine for the current status of
/// the path data and any relevant transformations that are
@ -123,12 +124,12 @@ struct PathBuilderRef<'a> {
impl<'a> PathBuilderRef<'a> {
fn line_to(&self, pt: &Point2D<f32>) {
let pt = self.transform.transform_point(pt);
let pt = self.transform.transform_point(*pt);
self.builder.line_to(pt);
}
fn move_to(&self, pt: &Point2D<f32>) {
let pt = self.transform.transform_point(pt);
let pt = self.transform.transform_point(*pt);
self.builder.move_to(pt);
}
@ -142,32 +143,30 @@ impl<'a> PathBuilderRef<'a> {
),
Point2D::new(rect.origin.x, rect.origin.y + rect.size.height),
);
self.builder.move_to(self.transform.transform_point(&first));
self.builder
.line_to(self.transform.transform_point(&second));
self.builder.line_to(self.transform.transform_point(&third));
self.builder
.line_to(self.transform.transform_point(&fourth));
self.builder.move_to(self.transform.transform_point(first));
self.builder.line_to(self.transform.transform_point(second));
self.builder.line_to(self.transform.transform_point(third));
self.builder.line_to(self.transform.transform_point(fourth));
self.builder.close();
}
fn quadratic_curve_to(&self, cp: &Point2D<f32>, endpoint: &Point2D<f32>) {
self.builder.quadratic_curve_to(
&self.transform.transform_point(cp),
&self.transform.transform_point(endpoint),
&self.transform.transform_point(*cp),
&self.transform.transform_point(*endpoint),
)
}
fn bezier_curve_to(&self, cp1: &Point2D<f32>, cp2: &Point2D<f32>, endpoint: &Point2D<f32>) {
self.builder.bezier_curve_to(
&self.transform.transform_point(cp1),
&self.transform.transform_point(cp2),
&self.transform.transform_point(endpoint),
&self.transform.transform_point(*cp1),
&self.transform.transform_point(*cp2),
&self.transform.transform_point(*endpoint),
)
}
fn arc(&self, center: &Point2D<f32>, radius: f32, start_angle: f32, end_angle: f32, ccw: bool) {
let center = self.transform.transform_point(center);
let center = self.transform.transform_point(*center);
self.builder
.arc(center, radius, start_angle, end_angle, ccw);
}
@ -182,7 +181,7 @@ impl<'a> PathBuilderRef<'a> {
end_angle: f32,
ccw: bool,
) {
let center = self.transform.transform_point(center);
let center = self.transform.transform_point(*center);
self.builder.ellipse(
center,
radius_x,
@ -200,7 +199,7 @@ impl<'a> PathBuilderRef<'a> {
None => return None,
};
let current_point = self.builder.get_current_point();
Some(inverse.transform_point(&Point2D::new(current_point.x, current_point.y)))
Some(inverse.transform_point(Point2D::new(current_point.x, current_point.y)))
}
}
@ -1033,7 +1032,7 @@ impl<'a> CanvasData<'a> {
);
let matrix = Transform2D::identity()
.pre_translate(-source_rect.origin.to_vector().cast())
.pre_mul(&self.state.transform);
.pre_transform(&self.state.transform);
draw_target.set_transform(&matrix);
draw_target
}

View file

@ -4,7 +4,7 @@
use crate::canvas_data::*;
use canvas_traits::canvas::*;
use euclid::Size2D;
use euclid::default::Size2D;
use ipc_channel::ipc::{self, IpcSender};
use std::borrow::ToOwned;
use std::collections::HashMap;

View file

@ -6,7 +6,7 @@ use super::webgl_thread::{GLState, WebGLImpl};
use canvas_traits::webgl::{
GLContextAttributes, GLLimits, WebGLCommand, WebGLCommandBacktrace, WebGLVersion,
};
use euclid::Size2D;
use euclid::default::Size2D;
use gleam::gl;
use offscreen_gl_context::{
ColorAttachmentType, DrawBuffer, GLContext, GLContextAttributes as RawGLContextAttributes,

View file

@ -10,7 +10,7 @@ use crate::canvas_data::{
use crate::canvas_paint_thread::AntialiasMode;
use canvas_traits::canvas::*;
use cssparser::RGBA;
use euclid::{Point2D, Rect, Size2D, Transform2D, Vector2D};
use euclid::default::{Point2D, Rect, Size2D, Transform2D, Vector2D};
use std::marker::PhantomData;
pub struct RaqoteBackend;

View file

@ -8,7 +8,7 @@ use canvas_traits::webgl::webgl_channel;
use canvas_traits::webgl::DOMToTextureCommand;
use canvas_traits::webgl::{WebGLChan, WebGLContextId, WebGLMsg, WebGLPipeline, WebGLReceiver};
use canvas_traits::webgl::{WebGLSender, WebVRCommand, WebVRRenderHandler};
use euclid::Size2D;
use euclid::default::Size2D;
use fnv::FnvHashMap;
use gleam::gl;
use servo_config::pref;

View file

@ -5,7 +5,7 @@
use super::gl_context::{map_attrs_to_script_attrs, GLContextFactory, GLContextWrapper};
use byteorder::{ByteOrder, NativeEndian, WriteBytesExt};
use canvas_traits::webgl::*;
use euclid::Size2D;
use euclid::default::Size2D;
use fnv::FnvHashMap;
use gleam::gl;
use half::f16;