blob: ba3ad9fd802ab05da27f4ce1a3278df2c8ef9ecf [file] [edit]
// Copyright 2026 the Vello Authors
// SPDX-License-Identifier: Apache-2.0 OR MIT
//! Persistent renderer resources shared across frames.
#[cfg(feature = "text")]
use crate::text::GlyphAtlasResources;
#[cfg(feature = "text")]
use glifo::GlyphPrepCache;
use vello_common::image_cache::ImageCache;
use vello_common::multi_atlas::AtlasConfig;
/// Persistent resources required by Vello GPU for rendering.
///
/// A set of resources must only be used with the renderer instance associated with it.
#[derive(Debug)]
pub struct Resources {
pub(crate) image_cache: ImageCache,
#[cfg(feature = "text")]
pub(crate) glyph_prep_cache: GlyphPrepCache,
#[cfg(feature = "text")]
pub(crate) glyph_resources: Option<GlyphAtlasResources>,
}
impl Resources {
pub(crate) fn new(image_atlas_config: AtlasConfig) -> Self {
Self {
image_cache: ImageCache::new_with_config(image_atlas_config),
#[cfg(feature = "text")]
glyph_prep_cache: GlyphPrepCache::default(),
// Will be initialized lazily.
#[cfg(feature = "text")]
glyph_resources: None,
}
}
}