aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlcanvaselement.rs
diff options
context:
space:
mode:
authorEdit Balint <edbalint@inf.u-szeged.hu>2014-11-27 18:25:47 +0100
committerEdit Balint <edbalint@inf.u-szeged.hu>2015-01-09 18:53:10 +0100
commit81f47344d6e121d86de368a25107415406de3c0f (patch)
tree6026f5e80de0a1ffd974749d89d90d562bf12144 /components/script/dom/htmlcanvaselement.rs
parent43e34d6d1050227eecc8fa293f9faec066f173a1 (diff)
downloadservo-81f47344d6e121d86de368a25107415406de3c0f.tar.gz
servo-81f47344d6e121d86de368a25107415406de3c0f.zip
CanvasRenderTask connected to Layout
Update rust-azure to f4a02f3f621b0a994a20d42e438371a87c62f898.
Diffstat (limited to 'components/script/dom/htmlcanvaselement.rs')
-rw-r--r--components/script/dom/htmlcanvaselement.rs26
1 files changed, 24 insertions, 2 deletions
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index eb02b6bc87d..15f25a495a5 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -2,6 +2,7 @@
* 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/. */
+use canvas::canvas_paint_task::CanvasMsg;
use dom::attr::Attr;
use dom::attr::AttrHelpers;
use dom::bindings::codegen::Bindings::HTMLCanvasElementBinding;
@@ -9,8 +10,8 @@ use dom::bindings::codegen::Bindings::HTMLCanvasElementBinding::HTMLCanvasElemen
use dom::bindings::codegen::InheritTypes::HTMLCanvasElementDerived;
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
use dom::bindings::global::GlobalRef;
-use dom::bindings::js::{MutNullableJS, JSRef, Temporary};
-use dom::canvasrenderingcontext2d::CanvasRenderingContext2D;
+use dom::bindings::js::{MutNullableJS, JS, JSRef, Temporary};
+use dom::canvasrenderingcontext2d::{CanvasRenderingContext2D, LayoutCanvasRenderingContext2DHelpers};
use dom::document::Document;
use dom::element::{Element, AttributeHandlers};
use dom::eventtarget::{EventTarget, EventTargetTypeId};
@@ -60,6 +61,27 @@ impl HTMLCanvasElement {
}
}
+pub trait LayoutHTMLCanvasElementHelpers {
+ unsafe fn get_renderer(&self) -> Option<Sender<CanvasMsg>>;
+ unsafe fn get_canvas_width(&self) -> u32;
+ unsafe fn get_canvas_height(&self) -> u32;
+}
+
+impl LayoutHTMLCanvasElementHelpers for JS<HTMLCanvasElement> {
+ unsafe fn get_renderer(&self) -> Option<Sender<CanvasMsg>> {
+ let context = (*self.unsafe_get()).context.get_inner();
+ context.map(|cx| cx.get_renderer())
+ }
+
+ unsafe fn get_canvas_width(&self) -> u32 {
+ (*self.unsafe_get()).width.get()
+ }
+
+ unsafe fn get_canvas_height(&self) -> u32 {
+ (*self.unsafe_get()).height.get()
+ }
+}
+
impl<'a> HTMLCanvasElementMethods for JSRef<'a, HTMLCanvasElement> {
fn Width(self) -> u32 {
self.width.get()