gemini_engine/lib.rs
1#![doc = include_str!("../README.md")]
2//!
3//! ## Crate Structure
4//! This library is made up of several modules:
5//! - [`core`] declares the relationship between any [`Canvas`](core::Canvas) (an object that can be drawn to) and the library's primitives and anything else that can be drawn to the screen.
6//! - [`view`] defines the [`View`](view::View), a [`Canvas`](core::Canvas) capable of displaying
7//! - [`ascii`], [`containers`] and [`primitives`] which all offer different ways to draw to a [`Canvas`](core::Canvas). [`containers`] also has a basic collision library!
8//! - [`mesh3d`] and [`view3d`], which hold the [`Mesh3d`](mesh3d::Mesh3D) and [`Viewport`](view3d::Viewport) objects respectively, and handle everything 3D-related. [`Viewport`](view3d::Viewport)
9
10pub mod ascii;
11pub mod containers;
12pub mod core;
13pub mod primitives;
14pub mod view;
15
16#[cfg(feature = "gameloop")]
17pub use gemini_mainloop as gameloop;
18#[cfg(feature = "gameloop")]
19pub use gemini_mainloop::fps_gameloop;
20
21#[cfg(feature = "3D")]
22pub mod mesh3d;
23#[cfg(feature = "3D")]
24pub mod view3d;