servo: Merge #5251 - Canvas: implement quadraticCurveTo() (from mmatyas:canvas_quadratic); r=jdm

Yet another small canvas patch.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c85c1d312405c586f05244c221b65750cf09981
This commit is contained in:
Mátyás Mustoha 2015-03-20 04:27:47 -06:00
Родитель 1bf28c3915
Коммит 6fe3dfb702
3 изменённых файлов: 16 добавлений и 1 удалений

Просмотреть файл

@ -29,6 +29,7 @@ pub enum CanvasMsg {
Fill,
MoveTo(Point2D<f32>),
LineTo(Point2D<f32>),
QuadraticCurveTo(Point2D<f32>, Point2D<f32>),
BezierCurveTo(Point2D<f32>, Point2D<f32>, Point2D<f32>),
Arc(Point2D<f32>, f32, f32, f32, bool),
SetFillStyle(FillOrStrokeStyle),
@ -81,6 +82,9 @@ impl<'a> CanvasPaintTask<'a> {
CanvasMsg::Fill => painter.fill(),
CanvasMsg::MoveTo(ref point) => painter.move_to(point),
CanvasMsg::LineTo(ref point) => painter.line_to(point),
CanvasMsg::QuadraticCurveTo(ref cp, ref pt) => {
painter.quadratic_curve_to(cp, pt)
}
CanvasMsg::BezierCurveTo(ref cp1, ref cp2, ref pt) => {
painter.bezier_curve_to(cp1, cp2, pt)
}
@ -151,6 +155,12 @@ impl<'a> CanvasPaintTask<'a> {
self.path_builder.line_to(*point)
}
fn quadratic_curve_to(&self,
cp: &Point2D<AzFloat>,
endpoint: &Point2D<AzFloat>) {
self.path_builder.quadratic_curve_to(cp, endpoint)
}
fn bezier_curve_to(&self,
cp1: &Point2D<AzFloat>,
cp2: &Point2D<AzFloat>,

Просмотреть файл

@ -157,6 +157,11 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D>
self.renderer.send(CanvasMsg::LineTo(Point2D(x as f32, y as f32))).unwrap();
}
fn QuadraticCurveTo(self, cpx: f64, cpy: f64, x: f64, y: f64) {
self.renderer.send(CanvasMsg::QuadraticCurveTo(Point2D(cpx as f32, cpy as f32),
Point2D(x as f32, y as f32))).unwrap();
}
fn BezierCurveTo(self, cp1x: f64, cp1y: f64, cp2x: f64, cp2y: f64, x: f64, y: f64) {
self.renderer.send(CanvasMsg::BezierCurveTo(Point2D(cp1x as f32, cp1y as f32),
Point2D(cp2x as f32, cp2y as f32),

Просмотреть файл

@ -126,7 +126,7 @@ interface CanvasPathMethods {
void closePath();
void moveTo(/*unrestricted*/ double x, /*unrestricted*/ double y);
void lineTo(double x, double y);
//void quadraticCurveTo(double cpx, double cpy, double x, double y);
void quadraticCurveTo(double cpx, double cpy, double x, double y);
void bezierCurveTo(/*unrestricted*/ double cp1x,
/*unrestricted*/ double cp1y,