Rasterized
Vector-render each page once into a bitmap per size/zoom bucket, then draw that bitmap and GPU-transform it during gestures, so scrolling and zoom never redraw the page itself. Heavy gesturing is cheap and content-independent; the costs are one rasterization hitch per bucket and softness when zoomed past the raster resolution until the zoom settles and it re-rasterizes. Best for slow devices and dense pages.
Parameters
supersampling multiplier over the on-screen pixel size. 1 = rasterize exactly at display resolution (sharpest and cheapest, the default). >1 = oversample, e.g. for screenshots or print-ish export. <1 = undersample for cheap previews/thumbnails.
hard cap on the longest bitmap side, protecting memory on huge pages and deep zooms. The viewer's rasterizer raises its pixel ceiling to this value squared, so any side length allowed here also renders.
after a zoom settles, re-render the visible page at the zoomed resolution so deep zoom stays crisp instead of upscaling the base raster. Costs one extra rasterization per zoom settle.
scale the engine's stroke floors by the ratio of the raster to the screen, so a zero-width stroke stays one screen pixel and other sub-pixel strokes (ECG traces, fine table rules) keep their weight when the bitmap is downscaled.
Properties
Byte budget of the per-KiteDocViewState page-bitmap LRU, so scrolling back is a cache hit instead of a re-raster. 0 disables caching (every slot re-rasterizes on recomposition, the pre-cache behaviour).
Wraps each page paint pass; see KiteCanvasDecorator for cache and thread rules.