aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/canvasrenderingcontext2d.rs
diff options
context:
space:
mode:
authorTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2014-07-27 02:02:46 +0900
committerTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2014-07-27 02:02:46 +0900
commit4a0bb1be518dff3c0fba060dc6dd7aaeff21dded (patch)
treeb397de94b594d912b881e03a6dd1d4642d280905 /src/components/script/dom/canvasrenderingcontext2d.rs
parent69c49bb76437bb6dd71fe64cdf4c9da1dcaab11e (diff)
downloadservo-4a0bb1be518dff3c0fba060dc6dd7aaeff21dded.tar.gz
servo-4a0bb1be518dff3c0fba060dc6dd7aaeff21dded.zip
Move CanvasRenderTask to gfx crate.
Diffstat (limited to 'src/components/script/dom/canvasrenderingcontext2d.rs')
-rw-r--r--src/components/script/dom/canvasrenderingcontext2d.rs72
1 files changed, 1 insertions, 71 deletions
diff --git a/src/components/script/dom/canvasrenderingcontext2d.rs b/src/components/script/dom/canvasrenderingcontext2d.rs
index 42cfd21472b..c384544fa4b 100644
--- a/src/components/script/dom/canvasrenderingcontext2d.rs
+++ b/src/components/script/dom/canvasrenderingcontext2d.rs
@@ -8,14 +8,11 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::trace::Untraceable;
use dom::bindings::utils::{Reflector, Reflectable, reflect_dom_object};
-use azure::azure_hl::{DrawTarget, Color, B8G8R8A8, SkiaBackend, StrokeOptions, DrawOptions};
-use azure::azure_hl::ColorPattern;
use geom::point::Point2D;
use geom::rect::Rect;
use geom::size::Size2D;
-use std::comm;
-use std::task::TaskBuilder;
+use gfx::canvas_render_task::{CanvasMsg, CanvasRenderTask, ClearRect, Close, FillRect, Recreate, StrokeRect};
#[deriving(Encodable)]
pub struct CanvasRenderingContext2D {
@@ -24,73 +21,6 @@ pub struct CanvasRenderingContext2D {
renderer: Untraceable<Sender<CanvasMsg>>,
}
-enum CanvasMsg {
- FillRect(Rect<f32>),
- ClearRect(Rect<f32>),
- StrokeRect(Rect<f32>),
- Recreate(Size2D<i32>),
- Close,
-}
-
-struct CanvasRenderTask {
- drawtarget: DrawTarget,
- fill_color: ColorPattern,
- stroke_color: ColorPattern,
- stroke_opts: StrokeOptions,
-}
-
-impl CanvasRenderTask {
- fn new(size: Size2D<i32>) -> CanvasRenderTask {
- CanvasRenderTask {
- drawtarget: CanvasRenderTask::create(size),
- fill_color: ColorPattern::new(Color::new(0., 0., 0., 1.)),
- stroke_color: ColorPattern::new(Color::new(0., 0., 0., 1.)),
- stroke_opts: StrokeOptions::new(1.0, 1.0),
- }
- }
-
- fn start(size: Size2D<i32>) -> Sender<CanvasMsg> {
- let (chan, port) = comm::channel::<CanvasMsg>();
- let builder = TaskBuilder::new().named("CanvasTask");
- builder.spawn(proc() {
- let mut renderer = CanvasRenderTask::new(size);
-
- loop {
- match port.recv() {
- FillRect(ref rect) => renderer.fill_rect(rect),
- StrokeRect(ref rect) => renderer.stroke_rect(rect),
- ClearRect(ref rect) => renderer.clear_rect(rect),
- Recreate(size) => renderer.recreate(size),
- Close => break,
- }
- }
- });
- chan
- }
-
- fn fill_rect(&self, rect: &Rect<f32>) {
- let drawopts = DrawOptions::new(1.0, 0);
- self.drawtarget.fill_rect(rect, &self.fill_color, Some(&drawopts));
- }
-
- fn clear_rect(&self, rect: &Rect<f32>) {
- self.drawtarget.clear_rect(rect);
- }
-
- fn stroke_rect(&self, rect: &Rect<f32>) {
- let drawopts = DrawOptions::new(1.0, 0);
- self.drawtarget.stroke_rect(rect, &self.stroke_color, &self.stroke_opts, &drawopts);
- }
-
- fn create(size: Size2D<i32>) -> DrawTarget {
- DrawTarget::new(SkiaBackend, size, B8G8R8A8)
- }
-
- fn recreate(&mut self, size: Size2D<i32>) {
- self.drawtarget = CanvasRenderTask::create(size);
- }
-}
-
impl CanvasRenderingContext2D {
pub fn new_inherited(global: &GlobalRef, size: Size2D<i32>) -> CanvasRenderingContext2D {
CanvasRenderingContext2D {