(ax: number, bx: number, ay: number, by: number, baseline: number)
| 191 | }; |
| 192 | |
| 193 | const writeVsUniforms = (ax: number, bx: number, ay: number, by: number, baseline: number): void => { |
| 194 | // VSUniforms: |
| 195 | // - mat4x4<f32> (64 bytes) |
| 196 | // - baseline: f32 (4 bytes) |
| 197 | // - (implicit padding to next 16B boundary) (12 bytes) |
| 198 | // - _pad0: vec3<f32> (occupies 16 bytes in a uniform buffer) |
| 199 | // Total: 96 bytes. |
| 200 | // |
| 201 | // Layout details (uniform address space): |
| 202 | // - transform at byte offset 0 |
| 203 | // - baseline at byte offset 64 (f32[16]) |
| 204 | // - _pad0 at byte offset 80 (f32[20..22]) with trailing 4B padding |
| 205 | writeTransformMat4F32(vsUniformScratchF32, ax, bx, ay, by); |
| 206 | vsUniformScratchF32[16] = baseline; |
| 207 | vsUniformScratchF32[17] = 0; |
| 208 | vsUniformScratchF32[18] = 0; |
| 209 | vsUniformScratchF32[19] = 0; |
| 210 | vsUniformScratchF32[20] = 0; |
| 211 | vsUniformScratchF32[21] = 0; |
| 212 | vsUniformScratchF32[22] = 0; |
| 213 | vsUniformScratchF32[23] = 0; |
| 214 | writeUniformBuffer(device, vsUniformBuffer, vsUniformScratchBuffer); |
| 215 | }; |
| 216 | |
| 217 | const prepare: AreaRenderer['prepare'] = (seriesConfig, data, xScale, yScale, baseline) => { |
| 218 | assertNotDisposed(); |
no test coverage detected