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 lighting;
18mod math;
19mod particle;
20mod physics;
21mod raytracing;
22mod renderer;
23mod scene;
24mod scheduler;
25mod spatial;
26mod sprite;
27mod timer;
28
29mod tween;
30
31use wasm_bindgen::JsValue;
32pub use {
33    asset::*, audio::*, cell::*, collider::*, config::*, easing::*, engine::*, entity::*, input::*,
34    lighting::*, math::*, particle::*, physics::*, raytracing::*, renderer::*, scene::*,
35    scheduler::*, spatial::*, sprite::*, timer::*, tween::*,
36};
37
38pub use std::{
39    error::Error,
40    f64::consts::{FRAC_PI_2, PI, TAU},
41    fmt::{self, Debug, Display, Formatter, Result as FmtResult, Write as _},
42    future::{Future, Ready, ready},
43    mem::{self, replace},
44};
45
46use euv::*;
47
48use std::{
49    cell::UnsafeCell,
50    collections::{HashMap, HashSet},
51    ops::{Add, AddAssign, Mul, MulAssign, Neg, Sub, SubAssign},
52    rc::Rc,
53    sync::atomic::{AtomicU64, Ordering},
54};
55
56use {
57    js_sys::*, lombok_macros::*, wasm_bindgen::prelude::*, wasm_bindgen_futures::JsFuture,
58    web_sys::*,
59};