use crate::engine::Engine;
use crate::prelude::renderer_types::TextureResource;
use crate::prelude::wgpu::{self, RenderPass};
use wgpu::TextureFormat;
pub trait SpriteRenderer {
fn key(&self) -> &'static str;
fn new_pipeline(
&self,
texture: &TextureResource,
format: TextureFormat,
camera_buffer: &wgpu::Buffer,
shader_buffer: Vec<u8>,
) -> Box<dyn SpritePipeline>;
}
pub trait SpritePipeline {
fn render(&self, pass: &mut RenderPass, index: usize);
}
pub trait PostRenderer {
fn resize(&self, g: &Engine);
fn draw(&self, texture: &TextureResource, pass: &mut RenderPass);
fn frame_pass(&self, g: &Engine, pass: &mut RenderPass);
fn frame_end(&self, pass: &mut RenderPass);
}