use crate::renderer::{ Renderer, TextureBuffer };
#[derive(Default)]
pub struct Texture {
pub width: u32,
pub height: u32,
pub depth: u32,
pub data: Vec<u8>,
pub buffer: TextureBuffer,
pub changed: bool,
}
impl Texture {
pub fn load(&mut self, renderer: &Renderer) {
if !self.changed && self.buffer.loaded() {
return;
}
renderer.load_texture_buffer(&mut self.buffer, self.width, self.height, &[&self.data]);
self.changed = false;
}
pub fn unload(&mut self) {
self.buffer.unload();
}
}