2019-08-14 18:20:05 +10:00
|
|
|
#![cfg(target_arch = "wasm32")]
|
|
|
|
|
2019-09-25 09:33:32 +10:00
|
|
|
//! The web target does not automatically insert the canvas element object into the web page, to
|
|
|
|
//! allow end users to determine how the page should be laid out. Use the `WindowExtStdweb` or
|
|
|
|
//! `WindowExtWebSys` traits (depending on your web backend) to retrieve the canvas from the
|
2020-01-16 13:20:14 +11:00
|
|
|
//! Window. Alternatively, use the `WindowBuilderExtStdweb` or `WindowBuilderExtWebSys` to provide
|
|
|
|
//! your own canvas.
|
|
|
|
|
|
|
|
use crate::window::WindowBuilder;
|
2019-09-25 09:33:32 +10:00
|
|
|
|
2019-07-02 04:43:54 +10:00
|
|
|
#[cfg(feature = "stdweb")]
|
2019-06-25 11:15:34 +10:00
|
|
|
use stdweb::web::html_element::CanvasElement;
|
|
|
|
|
2019-07-02 04:43:54 +10:00
|
|
|
#[cfg(feature = "stdweb")]
|
2019-06-25 11:15:34 +10:00
|
|
|
pub trait WindowExtStdweb {
|
|
|
|
fn canvas(&self) -> CanvasElement;
|
|
|
|
}
|
|
|
|
|
2019-07-02 04:43:54 +10:00
|
|
|
#[cfg(feature = "web-sys")]
|
2019-06-25 11:15:34 +10:00
|
|
|
use web_sys::HtmlCanvasElement;
|
|
|
|
|
2019-07-02 04:43:54 +10:00
|
|
|
#[cfg(feature = "web-sys")]
|
2019-06-25 11:15:34 +10:00
|
|
|
pub trait WindowExtWebSys {
|
|
|
|
fn canvas(&self) -> HtmlCanvasElement;
|
|
|
|
}
|
2020-01-16 13:20:14 +11:00
|
|
|
|
|
|
|
#[cfg(feature = "stdweb")]
|
|
|
|
pub trait WindowBuilderExtStdweb {
|
|
|
|
fn with_canvas(self, canvas: Option<CanvasElement>) -> Self;
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(feature = "stdweb")]
|
|
|
|
impl WindowBuilderExtStdweb for WindowBuilder {
|
|
|
|
fn with_canvas(mut self, canvas: Option<CanvasElement>) -> Self {
|
|
|
|
self.platform_specific.canvas = canvas;
|
|
|
|
|
|
|
|
self
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(feature = "web-sys")]
|
|
|
|
pub trait WindowBuilderExtWebSys {
|
|
|
|
fn with_canvas(self, canvas: Option<HtmlCanvasElement>) -> Self;
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(feature = "web-sys")]
|
|
|
|
impl WindowBuilderExtWebSys for WindowBuilder {
|
|
|
|
fn with_canvas(mut self, canvas: Option<HtmlCanvasElement>) -> Self {
|
|
|
|
self.platform_specific.canvas = canvas;
|
|
|
|
|
|
|
|
self
|
|
|
|
}
|
|
|
|
}
|