diff options
| author | 2021-07-22 18:39:37 +0700 | |
|---|---|---|
| committer | 2021-07-22 18:39:37 +0700 | |
| commit | a2b1ba522a8b90a2e539fff5936c798efc3f3807 (patch) | |
| tree | 13bbbfb3ee9255e2e4ec9903ae893fbeda6b087f /wgpu/src | |
| parent | 82488de3ab2be3ad0b556ae5ccb754a989132dca (diff) | |
| parent | 357a8a95c9820651110fe4d80d8d33a2678827c0 (diff) | |
| download | iced-a2b1ba522a8b90a2e539fff5936c798efc3f3807.tar.gz iced-a2b1ba522a8b90a2e539fff5936c798efc3f3807.tar.bz2 iced-a2b1ba522a8b90a2e539fff5936c798efc3f3807.zip | |
Merge pull request #914 from yusdacra/feat/expose_draw_cache_multithread
feat: expose draw_cache_multithread as a feature
Diffstat (limited to '')
| -rw-r--r-- | wgpu/src/backend.rs | 9 | ||||
| -rw-r--r-- | wgpu/src/settings.rs | 9 | ||||
| -rw-r--r-- | wgpu/src/text.rs | 3 | 
3 files changed, 18 insertions, 3 deletions
| diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index 534c6cb7..783079f3 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -31,8 +31,13 @@ pub struct Backend {  impl Backend {      /// Creates a new [`Backend`].      pub fn new(device: &wgpu::Device, settings: Settings) -> Self { -        let text_pipeline = -            text::Pipeline::new(device, settings.format, settings.default_font); +        let text_pipeline = text::Pipeline::new( +            device, +            settings.format, +            settings.default_font, +            settings.text_multithreading, +        ); +          let quad_pipeline = quad::Pipeline::new(device, settings.format);          let triangle_pipeline = triangle::Pipeline::new(              device, diff --git a/wgpu/src/settings.rs b/wgpu/src/settings.rs index 6c97d895..9a7eed34 100644 --- a/wgpu/src/settings.rs +++ b/wgpu/src/settings.rs @@ -29,7 +29,15 @@ pub struct Settings {      /// By default, it will be set to 20.      pub default_text_size: u16, +    /// If enabled, spread text workload in multiple threads when multiple cores +    /// are available. +    /// +    /// By default, it is disabled. +    pub text_multithreading: bool, +      /// The antialiasing strategy that will be used for triangle primitives. +    /// +    /// By default, it is `None`.      pub antialiasing: Option<Antialiasing>,  } @@ -65,6 +73,7 @@ impl Default for Settings {              internal_backend: wgpu::BackendBit::PRIMARY,              default_font: None,              default_text_size: 20, +            text_multithreading: false,              antialiasing: None,          }      } diff --git a/wgpu/src/text.rs b/wgpu/src/text.rs index 4d92d9e9..2b5b94c9 100644 --- a/wgpu/src/text.rs +++ b/wgpu/src/text.rs @@ -15,6 +15,7 @@ impl Pipeline {          device: &wgpu::Device,          format: wgpu::TextureFormat,          default_font: Option<&[u8]>, +        multithreading: bool,      ) -> Self {          let default_font = default_font.map(|slice| slice.to_vec()); @@ -46,7 +47,7 @@ impl Pipeline {          let draw_brush =              wgpu_glyph::GlyphBrushBuilder::using_font(font.clone())                  .initial_cache_size((2048, 2048)) -                .draw_cache_multithread(false) // TODO: Expose as a configuration flag +                .draw_cache_multithread(multithreading)                  .build(device, format);          let measure_brush = | 
