Example Usage
use rspirv::binary::Assemble;
use rspirv::binary::Disassemble;
fn main() {
// Building
let mut b = rspirv::dr::Builder::new();
b.set_version(1, 0);
b.capability(spirv::Capability::Shader);
b.memory_model(spirv::AddressingModel::Logical, spirv::MemoryModel::GLSL450);
let void = b.type_void();
let voidf = b.type_function(void, vec![]);
let fun = b
.begin_function(
void,
None,
spirv::FunctionControl::DONT_INLINE | spirv::FunctionControl::CONST,
voidf,
)
.unwrap();
b.begin_basic_block(None).unwrap();
b.ret().unwrap();
b.end_function().unwrap();
b.entry_point(spirv::ExecutionModel::Vertex, fun, "foo", vec![]);
let module = b.module();
// Assembling
let code = module.assemble();
assert!(code.len() > 20); // Module header contains 5 words
assert_eq!(spirv::MAGIC_NUMBER, code[0]);
// Parsing
let mut loader = rspirv::dr::Loader::new();
rspirv::binary::parse_words(&code, &mut loader).unwrap();
let module = loader.module();
// Disassembling
assert_eq!(
module.disassemble(),
"; SPIR-V\n\
; Version: 1.0\n
See also
.NET-Obfuscator
Open Source
Lists of .NET Obfuscator (Free, Freemium, Paid and Open Source )…
wxapkg
Free
跨平台微信小程序反编译 GUI 工具,.wxapkg 文件扫描 + 解密 + 解包工具…
AAIdrive
Open Source
Implementations of some Android Auto features as unofficial IDrive apps…
pokeheartgold
Free
Decompilation of Pokemon HeartGold/SoulSilver…
Radare2
Open Source
Kali
Portable reversing framework that includes a hex editor, disassembler, debugger, scripting engine (r…
omni
Open Source
A modern zero-allocation C++23 library for working with low-level Windows within user-space. Iterati…