Spaces:
Running
Running
// wgpu-pipeline.js | |
export async function createPipeline(device, presentationFormat, vertexSize, shaderCode) { | |
const module = device.createShaderModule({ | |
label: 'textured quad shaders', | |
code: shaderCode, | |
}); | |
const pipeline = device.createRenderPipeline({ | |
label: 'textured quad pipeline', | |
layout: 'auto', | |
vertex: { | |
module, | |
entryPoint: 'vs', | |
buffers: [ | |
{ | |
arrayStride: vertexSize, | |
attributes: [ | |
{ shaderLocation: 0, offset: 0, format: 'float32x2' }, // pos | |
{ shaderLocation: 1, offset: 8, format: 'float32x2' }, // tex | |
{ shaderLocation: 2, offset: 16, format: 'float32x4' } // col | |
], | |
}, | |
], | |
}, | |
fragment: { | |
module, | |
entryPoint: 'fs', | |
targets: [{ | |
format: presentationFormat, | |
blend: { | |
color: { srcFactor: 'one', dstFactor: 'one-minus-src-alpha', operation: 'add' }, | |
alpha: { srcFactor: 'one', dstFactor: 'one-minus-src-alpha', operation: 'add' } | |
}, | |
}], | |
}, | |
}); | |
return pipeline; | |
} | |