1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
struct CommonUniforms {
resolution: vec2f, // Screen dimensions
aspect_ratio: f32, // Width/height ratio
time: f32, // Physical time in seconds (unaffected by tempo)
beat_time: f32, // Musical time in beats (absolute, tempo-scaled)
beat_phase: f32, // Fractional beat (0.0-1.0 within current beat)
audio_intensity: f32, // Audio peak for beat sync
_pad: f32, // Padding
};
struct GlobalUniforms {
view_proj: mat4x4f,
inv_view_proj: mat4x4f,
camera_pos_time: vec4f,
params: vec4f,
resolution: vec2f,
};
struct ObjectData {
model: mat4x4f,
inv_model: mat4x4f,
color: vec4f,
params: vec4f,
};
struct ObjectsBuffer {
objects: array<ObjectData>,
};
|