rs2glsl 0.3.4

Conversion from Rust code to GLSL
Documentation
#![allow(unused)]

use rs2glsl::prelude::*;

#[glsl]
fn lerp(t: f32, a: f32, b: f32) -> f32 {
    return (1.0 - t) * a + t * b;
}

#[glsl]
fn void_fn() {}

#[glsl]
fn fn_call() {
    lerp(0.0, 0.0, 0.0);
}

#[glsl]
fn while_loop() {
    let mut v: vec2 = vec2(0.0, 1.0);
    let mut x: u32 = 10;
    while x > 0 {
        x -= 1;
    }
}

#[glsl]
const SIZE: u32 = 10;

#[glsl]
fn kitchen_sink() -> u32 {
    let mut x: f32 = 1.0;
    x += 1.0;
    x = x * 10.0;
    while 0 > 1 {
    }
    loop {}
    while x < 2.0 * x {
        x = x - 1.0;
        break;
        continue;
        return 0;
    }
    if true {
    } else {
    }
    return SIZE;
}

#[glsl]
fn void_fn_explicit_return() {
    return;
}

#[glsl]
fn mul(a: f32, b: f32) -> f32 {
    return a * b;
}

#[glsl]
fn dot(u: vec2, v: vec2) -> f32 {
    let mut sum: f32 = mul(u.x, v.x);
    sum += mul(u.y, v.y);
    return sum;
}

#[glsl]
fn dummy() {}

fn main() {
    println!("{}", GLSL_KITCHEN_SINK.with_dependencies());
}