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…
Reference in a new issue