vulkano/vulkano-shader-derive
2017-06-20 20:22:55 +02:00
..
src Added path to panic messages 2017-06-06 13:42:46 +01:00
Cargo.toml Publish 0.4.3 2017-06-20 20:22:55 +02:00
README.md Updated README, fixed panic typo 2017-06-06 11:59:35 +01:00

Usage

This replaces vulkano-shaders.

Either provide glsl source code directly as an attribute:

#[macro_use]
extern crate vulkano_shader_derive;

mod fs {
    #[derive(VulkanoShader)]
    #[ty = "fragment"]
    #[src = "
#version 450

#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_450pack : enable

layout(location = 0) out vec4 f_color;

void main() {
    f_color = vec4(1.0, 0.0, 0.0, 1.0);
}"]
    struct Dummy;
}

let fs = fs::Shader::load(&device).expect("failed to create shader module");

Or by providing a path to a file containing the glsl code:

#[macro_use]
extern crate vulkano_shader_derive;

mod fs {
    #[derive(VulkanoShader)]
    #[ty = "fragment"]
    #[path = "shader/fragment.glsl"]
    struct Dummy;
}

let fs = fs::Shader::load(&device).expect("failed to create shader module");

Note that this file path is relative to the project's Cargo.toml, and not to the file the attribute is being used in.