42 lines
1.1 KiB
Rust
42 lines
1.1 KiB
Rust
|
|
pub mod shader;
|
|
pub mod handles;
|
|
pub mod canvas_text;
|
|
pub mod gpu_buffers;
|
|
pub mod compu_buffer;
|
|
pub mod compu_kernel;
|
|
|
|
use vulkano::pipeline::shader::{SpecializationConstants, SpecializationMapEntry};
|
|
|
|
#[repr(C)]
|
|
#[derive(Default, Debug, Clone)]
|
|
/// Specialization constants which can be passed to the shader. Pretty much placeholder ATM
|
|
struct ShaderSpecializationConstants {
|
|
first_constant: i32,
|
|
second_constant: u32,
|
|
third_constant: f32,
|
|
}
|
|
|
|
unsafe impl SpecializationConstants for ShaderSpecializationConstants {
|
|
fn descriptors() -> &'static [SpecializationMapEntry] {
|
|
static DESCRIPTORS: [SpecializationMapEntry; 3] = [
|
|
SpecializationMapEntry {
|
|
constant_id: 0,
|
|
offset: 0,
|
|
size: 4,
|
|
},
|
|
SpecializationMapEntry {
|
|
constant_id: 1,
|
|
offset: 4,
|
|
size: 4,
|
|
},
|
|
SpecializationMapEntry {
|
|
constant_id: 2,
|
|
offset: 8,
|
|
size: 4,
|
|
},
|
|
];
|
|
|
|
&DESCRIPTORS
|
|
}
|
|
} |