Skip to main content

euv_engine/
lib.rs

1//! euv-engine
2//!
3//! A high-performance 2D and 3D game engine built on the euv framework for WebAssembly,
4//! featuring an ECS-style entity system, fixed-timestep game loop, canvas rendering,
5//! WebGPU rendering, physics simulation, collision detection, sprite animation,
6//! scene management, asset loading, and Web Audio integration.
7
8mod asset;
9mod audio;
10mod cell;
11mod collider;
12mod config;
13mod easing;
14mod engine;
15mod entity;
16mod input;
17mod math;
18mod particle;
19mod physics;
20mod renderer;
21mod scene;
22mod scheduler;
23mod spatial;
24mod sprite;
25mod timer;
26
27mod tween;
28
29use wasm_bindgen::JsValue;
30pub use {
31    asset::*, audio::*, cell::*, collider::*, config::*, easing::*, engine::*, entity::*, input::*,
32    math::*, particle::*, physics::*, renderer::*, scene::*, scheduler::*, spatial::*, sprite::*,
33    timer::*, tween::*,
34};
35
36pub use std::{
37    error::Error,
38    f64::consts::{FRAC_PI_2, PI, TAU},
39    fmt::{self, Debug, Display, Formatter, Result as FmtResult, Write as _},
40    future::{Future, Ready, ready},
41    mem::{self, replace},
42};
43
44use euv::*;
45
46use std::{
47    cell::UnsafeCell,
48    collections::{HashMap, HashSet},
49    ops::{Add, AddAssign, Mul, MulAssign, Neg, Sub, SubAssign},
50    rc::Rc,
51    sync::atomic::{AtomicU64, Ordering},
52};
53
54use {
55    js_sys::*, lombok_macros::*, wasm_bindgen::prelude::*, wasm_bindgen_futures::JsFuture,
56    web_sys::*,
57};