Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
76 lines (54 loc) · 4.78 KB

File metadata and controls

76 lines (54 loc) · 4.78 KB
Copy raw file
Download raw file
Outline
Edit and raw actions

Internal modules (Contributor notes)

This document is intentionally short. It’s a map to the internal modules that implement ChartGPU behavior, plus a few contracts that are easy to break.

Where to start

Data pipeline (internal)

Interaction (internal)

Interaction code lives under src/interaction/.

Contracts worth keeping in mind:

  • Visibility: most helpers ignore series.visible === false.
  • Index mapping: if you filter series, preserve original indices in results.
  • Sorted-x (cartesian): several fast paths assume increasing x.
  • Units must match: if a helper expects range-space inputs, your scales must output the same space.

DOM overlays (internal)

Render coordinator (internal)

The coordinator computes layout/scales, prepares renderers, uploads data, and emits DOM overlays.

Renderer map (internal)

Renderer factories live under src/renderers/.

Feature Factory Shader(s)
Line createLineRenderer.ts line.wgsl
Area createAreaRenderer.ts area.wgsl
Bar createBarRenderer.ts bar.wgsl
Scatter createScatterRenderer.ts scatter.wgsl
Scatter density createScatterDensityRenderer.ts scatterDensityBinning.wgsl, scatterDensityColormap.wgsl
Pie createPieRenderer.ts pie.wgsl
Candlestick createCandlestickRenderer.ts candlestick.wgsl
Grid lines createGridRenderer.ts grid.wgsl
Axis baseline + ticks createAxisRenderer.ts grid.wgsl (shared)
Crosshair createCrosshairRenderer.ts crosshair.wgsl
Hover highlight createHighlightRenderer.ts highlight.wgsl

Notes:

  • Grid lines: driven by resolved options (ResolvedChartGPUOptions.gridLines) and wired in renderOverlays.ts.
  • WGSL imports: renderers may import WGSL via Vite ?raw (types in wgsl-raw.d.ts).

WebGPU contracts

  • queue.writeBuffer(...) offsets/sizes must be 4-byte aligned.
  • Uniform buffers are typically 16-byte aligned.
  • Pipeline target formats must match the render pass attachment format.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.