All Projects → grovesNL → spirv_cross

grovesNL / spirv_cross

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
Safe Rust wrapper around SPIRV-Cross

Programming Languages

rust
11053 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to spirv cross

Crossshader
⚔️ A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.
Stars: ✭ 113 (+50.67%)
Mutual labels:  metal, vulkan, directx
bgfx-python
Python 3.7+ wrapper for the BGFX library. 🐍
Stars: ✭ 99 (+32%)
Mutual labels:  metal, vulkan, directx
CrossWindow-Demos
🥪 Examples of how to use CrossWindow for things like rendering graphics, listening to events, etc.
Stars: ✭ 48 (-36%)
Mutual labels:  metal, vulkan, directx
virtualGizmo3D
Virtual GIZMO - 3D object manipulator / orientator, via mouse, with pan and dolly/zoom features
Stars: ✭ 36 (-52%)
Mutual labels:  metal, vulkan, directx
Tvm
Open deep learning compiler stack for cpu, gpu and specialized accelerators
Stars: ✭ 7,494 (+9892%)
Mutual labels:  metal, vulkan, spirv
wgpu-mc
Rust-based replacement for the default Minecraft renderer
Stars: ✭ 254 (+238.67%)
Mutual labels:  metal, vulkan, directx
The Forge
The Forge Cross-Platform Rendering Framework PC Windows, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2
Stars: ✭ 2,710 (+3513.33%)
Mutual labels:  metal, vulkan, directx
LowLevelAPIDemo
Evergine Low-Level API samples.
Stars: ✭ 12 (-84%)
Mutual labels:  metal, vulkan, directx
Pmtech
Lightweight, multi-platform, data-oriented game engine.
Stars: ✭ 478 (+537.33%)
Mutual labels:  metal, vulkan, spir-v
Fiber2d
Cross-platform 2D Game Engine in pure Swift
Stars: ✭ 415 (+453.33%)
Mutual labels:  metal, vulkan, directx
bgfx-header-extension-library
Header-only effects and helper library for Bgfx to help you hit the ground running. Includes a bunch of post processing filters to complete common graphical tasks
Stars: ✭ 35 (-53.33%)
Mutual labels:  metal, vulkan, directx
Shaderconductor
ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
Stars: ✭ 1,146 (+1428%)
Mutual labels:  metal, vulkan, spir-v
RavEngine
A fast, easy to use C++20 3D game library for modern computers
Stars: ✭ 122 (+62.67%)
Mutual labels:  metal, vulkan, directx
Floor
A C++ Compute/Graphics Library and Toolchain enabling same-source CUDA/Host/Metal/OpenCL/Vulkan C++ programming and execution.
Stars: ✭ 166 (+121.33%)
Mutual labels:  metal, vulkan, spir-v
CrossWindow-Graphics
A header only library to simplify creating 🌋 Vulkan / ⚪ OpenGL / 🌐 WebGL / ❎DirectX / 🤖 Metal data structures with CrossWindow.
Stars: ✭ 48 (-36%)
Mutual labels:  metal, vulkan, directx
Llgl
Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal
Stars: ✭ 1,011 (+1248%)
Mutual labels:  metal, vulkan, directx
Bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Stars: ✭ 10,252 (+13569.33%)
Mutual labels:  metal, vulkan, directx
Krafix
GLSL cross-compiler based on glslang and SPIRV-Cross
Stars: ✭ 124 (+65.33%)
Mutual labels:  metal, spir-v
Veldrid
A low-level, portable graphics library for .NET.
Stars: ✭ 1,784 (+2278.67%)
Mutual labels:  metal, vulkan
Filament
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
Stars: ✭ 13,215 (+17520%)
Mutual labels:  metal, vulkan

spirv_cross

Safe wrapper around SPIR-V Cross

Crate Travis Build Status Appveyor Build Status

Example

spirv_cross provides a safe wrapper around SPIRV-Cross for use with Rust. For example, here is a simple function to parse a SPIR-V module and compile it to HLSL and MSL:

extern crate spirv_cross;
use spirv_cross::{spirv, hlsl, msl, ErrorCode};

fn example(module: spirv::Module) -> Result<(), ErrorCode> {
    // Compile to HLSL
    let ast = spirv::Ast::<hlsl::Target>::parse(&module)?;
    println!("{}", ast.compile()?);

    // Compile to MSL
    let ast = spirv::Ast::<msl::Target>::parse(&module)?;
    println!("{}", ast.compile()?);

    Ok(())
}

License

This project is licensed under either of Apache License, Version 2.0 or MIT license, at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache 2.0 license, shall be dual licensed as above, without any additional terms or conditions.

See CONTRIBUTING.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].