x_graphics/
lib.rs

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::*;