Example
Config
version = 330
profile = "core"
[layout]
a_pos = "vec3"
a_uv = "vec2"
[uniform]
transform = "mat4"
texture_0 = "sampler2D"
[fragment]
output = { result = "vec4" }
source = '''
result = texture(texture_0, uv);
'''
[vertex]
output = { uv = "vec2" }
source = '''
gl_Position = transform * vec4(a_pos, 1.0);
uv = a_uv;
'''
Compiler
let toml = fs::read_to_string("example/textured.toml").unwrap();
let (vertex,fragment, config) = compile_toml(toml.as_str()).unwrap();
println!("Vertex {}",vertex);
println!("Fragment {}",fragment);
Output
Vertex
#version 330 core
layout (location = 0) in vec3 a_pos;
layout (location = 1) in vec2 a_uv;
uniform mat4 transform;
uniform sampler2D texture_0;
out vec2 uv;
void main() {
gl_Position = transform * vec4(a_pos, 1.0);
uv = a_uv;
}
Fragment
#version 330 core
uniform mat4 transform;
uniform sampler2D texture_0;
in vec2 uv;
out vec4 result;
void main() {
result = texture(texture_0, uv);
}