roast2d_internal 0.3.0-alpha.1

Roast2D internal crate
Documentation
use crate::engine::Engine;
use crate::prelude::renderer_types::TextureResource;
use crate::prelude::wgpu::{self, RenderPass};
use wgpu::TextureFormat;

pub trait SpriteRenderer {
    /// The key of the renderer, used to identify the renderer.
    fn key(&self) -> &'static str;
    /// Create a new pipeline
    fn new_pipeline(
        &self,
        texture: &TextureResource,
        format: TextureFormat,
        camera_buffer: &wgpu::Buffer,
        shader_buffer: Vec<u8>,
    ) -> Box<dyn SpritePipeline>;
}

pub trait SpritePipeline {
    /// Render
    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);
}