The renderer's device, or null before initialize / after dispose.
Whether the device is currently lost (§61).
Whether the renderer has been disposed (§83).
The renderer's geometry cache, or null when the device is down.
The renderer's particle-instance cache, or null when the device is
down — the live accessor the id pass uses to instance §36 systems
rather than rasterising the shared unit quad.
The renderer's render-target cache, or null when the device is down.
Drawing-buffer height in device pixels.
Drawing-buffer width in device pixels — what §48 rectangles resolve against.
The live window a
WebgpuRendereropens for its picking services — the narrow slice of renderer state an id pass genuinely needs, and nothing else.Every member is a live accessor (a method), not a snapshot, because the caches change identity under the renderer's feet: a §61 device loss drops them (the allocations belong to a device that no longer exists), so a service that captured
geometriesonce would draw with a cache the renderer has already abandoned. A service re-reads all of them per pass, and detects a lost device by the flag plus cache identity (wgpu-picking.ts).Sharing the renderer's caches — rather than the service owning twins — is deliberate: the id pass draws the same geometries the frame drew.