kmcallister / glassful

Rust-like syntax for OpenGL Shading Language
Apache License 2.0
171 stars 14 forks source link

Syntax error, unexpected IF #22

Open gsingh93 opened 9 years ago

gsingh93 commented 9 years ago

Am I doing something wrong here:

let fragment_shader_src = glassful! {
    #![version="140"]

    #[varying] static v_coord: vec3 = UNINIT;

    fn main() {
        if (abs(v_coord.z) == 0.25) {
            gl_FragColor = vec4(0., 1., 0., 1.);
        } else if (abs(v_coord.x) == 0.25) {
            gl_FragColor = vec4(0., 0., 1., 1.);
        } else if (abs(v_coord.y) == 0.25) {
            gl_FragColor = vec4(1., 0., 0., 1.);
        }
    }
};

I get:

thread '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: CompilationError("0:5(8): error: syntax error, unexpected IF\n")', ../src/libcore/result.rs:731```
gsingh93 commented 9 years ago

For reference, here's the original shader:

#version 140

in vec3 v_coord;
out vec4 color;

void main() {
    if (abs(v_coord.z) == 0.25) {
        color = vec4(0., 1., 0., 1.);
    } else if (abs(v_coord.x) == 0.25) {
        color = vec4(0., 0., 1., 1.);
    } else if (abs(v_coord.y) == 0.25) {
        color = vec4(1., 0., 0., 1.);
    }
}
gsingh93 commented 9 years ago

To be clear, this happens at runtime when creating a Program and unwrapping the result.