pix_engine/
lib.rs

1#![doc = include_str!("../README.md")]
2#![warn(
3    anonymous_parameters,
4    bare_trait_objects,
5    clippy::branches_sharing_code,
6    clippy::map_unwrap_or,
7    clippy::match_wildcard_for_single_variants,
8    clippy::missing_errors_doc,
9    clippy::must_use_candidate,
10    clippy::needless_for_each,
11    clippy::redundant_closure_for_method_calls,
12    clippy::semicolon_if_nothing_returned,
13    clippy::unreadable_literal,
14    clippy::unwrap_used,
15    clippy::expect_used,
16    deprecated_in_future,
17    ellipsis_inclusive_range_patterns,
18    future_incompatible,
19    missing_copy_implementations,
20    missing_debug_implementations,
21    missing_docs,
22    nonstandard_style,
23    rust_2018_compatibility,
24    rust_2018_idioms,
25    rust_2021_compatibility,
26    rustdoc::bare_urls,
27    rustdoc::broken_intra_doc_links,
28    rustdoc::invalid_html_tags,
29    rustdoc::invalid_rust_codeblocks,
30    rustdoc::private_intra_doc_links,
31    single_use_lifetimes,
32    trivial_casts,
33    trivial_numeric_casts,
34    unreachable_pub,
35    unused,
36    variant_size_differences
37)]
38#![doc(
39    html_root_url = "https://docs.rs/pix-engine/latest",
40    html_favicon_url = "",
41    html_logo_url = ""
42)]
43
44#[macro_use]
45pub mod color;
46pub mod draw;
47pub mod engine;
48pub mod error;
49#[macro_use]
50pub mod shape;
51pub mod audio;
52pub mod event;
53pub mod image;
54pub mod lighting;
55pub mod ops;
56pub mod state;
57pub mod texture;
58pub mod window;
59#[macro_use]
60pub mod math;
61#[macro_use]
62pub mod vector;
63pub mod gui;
64pub mod renderer;
65#[cfg(feature = "serde")]
66pub mod serialize;
67pub mod transform;
68
69/// Exports most commonly used types, traits, and functions.
70pub mod prelude {
71    pub use super::audio::{
72        AudioCallback, AudioDevice, AudioDeviceDriver, AudioFormat, AudioFormatNum, AudioSpec,
73        AudioSpecDesired, AudioStatus,
74    };
75    pub use super::color::{Color, Mode as ColorMode};
76    pub use super::draw::Draw;
77    pub use super::engine::{Engine, PixEngine};
78    pub use super::error::{Error as PixError, Result as PixResult};
79    pub use super::event::{
80        Axis, ControllerButton, ControllerEvent, ControllerId, ControllerUpdate, Event, HatState,
81        Key, KeyEvent, KeyMod, Mouse, WindowEvent,
82    };
83    pub use super::gui::theme::{self, ColorType, Font, Theme};
84    pub use super::image::{Image, PixelFormat};
85    pub use super::lighting::{Light, LightSource};
86    pub use super::math::{map, random_rng, Float, Num};
87    pub use super::shape::{Contains, Ellipse, Intersects, Line, Point, Quad, Rect, Sphere, Tri};
88    pub use super::state::{
89        settings::{
90            AngleMode, ArcMode, BlendMode, DrawMode, EllipseMode, FontStyle, ImageMode, RectMode,
91        },
92        PixState,
93    };
94    pub use super::texture::TextureId;
95    pub use super::transform::Flipped;
96    pub use super::vector::Vector;
97    pub use super::window::{Cursor, Position, SystemCursor, WindowId};
98
99    // Shape macros
100    pub use {circle, ellipse, line_, point, quad, rect, sphere, square, tri};
101    // Math macros
102    pub use {noise, random, vector};
103    // Color macros
104    pub use {color, hsb, hsl, rgb};
105}