wgslPolyfill top-level property
Implementation
var wgslPolyfill = {
"lessThanEqual": new CodeNode("""
fn lessThanEqual( a : vec3<f32>, b : vec3<f32> ) -> vec3<bool> {
return vec3<bool>( a.x <= b.x, a.y <= b.y, a.z <= b.z );
}
"""),
"mod": new CodeNode("""
fn mod( x : f32, y : f32 ) -> f32 {
return x - y * floor( x / y );
}
"""),
"repeatWrapping": new CodeNode("""
fn repeatWrapping( uv : vec2<f32>, dimension : vec2<i32> ) -> vec2<i32> {
var uvScaled = vec2<i32>( uv * vec2<f32>( dimension ) );
return ( ( uvScaled % dimension ) + dimension ) % dimension;
}
"""),
"inversesqrt": new CodeNode("""
fn inversesqrt( x : f32 ) -> f32 {
return 1.0 / sqrt( x );
}
""")
};