Added constants

master
Mark 2024-01-04 19:01:22 -08:00
parent a4ca62e1dc
commit 83857d4d0d
Signed by: Mark
GPG Key ID: C6D63995FE72FD80
4 changed files with 32 additions and 13 deletions

View File

@ -55,3 +55,9 @@ pub const PARTICLE_SPRITE_INSTANCE_LIMIT: u64 = 1000;
/// Must be small enough to fit in an i32
pub const STARFIELD_SPRITE_INSTANCE_LIMIT: u64 = STARFIELD_COUNT * 24;
/// The maximum number of sprites we can define
pub const SPRITE_LIMIT: u32 = 1024;
/// The maximum number of images we can load
pub const IMAGE_LIMIT: u32 = 1024;

View File

@ -1,4 +1,5 @@
use bytemuck::{Pod, Zeroable};
use galactica_constants::IMAGE_LIMIT;
use std::mem;
use wgpu;
@ -14,14 +15,14 @@ pub struct ImageLocation {
#[derive(Debug, Copy, Clone)]
pub struct ImageLocationArray {
pub data: [ImageLocation; 108],
pub data: [ImageLocation; IMAGE_LIMIT as usize],
}
unsafe impl Pod for ImageLocationArray {}
unsafe impl Zeroable for ImageLocationArray {
fn zeroed() -> Self {
Self {
data: [ImageLocation::zeroed(); 108],
data: [ImageLocation::zeroed(); IMAGE_LIMIT as usize],
}
}
}

View File

@ -1,3 +1,4 @@
use galactica_constants::{IMAGE_LIMIT, SPRITE_LIMIT};
use wgpu;
use super::{AtlasContent, DataContent, SpriteContent};
@ -30,7 +31,7 @@ impl GlobalUniform {
starfield_size_limits: vec2<f32>,
current_time: vec2<f32>,
};
"#,
"#,
);
out.push_str("\n");
@ -44,11 +45,16 @@ impl GlobalUniform {
width: f32,
height: f32,
};
struct AtlasUniform {
data: array<ImageLocation, 108>,
};
"#,
"#,
);
out.push_str(&format!(
r#"
struct AtlasUniform {{
data: array<ImageLocation, {}>,
}};
"#,
IMAGE_LIMIT,
));
out.push_str("\n");
// TODO: document
@ -72,11 +78,16 @@ impl GlobalUniform {
padding_b: f32,
padding_c: f32,
};
struct SpriteUniform {
data: array<SpriteData, 108>,
};
"#,
"#,
);
out.push_str(&format!(
r#"
struct SpriteUniform {{
data: array<SpriteData, {}>,
}};
"#,
SPRITE_LIMIT,
));
out.push_str("\n");
return out;

View File

@ -1,4 +1,5 @@
use bytemuck::{Pod, Zeroable};
use galactica_constants::SPRITE_LIMIT;
use std::mem;
use wgpu;
@ -19,14 +20,14 @@ pub struct SpriteData {
#[derive(Debug, Copy, Clone)]
pub struct SpriteDataArray {
pub data: [SpriteData; 108],
pub data: [SpriteData; SPRITE_LIMIT as usize],
}
unsafe impl Pod for SpriteDataArray {}
unsafe impl Zeroable for SpriteDataArray {
fn zeroed() -> Self {
Self {
data: [SpriteData::zeroed(); 108],
data: [SpriteData::zeroed(); SPRITE_LIMIT as usize],
}
}
}