diff options
author | 2024-05-08 12:29:17 +0200 | |
---|---|---|
committer | 2024-05-08 12:29:17 +0200 | |
commit | 447f3a2d14ab1c4bc20e232df1aa2375623af2de (patch) | |
tree | fe98bc375b334a480c2370096bcec540d3abec02 /wgpu | |
parent | e07b42ac96b8d098a883c93afe828a439f479c7b (diff) | |
download | iced-447f3a2d14ab1c4bc20e232df1aa2375623af2de.tar.gz iced-447f3a2d14ab1c4bc20e232df1aa2375623af2de.tar.bz2 iced-447f3a2d14ab1c4bc20e232df1aa2375623af2de.zip |
Reuse `glyphon::Pipeline` state in `iced_wgpu`
Diffstat (limited to 'wgpu')
-rw-r--r-- | wgpu/src/text.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/wgpu/src/text.rs b/wgpu/src/text.rs index 7e683c77..68741461 100644 --- a/wgpu/src/text.rs +++ b/wgpu/src/text.rs @@ -115,6 +115,7 @@ impl Storage { queue: &wgpu::Queue, encoder: &mut wgpu::CommandEncoder, format: wgpu::TextureFormat, + pipeline: &glyphon::Pipeline, cache: &Cache, new_transformation: Transformation, bounds: Rectangle, @@ -131,7 +132,7 @@ impl Storage { Group { atlas: glyphon::TextAtlas::with_color_mode( - device, queue, format, COLOR_MODE, + device, queue, pipeline, format, COLOR_MODE, ), version: 0, should_trim: false, @@ -259,6 +260,7 @@ impl Storage { #[allow(missing_debug_implementations)] pub struct Pipeline { + state: glyphon::Pipeline, format: wgpu::TextureFormat, atlas: glyphon::TextAtlas, renderers: Vec<glyphon::TextRenderer>, @@ -272,12 +274,16 @@ impl Pipeline { queue: &wgpu::Queue, format: wgpu::TextureFormat, ) -> Self { + let state = glyphon::Pipeline::new(device); + let atlas = glyphon::TextAtlas::with_color_mode( + device, queue, &state, format, COLOR_MODE, + ); + Pipeline { + state, format, renderers: Vec::new(), - atlas: glyphon::TextAtlas::with_color_mode( - device, queue, format, COLOR_MODE, - ), + atlas, prepare_layer: 0, cache: BufferCache::new(), } @@ -343,6 +349,7 @@ impl Pipeline { queue, encoder, self.format, + &self.state, cache, layer_transformation * *transformation, layer_bounds * layer_transformation, |