use std::mem;
use std::os::raw::c_int;
use crate::renderer::render_buffer::RenderBuffer;
use crate::wasm_imports::*;
pub struct CoreRenderer {}
impl CoreRenderer {
pub fn new() -> CoreRenderer {
CoreRenderer {}
}
}
impl CoreRenderer {
pub(in crate::renderer) fn set_scissor(&mut self, x: u32, y: u32, w: u32, h: u32) {
unsafe {
nuuroWasmSetScissor(x as c_int, y as c_int, w as c_int, h as c_int);
}
}
pub(in crate::renderer) fn clear(&mut self, color: (u8, u8, u8)) {
unsafe {
nuuroWasmClear(
color.0 as f32 / 255.,
color.1 as f32 / 255.,
color.2 as f32 / 255.,
);
}
}
pub(in crate::renderer) fn draw_sprites(&mut self, r: &mut RenderBuffer) {
unsafe {
nuuroWasmDrawSprites(
mem::size_of::<f32>() * r.vbo_data.len(),
mem::transmute(&r.vbo_data[0]),
);
}
}
}