pub struct ProofEngine {
pub config: EngineConfig,
pub scene: SceneGraph,
pub camera: ProofCamera,
pub input: InputState,
pub audio: Option<AudioEngine>,
/* private fields */
}Expand description
The main engine struct. Create once, run forever.
Fields§
§config: EngineConfig§scene: SceneGraph§camera: ProofCamera§input: InputState§audio: Option<AudioEngine>Optional audio engine — None if no output device is available.
Implementations§
Source§impl ProofEngine
impl ProofEngine
Sourcepub fn run_game<G: ProofGame>(game: G)
pub fn run_game<G: ProofGame>(game: G)
Run the engine with a ProofGame implementation.
This is the preferred entry point for games that implement ProofGame.
It calls on_start(), runs the game loop calling update() each frame,
then calls on_stop() on clean exit.
use proof_engine::prelude::*;
use proof_engine::integration::ProofGame;
struct MyGame;
impl ProofGame for MyGame {
fn title(&self) -> &str { "My Game" }
fn update(&mut self, _engine: &mut ProofEngine, _dt: f32) {}
}
ProofEngine::run_game(MyGame);Source§impl ProofEngine
impl ProofEngine
Source§impl ProofEngine
impl ProofEngine
pub fn new(config: EngineConfig) -> Self
Sourcepub fn emit_audio(&self, event: AudioEvent)
pub fn emit_audio(&self, event: AudioEvent)
Send an audio event. No-op if audio is unavailable.
Sourcepub fn run<F>(&mut self, update: F)
pub fn run<F>(&mut self, update: F)
Run the engine. Calls update every frame with elapsed seconds.
Blocks until the window is closed.
Sourcepub fn run_with_overlay<F>(&mut self, update: F)
pub fn run_with_overlay<F>(&mut self, update: F)
Run the engine with an overlay callback. The overlay callback receives the glow GL context reference and is called AFTER scene rendering but BEFORE buffer swap — perfect for egui.
Sourcepub fn add_field(&mut self, field: ForceField) -> FieldId
pub fn add_field(&mut self, field: ForceField) -> FieldId
Add a force field to the scene.
Sourcepub fn remove_field(&mut self, id: FieldId)
pub fn remove_field(&mut self, id: FieldId)
Remove a force field.
Sourcepub fn spawn_glyph(&mut self, glyph: Glyph) -> GlyphId
pub fn spawn_glyph(&mut self, glyph: Glyph) -> GlyphId
Spawn a glyph into the scene.
Sourcepub fn spawn_entity(&mut self, entity: AmorphousEntity) -> EntityId
pub fn spawn_entity(&mut self, entity: AmorphousEntity) -> EntityId
Spawn an amorphous entity, creating its formation glyphs.
Sourcepub fn emit_particles(&mut self, emitter: EmitterPreset, origin: Vec3)
pub fn emit_particles(&mut self, emitter: EmitterPreset, origin: Vec3)
Emit a burst of particles at a position.
Sourcepub fn add_trauma(&mut self, amount: f32)
pub fn add_trauma(&mut self, amount: f32)
Apply trauma (screen shake). 0.0 = none, 1.0 = maximum.
Source§impl ProofEngine
Request quit on next frame.
impl ProofEngine
Request quit on next frame.
pub fn request_quit(&mut self)
Sourcepub fn gl(&self) -> Option<&Context>
pub fn gl(&self) -> Option<&Context>
Get a reference to the glow GL context (for egui integration). Returns None if the pipeline hasn’t been initialized yet.
Sourcepub fn window(&self) -> Option<&Window>
pub fn window(&self) -> Option<&Window>
Get the window reference (for egui-winit event processing).
Sourcepub fn window_size(&self) -> (u32, u32)
pub fn window_size(&self) -> (u32, u32)
Get the current window size in pixels.