niko 0.1.8

the niko wasm game engine
Documentation
use std::cell::RefCell;
use std::rc::Rc;
use std::collections::VecDeque;
use glow::Context as GlowContext;
use crate::{
    Event,
    Images,
    Input,
    Metrics,
    graphics::Shader,
};

pub struct Context {
    pub(crate) gl: GlowContext,
    pub(crate) event_queue: Rc<RefCell<VecDeque<Event>>>,
    pub(crate) images: Images,
    pub(crate) input: Input,
    pub(crate) metrics: Metrics,
    pub(crate) sprite_shader: Shader,
}

impl Context {
    pub(crate) fn new(
        gl: GlowContext,
        event_queue: Rc<RefCell<VecDeque<Event>>>,
        images: Images,
        input: Input,
        metrics: Metrics,
        sprite_shader: Shader,
    ) -> Self {
        Self {
            gl,
            event_queue,
            images,
            input,
            metrics,
            sprite_shader,
        }
    }
}