cat_engine 0.5.0-alpha

A 2D graphics engine with audio output support
Documentation
use crate::InnerWindowEvent;

use glium::glutin::{
    ContextBuilder,
    NotCurrent,
    monitor::MonitorHandle,
    event_loop::EventLoop,
    event::{WindowEvent,MouseScrollDelta,ModifiersState},
    window::WindowBuilder,
    platform::desktop::EventLoopExtDesktop,
};

pub trait App:Sized{
    type StartArgs;
    fn on_create(&mut self)->Self::StartArgs;
    fn on_start(&mut self,args:Self::StartArgs);
    fn on_suspend(&mut self);
    fn on_resume(&mut self);

    fn on_destroy(&mut self);

    fn run(mut self){
        let args:Self::StartArgs=self.on_create();
        self.on_start(args);

        let mut event_loop=EventLoop::<InnerWindowEvent>::with_user_event();

        event_loop.run_return(|event,_,control_flow|{

        });

        self.on_destroy();
    }
}