summaryrefslogtreecommitdiffstats
path: root/wgpu/src/geometry.rs
diff options
context:
space:
mode:
Diffstat (limited to 'wgpu/src/geometry.rs')
-rw-r--r--wgpu/src/geometry.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/wgpu/src/geometry.rs b/wgpu/src/geometry.rs
index b689d2a7..c36ff38e 100644
--- a/wgpu/src/geometry.rs
+++ b/wgpu/src/geometry.rs
@@ -38,8 +38,8 @@ pub enum Geometry {
#[derive(Clone)]
pub struct Cache {
- pub meshes: triangle::Cache,
- pub text: text::Cache,
+ pub meshes: Option<triangle::Cache>,
+ pub text: Option<text::Cache>,
}
impl Cached for Geometry {
@@ -53,8 +53,17 @@ impl Cached for Geometry {
match self {
Self::Live { meshes, text } => {
if let Some(mut previous) = previous {
- previous.meshes.update(meshes);
- previous.text.update(text);
+ if let Some(cache) = &mut previous.meshes {
+ cache.update(meshes);
+ } else {
+ previous.meshes = triangle::Cache::new(meshes);
+ }
+
+ if let Some(cache) = &mut previous.text {
+ cache.update(text);
+ } else {
+ previous.text = text::Cache::new(text);
+ }
previous
} else {