Allow borrowed layouts for prepare
		
	Allows either `&[layout, overflow]` or `&[&layout, overflow]`
This commit is contained in:
		
					parent
					
						
							
								296c99f059
							
						
					
				
			
			
				commit
				
					
						fa03455457
					
				
			
		
					 1 changed files with 5 additions and 4 deletions
				
			
		| 
						 | 
					@ -3,7 +3,7 @@ use fontdue::{
 | 
				
			||||||
    layout::{GlyphRasterConfig, Layout},
 | 
					    layout::{GlyphRasterConfig, Layout},
 | 
				
			||||||
    Font,
 | 
					    Font,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
use std::{collections::HashSet, iter, mem::size_of, num::NonZeroU32, slice};
 | 
					use std::{borrow::Borrow, collections::HashSet, iter, mem::size_of, num::NonZeroU32, slice};
 | 
				
			||||||
use wgpu::{
 | 
					use wgpu::{
 | 
				
			||||||
    Buffer, BufferDescriptor, BufferUsages, Device, Extent3d, ImageCopyTexture, ImageDataLayout,
 | 
					    Buffer, BufferDescriptor, BufferUsages, Device, Extent3d, ImageCopyTexture, ImageDataLayout,
 | 
				
			||||||
    IndexFormat, Origin3d, Queue, RenderPass, TextureAspect, COPY_BUFFER_ALIGNMENT,
 | 
					    IndexFormat, Origin3d, Queue, RenderPass, TextureAspect, COPY_BUFFER_ALIGNMENT,
 | 
				
			||||||
| 
						 | 
					@ -59,14 +59,14 @@ impl TextRenderer {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// Prepares all of the provided layouts for rendering.
 | 
					    /// Prepares all of the provided layouts for rendering.
 | 
				
			||||||
    pub fn prepare(
 | 
					    pub fn prepare<C: HasColor>(
 | 
				
			||||||
        &mut self,
 | 
					        &mut self,
 | 
				
			||||||
        device: &Device,
 | 
					        device: &Device,
 | 
				
			||||||
        queue: &Queue,
 | 
					        queue: &Queue,
 | 
				
			||||||
        atlas: &mut TextAtlas,
 | 
					        atlas: &mut TextAtlas,
 | 
				
			||||||
        screen_resolution: Resolution,
 | 
					        screen_resolution: Resolution,
 | 
				
			||||||
        fonts: &[Font],
 | 
					        fonts: &[Font],
 | 
				
			||||||
        layouts: &[(Layout<impl HasColor>, TextOverflow)],
 | 
					        layouts: &[(impl Borrow<Layout<C>>, TextOverflow)],
 | 
				
			||||||
    ) -> Result<(), PrepareError> {
 | 
					    ) -> Result<(), PrepareError> {
 | 
				
			||||||
        self.screen_resolution = screen_resolution;
 | 
					        self.screen_resolution = screen_resolution;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,7 +93,7 @@ impl TextRenderer {
 | 
				
			||||||
        self.glyphs_in_use.clear();
 | 
					        self.glyphs_in_use.clear();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (layout, _) in layouts.iter() {
 | 
					        for (layout, _) in layouts.iter() {
 | 
				
			||||||
            for glyph in layout.glyphs() {
 | 
					            for glyph in layout.borrow().glyphs() {
 | 
				
			||||||
                self.glyphs_in_use.insert(glyph.key);
 | 
					                self.glyphs_in_use.insert(glyph.key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                let already_on_gpu = atlas.glyph_cache.contains_key(&glyph.key);
 | 
					                let already_on_gpu = atlas.glyph_cache.contains_key(&glyph.key);
 | 
				
			||||||
| 
						 | 
					@ -196,6 +196,7 @@ impl TextRenderer {
 | 
				
			||||||
        let mut glyphs_added = 0;
 | 
					        let mut glyphs_added = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (layout, overflow) in layouts.iter() {
 | 
					        for (layout, overflow) in layouts.iter() {
 | 
				
			||||||
 | 
					            let layout = layout.borrow();
 | 
				
			||||||
            let settings = layout.settings();
 | 
					            let settings = layout.settings();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Note: subpixel positioning is not currently handled, so we always truncate down to
 | 
					            // Note: subpixel positioning is not currently handled, so we always truncate down to
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue