plasma-arc / wgpu-pipeline.js
p3nGu1nZz's picture
🛠️ Refactor pipeline initialization and state handling
a279d3a
export async function InitializePipeline(state) {
state.webgpu.pipeline = state.webgpu.device.createRenderPipeline({
label: 'textured quad pipeline',
layout: 'auto',
vertex: {
module: state.webgpu.device.createShaderModule({
label: 'textured quad shaders',
code: state.webgpu.shaderCode,
}),
entryPoint: 'vs',
buffers: [
{
arrayStride: state.webgpu.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: state.webgpu.device.createShaderModule({
label: 'textured quad shaders',
code: state.webgpu.shaderCode,
}),
entryPoint: 'fs',
targets: [{
format: state.webgpu.presentationFormat,
blend: {
color: { srcFactor: 'one', dstFactor: 'one-minus-src-alpha', operation: 'add' },
alpha: { srcFactor: 'one', dstFactor: 'one-minus-src-alpha', operation: 'add' }
},
}],
},
});
}