summaryrefslogblamecommitdiffstats
path: root/wgpu/src/lib.rs
blob: 8be12602d0ccdf631e718d06d955227e56536017 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13

                                            
                                                                                                                                                           









                                                                             
                                                                              

                                                            
   
                                           
                                                                    


                                                       
       
                                                                                                                           
  

                                  
                   







                                   
                            
                                                              

                                      
              
                 
               
               
 
            
           
         
         
             
 
                                 
                        

                                                                               
  

                               
                           

             
                         

                             
                           
 

                   
                                  
 
                                               
          



                                               
                                             

                                               
//! A [`wgpu`] renderer for [`iced_native`].
//!
//! ![The native path of the Iced ecosystem](https://github.com/iced-rs/iced/blob/0525d76ff94e828b7b21634fa94a747022001c83/docs/graphs/native.png?raw=true)
//!
//! For now, it is the default renderer of [Iced] in native platforms.
//!
//! [`wgpu`] supports most modern graphics backends: Vulkan, Metal, DX11, and
//! DX12 (OpenGL and WebGL are still WIP). Additionally, it will support the
//! incoming [WebGPU API].
//!
//! Currently, `iced_wgpu` supports the following primitives:
//! - Text, which is rendered using [`wgpu_glyph`]. No shaping at all.
//! - Quads or rectangles, with rounded borders and a solid background color.
//! - Clip areas, useful to implement scrollables or hide overflowing content.
//! - Images and SVG, loaded from memory or the file system.
//! - Meshes of triangles, useful to draw geometry freely.
//!
//! [Iced]: https://github.com/iced-rs/iced
//! [`iced_native`]: https://github.com/iced-rs/iced/tree/0.8/native
//! [`wgpu`]: https://github.com/gfx-rs/wgpu-rs
//! [WebGPU API]: https://gpuweb.github.io/gpuweb/
//! [`wgpu_glyph`]: https://github.com/hecrj/wgpu_glyph
#![doc(
    html_logo_url = "https://raw.githubusercontent.com/iced-rs/iced/9ab6923e943f784985e9ef9ca28b10278297225d/docs/logo.svg"
)]
#![deny(
    missing_debug_implementations,
    //missing_docs,
    unsafe_code,
    unused_results,
    clippy::extra_unused_lifetimes,
    clippy::from_over_into,
    clippy::needless_borrow,
    clippy::new_without_default,
    clippy::useless_conversion
)]
#![forbid(rust_2018_idioms)]
#![allow(clippy::inherent_to_string, clippy::type_complexity)]
#![cfg_attr(docsrs, feature(doc_cfg))]

pub mod layer;
pub mod settings;
pub mod widget;
pub mod window;

mod backend;
mod buffer;
mod quad;
mod text;
mod triangle;

pub use iced_graphics::primitive;
pub use iced_graphics::{
    Antialiasing, Color, Error, Font, Gradient, Point, Rectangle, Size, Vector,
    Viewport,
};
pub use iced_native::alignment;

pub use iced_native::Theme;
pub use wgpu;

pub use backend::Backend;
pub use layer::Layer;
pub use primitive::Primitive;
pub use settings::Settings;

use buffer::Buffer;

use iced_graphics::Transformation;

#[cfg(any(feature = "image", feature = "svg"))]
mod image;

/// A [`wgpu`] graphics renderer for [`iced`].
///
/// [`wgpu`]: https://github.com/gfx-rs/wgpu-rs
/// [`iced`]: https://github.com/iced-rs/iced
pub type Renderer<Theme = iced_native::Theme> =
    iced_graphics::Renderer<Backend, Theme>;