Skip to content

Commit

Permalink
Bumped to version 0.1.8
Browse files Browse the repository at this point in the history
  • Loading branch information
gwihlidal committed Dec 9, 2018
1 parent 474b7ab commit e743a5c
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 20 deletions.
16 changes: 16 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/target/debug/deps/mod-f4d2a2bf6729388d.exe",
"args": ["--nocapture"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/target/debug",
"environment": [],
"externalConsole": true
}
]
}
12 changes: 11 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
# Changes

## 0.1.8 (2018-12-09)

* Removed get_code_size/get_code_slice in favour of get_code (lifetime safety)
* Numerous optimizations (excessive copies)
* Fixed some FFI memory crashes

## 0.1.7 (2018-12-08)

* Rust 2018 Edition

## 0.1.6 (2018-11-21)

Correct struct by-ref passing for the change_* methods.
* Correct struct by-ref passing for the change_* methods.

## 0.1.5 (2018-11-21)

Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spirv-reflect"
version = "0.1.7"
version = "0.1.8"
authors = ["Graham Wihlidal <graham@wihlidal.ca>"]
description = "Reflection API in rust for SPIR-V shader byte code, intended for Vulkan applications."
homepage = "https://github.com/gwihlidal/spirv-reflect-rs"
Expand Down Expand Up @@ -40,7 +40,7 @@ bitflags = "1.0.4"
spirv_headers = "1.3.4"
num-traits = "0.2.6"
serde = "1.0"
serde_derive = "1.0.80"
serde_derive = "1.0.81"
serde_yaml = "0.8.8"

[build-dependencies]
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Add this to your `Cargo.toml`:

```toml
[dependencies]
spirv-reflect = "0.1.7"
spirv-reflect = "0.1.8"
```

and add this to your crate root:
Expand Down Expand Up @@ -67,6 +67,7 @@ at your option.

- [Hai Nguyen](https://github.com/chaoticbob) (Author of C/C++ library)
- [Cort Stratton](https://github.com/cdwfs) (Author of C/C++ library)
- [Daniel Collin](https://github.com/emoon) (Code Review)

## Contribution

Expand Down
16 changes: 10 additions & 6 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,11 @@ impl ShaderModule {
match self.module {
Some(ref module) => {
let code_size = unsafe { ffi::spvReflectGetCodeSize(module) as usize };
let code_slice = unsafe { std::slice::from_raw_parts(ffi::spvReflectGetCode(module), code_size / 4) };
let code_slice = unsafe {
std::slice::from_raw_parts(ffi::spvReflectGetCode(module), code_size / 4)
};
code_slice.to_owned()
},
}
None => Vec::new(),
}
}
Expand All @@ -77,10 +79,12 @@ impl ShaderModule {

pub fn get_source_language(&self) -> spirv_headers::SourceLanguage {
match self.module {
Some(ref module) => match spirv_headers::SourceLanguage::from_u32(module.source_language) {
Some(language) => language,
None => spirv_headers::SourceLanguage::Unknown,
},
Some(ref module) => {
match spirv_headers::SourceLanguage::from_u32(module.source_language) {
Some(language) => language,
None => spirv_headers::SourceLanguage::Unknown,
}
}
None => spirv_headers::SourceLanguage::Unknown,
}
}
Expand Down
30 changes: 20 additions & 10 deletions tests/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ mod tests {
let ps_data = include_bytes!("./ImGuiPs.spirv");
let module = ShaderModule::load_u8_data(ps_data).unwrap();
let descriptor_sets = module.enumerate_descriptor_sets(None).unwrap();

assert_eq!(descriptor_sets.len(), 1);
let descriptor_set = &descriptor_sets[0];
assert_eq!(descriptor_set.bindings.len(), 2);
Expand All @@ -26,35 +26,45 @@ mod tests {
let ps_data = include_bytes!("./ImGuiPs.spirv");
let module = ShaderModule::load_u8_data(ps_data).unwrap();
let descriptor_sets = module.enumerate_descriptor_sets(None).unwrap();

assert_eq!(descriptor_sets.len(), 1);
let descriptor_set = &descriptor_sets[0];

assert_eq!(descriptor_set.bindings.len(), 2);
let tex_descriptor = &descriptor_set.bindings[0];
assert_eq!(tex_descriptor.name, "tex");
assert_eq!(tex_descriptor.descriptor_type, types::ReflectDescriptorType::SampledImage);

assert_eq!(
tex_descriptor.descriptor_type,
types::ReflectDescriptorType::SampledImage
);

let smp_descriptor = &descriptor_set.bindings[1];
assert_eq!(smp_descriptor.name, "smp");
assert_eq!(smp_descriptor.descriptor_type, types::ReflectDescriptorType::Sampler);
assert_eq!(
smp_descriptor.descriptor_type,
types::ReflectDescriptorType::Sampler
);
}

#[test]
fn change_binding_numbers() {
let ps_data = include_bytes!("./ImGuiPs.spirv");
let mut module = ShaderModule::load_u8_data(ps_data).unwrap();

let descriptor_sets = module.enumerate_descriptor_sets(None).unwrap();

assert_eq!(descriptor_sets.len(), 1);
let descriptor_set = &descriptor_sets[0];
assert_eq!(descriptor_set.bindings.len(), 2);

let tex_descriptor = &descriptor_set.bindings[0];
module.change_descriptor_binding_numbers(&tex_descriptor, 30, Some(1)).unwrap();
module
.change_descriptor_binding_numbers(&tex_descriptor, 30, Some(1))
.unwrap();

let smp_descriptor = &descriptor_set.bindings[1];
module.change_descriptor_binding_numbers(&smp_descriptor, 4, Some(2)).unwrap();
module
.change_descriptor_binding_numbers(&smp_descriptor, 4, Some(2))
.unwrap();
}
}
}

0 comments on commit e743a5c

Please sign in to comment.