diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-07-09 14:46:02 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-07-09 14:46:02 -0700 |
| commit | daac5191461ed84d41920ea9c80addb8dea977c2 (patch) | |
| tree | ac5093a3ec741a52162335ac1a97f3259de9b6ef /src/graphics_permanent.rs | |
| parent | f4ca7d9464807fb8939390a41ffcdde0c21f32c4 (diff) | |
move all the window dressing stuff into its own file
Force-Push: yes Change-Id: Ib2db6c2af91698678c99969f575636abb4215b54
Diffstat (limited to 'src/graphics_permanent.rs')
| -rw-r--r-- | src/graphics_permanent.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/graphics_permanent.rs b/src/graphics_permanent.rs index a4ece9d..4df6069 100644 --- a/src/graphics_permanent.rs +++ b/src/graphics_permanent.rs @@ -4,6 +4,7 @@ use crate::error::*; use std::collections::{ BTreeMap, BTreeSet, HashSet }; use std::ffi::{ c_void, CStr }; use vulkanalia::{ Device, Entry, Instance, Version }; +use vulkanalia::bytecode::Bytecode; use vulkanalia::loader::{ LibloadingLoader, LIBRARY }; use vulkanalia::vk::{ self, HasBuilder, ApplicationInfo, InstanceCreateInfo, @@ -672,6 +673,23 @@ impl PermanentGraphicsState { Ok(Acceptable::Accepted((capabilities, formats, presentation_modes))) } } + + #[allow(unsafe_code)] + pub fn load_spirv_shader_module(device: &Device, binary: &[u8]) + -> Result<vk::ShaderModule> + { + let bytecode = Bytecode::new(binary)?; + + let module_info = vk::ShaderModuleCreateInfo::builder() + .code(bytecode.code()) + .code_size(bytecode.code_size()); + + let module = unsafe { + device.create_shader_module(&module_info, None) + }?; + + Ok(module) + } } |