Rasterized
Vector-render each page into a bitmap for its size and its settled zoom, 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 per page size and per settled zoom, 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 side of a page's whole bitmap, 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. A page that needs more pixels keeps the capped bitmap, and the part on screen draws over it in tiles at full resolution. On Android, stay at or below the GPU's texture limit, 4096 on many devices: a larger bitmap draws blank there.
after a zoom settles, re-render at the zoomed resolution instead of upscaling the base raster. The zoom rounds up to a quarter of an octave (1, 1.19, 1.41, 1.68, 2 and so on), so pinches that settle close together share one raster. Past maxBitmapLongSide, tiles of 1,024 pixels draw the part on screen, so deep zoom and very tall pages stay sharp. Only the pages in view render at the zoom. Costs one rasterization per page in view and zoom step, and one per tile.
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.