UNPKG

p5

Version:

[![npm version](https://badge.fury.io/js/p5.svg)](https://www.npmjs.com/package/p5)

51 lines (42 loc) 1.23 kB
const uniforms = ` struct Uniforms { uModelViewMatrix: mat4x4<f32>, uProjectionMatrix: mat4x4<f32>, }; `; const blitVertexShader = ` struct VertexInput { @location(0) aPosition: vec3<f32>, @location(1) aNormal: vec3<f32>, @location(2) aTexCoord: vec2<f32>, @location(3) aVertexColor: vec4<f32>, }; struct VertexOutput { @builtin(position) Position: vec4<f32>, @location(0) vTexCoord: vec2<f32>, }; ${uniforms} @group(0) @binding(0) var<uniform> uniforms: Uniforms; @vertex 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 { @location(0) vTexCoord: vec2<f32>, }; ${uniforms} @group(0) @binding(0) var<uniform> uniforms: Uniforms; @group(0) @binding(1) var uSampler: texture_2d<f32>; @group(0) @binding(2) var uSampler_sampler: sampler; @fragment fn main(input: FragmentInput) -> @location(0) vec4<f32> { return textureSample(uSampler, uSampler_sampler, input.vTexCoord); } `; export { blitFragmentShader, blitVertexShader };