pub struct Pipeline {
pub width: u32,
pub height: u32,
pub stats: FrameStats,
pub raw_window_events: Vec<WindowEvent>,
/* private fields */
}Expand description
The main render pipeline.
Created once by ProofEngine::new() and kept alive for the duration of the game.
Owns the window, OpenGL context, shader programs, font atlas, glyph VAO, and
the post-processing pipeline.
Fields§
§width: u32§height: u32§stats: FrameStats§raw_window_events: Vec<WindowEvent>Raw winit WindowEvents collected during poll_events, drained by consumers.
Implementations§
Source§impl Pipeline
impl Pipeline
Sourcepub fn init(config: &EngineConfig) -> Self
pub fn init(config: &EngineConfig) -> Self
Initialize window, OpenGL 3.3 Core context, shader programs, font atlas, and PostFxPipeline.
Sourcepub fn update_render_config(&mut self, config: &RenderConfig)
pub fn update_render_config(&mut self, config: &RenderConfig)
Update the render config used by the PostFx pipeline this frame.
Call from ProofEngine::run() whenever the config changes.
Sourcepub fn poll_events(&mut self, input: &mut InputState) -> bool
pub fn poll_events(&mut self, input: &mut InputState) -> bool
Poll window events and update InputState. Returns false on quit.
Sourcepub fn render(&mut self, scene: &Scene, camera: &ProofCamera)
pub fn render(&mut self, scene: &Scene, camera: &ProofCamera)
Collect all visible glyphs + particles from the scene, upload to the GPU, and execute the full multi-pass rendering pipeline.
Sourcepub fn gl(&self) -> &Context
pub fn gl(&self) -> &Context
Get a reference to the raw glow OpenGL context. Used by egui-glow to render UI on top of the scene.
Sourcepub fn window_size(&self) -> (u32, u32)
pub fn window_size(&self) -> (u32, u32)
Get the current window size.
Auto Trait Implementations§
impl !Freeze for Pipeline
impl !RefUnwindSafe for Pipeline
impl !Send for Pipeline
impl !Sync for Pipeline
impl Unpin for Pipeline
impl UnsafeUnpin for Pipeline
impl !UnwindSafe for Pipeline
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.