pub mod bind_group;
pub mod buffer;
pub mod camera;
pub mod color;
pub mod mesh;
pub mod pipeline;
pub mod render2d;
pub mod texture;
pub mod viewport;
pub use buffer::*;
pub use camera::*;
pub use color::*;
use image::{DynamicImage, ImageBuffer, Rgba};
pub use mesh::*;
pub use pipeline::*;
pub use render2d::{Instance2d, Line2d, SpriteMaterial, SpriteRect, SpriteScaling, Transform2d};
pub use texture::*;
use crate::RenderState;
pub const PIPELINE_FILL: u32 = 0;
pub const PIPELINE_STROKE: u32 = 1;
pub const PIPELINE_VIEWPORT: u32 = 2;
pub const TEXTURE_EMPTY: u32 = 0;
pub fn register_builtin_assets(render_state: &mut RenderState) {
render_state.init_buffer::<u32>(wgpu::BufferUsages::INDEX | wgpu::BufferUsages::COPY_DST);
render_state.init_buffer::<View>(wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST);
let empty_image = ImageBuffer::from_pixel(1, 1, Rgba([255; 4]));
render_state.register_texture(TEXTURE_EMPTY, DynamicImage::ImageRgba8(empty_image));
render2d::register_render2d_assets(render_state);
viewport::register_viewport_pipeline(render_state);
}