MCPcopy Index your code
hub / github.com/ChartGPU/ChartGPU / prepare

Function prepare

src/renderers/createAreaRenderer.ts:217–261  ·  view source on GitHub ↗
(seriesConfig, data, xScale, yScale, baseline)

Source from the content-addressed store, hash-verified

215 };
216
217 const prepare: AreaRenderer['prepare'] = (seriesConfig, data, xScale, yScale, baseline) => {
218 assertNotDisposed();
219
220 const vertices = createAreaVertices(data);
221 const requiredSize = vertices.byteLength;
222 const bufferSize = Math.max(4, requiredSize);
223
224 if (!vertexBuffer || vertexBuffer.size < bufferSize) {
225 if (vertexBuffer) {
226 try {
227 vertexBuffer.destroy();
228 } catch {
229 // best-effort
230 }
231 }
232 vertexBuffer = device.createBuffer({
233 label: 'areaRenderer/vertexBuffer',
234 size: bufferSize,
235 usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
236 });
237 }
238
239 if (vertices.byteLength > 0) {
240 device.queue.writeBuffer(vertexBuffer, 0, vertices.buffer, 0, vertices.byteLength);
241 }
242 vertexCount = vertices.length / 2;
243
244 const { xMin, xMax, yMin, yMax } = computeDataBounds(data);
245 const { a: ax, b: bx } = computeClipAffineFromScale(xScale, xMin, xMax);
246 const { a: ay, b: by } = computeClipAffineFromScale(yScale, yMin, yMax);
247
248 const baselineValue =
249 Number.isFinite(baseline ?? Number.NaN) ? (baseline as number) : Number.isFinite(yMin) ? yMin : 0;
250
251 writeVsUniforms(ax, bx, ay, by, baselineValue);
252
253 // Use the resolved fill color from areaStyle.color (not seriesConfig.color).
254 const [r, g, b, a] = parseSeriesColorToRgba01(seriesConfig.areaStyle.color);
255 const opacity = clamp01(seriesConfig.areaStyle.opacity);
256 fsUniformScratchF32[0] = r;
257 fsUniformScratchF32[1] = g;
258 fsUniformScratchF32[2] = b;
259 fsUniformScratchF32[3] = clamp01(a * opacity);
260 writeUniformBuffer(device, fsUniformBuffer, fsUniformScratchF32);
261 };
262
263 const render: AreaRenderer['render'] = (passEncoder) => {
264 assertNotDisposed();

Callers

nothing calls this directly

Calls 9

writeUniformBufferFunction · 0.90
createAreaVerticesFunction · 0.85
assertNotDisposedFunction · 0.70
computeDataBoundsFunction · 0.70
writeVsUniformsFunction · 0.70
parseSeriesColorToRgba01Function · 0.70
clamp01Function · 0.70
destroyMethod · 0.45

Tested by

no test coverage detected