1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
#![feature(arc_new_cyclic)] #![deny(clippy::all)] //! Riddle simple sprite-based renderer built on `wgpu`. //! //! The renderer can be used by itself as the only renderer in your application, //! or it can be constructed on top of existing WGPU devices to provide simple //! 2D rendering. //! //! # Riddle Example //! //! The **recommended** way to use this crate is through the main `riddle` crate. //! Riddle exposes this crate through `riddle::renderer`. The following example //! lets this crate take full ownership over creating the WGPU device. //! //! ```no_run //! use riddle::{common::Color, platform::*, renderer::*, *}; //! //! fn main() -> Result<(), RiddleError> { //! let rdl = RiddleLib::new()?; //! let window = WindowBuilder::new().build(rdl.context())?; //! let renderer = Renderer::new_from_window(&window)?; //! //! rdl.run(move |rdl| { //! match rdl.event() { //! Event::Platform(PlatformEvent::WindowClose(_)) => rdl.quit(), //! Event::ProcessFrame => { //! renderer.render(|render_ctx| { //! render_ctx.clear(Color::RED) //! }).unwrap(); //! }, //! _ => () //! } //! }) //! } //! ``` //! //! # Direct Usage //! //! To use this crate directly see [`WGPUDevice`] for how to use the renderer //! with custom WGPU devices. mod buffered_renderer; mod device; mod error; mod renderer; mod shader; mod sprite; mod sprite_atlas; mod sprite_render_target; mod swap_chain_target; mod target; mod texture; mod window_device; use riddle_common::*; use riddle_image as image; use riddle_math as math; use riddle_platform_winit as platform; type Result<R> = std::result::Result<R, WGPURendererError>; use buffered_renderer::*; pub use device::*; pub use error::*; pub use renderer::*; use shader::*; pub use sprite::*; pub use sprite_atlas::*; pub use sprite_render_target::*; use swap_chain_target::*; use target::*; use texture::*; pub use window_device::*; pub use riddle_renderer_common::*; use riddle_renderer_common::vertex::*; pub type DefaultRenderer = Renderer<WindowWGPUDevice>;