1use cfg_if::cfg_if;
2
3mod base;
4pub mod bitmap;
5pub mod brush;
6pub mod canvas;
7pub mod device;
8#[macro_use]
9pub mod error;
10pub mod font;
11pub mod geometry;
12pub mod gradient;
13pub mod layer;
14pub mod matrix;
15pub mod paint;
16pub mod path;
17pub mod text;
18pub mod window;
19
20cfg_if! {
21 if #[cfg(target_os = "windows")] {
22 #[path = "direct2d/mod.rs"]
23 pub mod backend;
24 pub use crate::backend::bitmap::D2DBitmap as DefaultBitmap;
25 pub use crate::backend::brush::D2DBrush as DefaultBrush;
26 pub use crate::backend::canvas::D2DCanvas as DefaultCanvas;
27 pub use crate::backend::device::D2DDeviceContext as DefaultDeviceContext;
28 pub use crate::backend::gradient::D2DGradient as DefaultGradient;
29 pub use crate::backend::layer::D2DLayer as DefaultLayer;
30 pub use crate::backend::matrix::D2DMatrix as DefaultMatrix;
31 pub use crate::backend::path::D2DPath as DefaultPath;
32 } else if #[cfg(any(target_os = "ios", target_os = "macos"))] {
33 extern crate core_graphics2 as core_graphics;
34 #[path = "core_graphics/mod.rs"]
35 pub mod backend;
36 pub use crate::backend::bitmap::CoreGraphicsBitmap as DefaultBitmap;
37 pub use crate::backend::brush::CoreGraphicsBrush as DefaultBrush;
38 pub use crate::backend::canvas::CoreGraphicsCanvas as DefaultCanvas;
39 pub use crate::backend::device::CoreGraphicsDeviceContext as DefaultDeviceContext;
40 pub use crate::backend::gradient::CoreGraphicsGradient as DefaultGradient;
41 pub use crate::backend::layer::CoreGraphicsLayer as DefaultLayer;
42 pub use crate::backend::matrix::CoreGraphicsMatrix as DefaultMatrix;
43 pub use crate::backend::path::CoreGraphicsPath as DefaultPath;
44 } else if #[cfg(target_family = "wasm")] {
45 #[path = "web/mod.rs"]
46 pub mod backend;
47 pub use crate::backend::bitmap::WebBitmap as DefaultBitmap;
48 pub use crate::backend::brush::WebBrush as DefaultBrush;
49 pub use crate::backend::canvas::WebCanvas as DefaultCanvas;
50 pub use crate::backend::device::WebDeviceContext as DefaultDeviceContext;
51 pub use crate::backend::gradient::WebGradient as DefaultGradient;
52 pub use crate::backend::layer::WebLayer as DefaultLayer;
53 pub use crate::backend::matrix::WebMatrix as DefaultMatrix;
54 pub use crate::backend::path::WebPath as DefaultPath;
55 } else {
56 compile_error!("unsupported target");
57 }
58}
59
60pub use base::*;