SkiaSharp Web← Graphics Lab
REUSABLE COMPONENT · PERFORMANCE

One surface. Thousands of draws.

An actual <skia-canvas> instance, native Skia rendering, and bounded immutable-bitmap caching.
Change the renderer, batch redraws, and inspect resource lifetime without a framework.

CPU drawing / submission preparation
Cache hits / misses
Rendered frames / invalidations
Surface creations / cached bytes

Initializing the rendering engine…

Use the same API in your app

const S = await RegisterWebComponent();
const view = document.querySelector('skia-canvas');

sprite.SetImmutable();
view.addEventListener('paintsurface', ({ detail }) => {
  detail.Canvas.Clear(S.SKColors.Transparent);
  detail.Canvas.DrawBitmap(sprite, 40, 40);
});

await view.InvalidateSurface();
// Concurrent invalidations share a frame.
// Reuse the surface until its configuration changes.

Native memory diagnostics

Memory traces come from the compiled engine. Availability is detected rather than simulated. Cache byte counts are retained pixel storage, not a driver-memory measurement.

No trace captured.