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.