p5
Version:
[](https://www.npmjs.com/package/p5)
51 lines (42 loc) • 1.23 kB
JavaScript
const uniforms = `
struct Uniforms {
uModelViewMatrix: mat4x4<f32>,
uProjectionMatrix: mat4x4<f32>,
};
`;
const blitVertexShader = `
struct VertexInput {
aPosition: vec3<f32>,
aNormal: vec3<f32>,
aTexCoord: vec2<f32>,
aVertexColor: vec4<f32>,
};
struct VertexOutput {
Position: vec4<f32>,
vTexCoord: vec2<f32>,
};
${uniforms}
var<uniform> uniforms: Uniforms;
fn main(input: VertexInput) -> VertexOutput {
var output: VertexOutput;
output.vTexCoord = input.aTexCoord;
let positionVec4 = vec4<f32>(input.aPosition, 1.0);
output.Position = uniforms.uProjectionMatrix * uniforms.uModelViewMatrix * positionVec4;
return output;
}
`;
const blitFragmentShader = `
struct FragmentInput {
vTexCoord: vec2<f32>,
};
${uniforms}
var<uniform> uniforms: Uniforms;
var uSampler: texture_2d<f32>;
var uSampler_sampler: sampler;
fn main(input: FragmentInput) -> vec4<f32> {
return textureSample(uSampler, uSampler_sampler, input.vTexCoord);
}
`;
export { blitFragmentShader, blitVertexShader };