flutter3d_webgpu_web library

The half of this backend that needs a browser: the device, the pass encoder and the bindings under both.

Separate from flutter3d_webgpu.dart because dart:js_interop is not a library the Dart VM has, and a barrel that re-exports one importing it cannot be imported on the VM at all. The translation tables and the pipeline signature are worth asserting whether or not there is a GPU in the room — they are what catch a typo in "less-equal" in a second — so they stay in the barrel that loads everywhere, and this one carries what only a browser can run.

An application opens a device through WebGpuDevice.open — or lets an engine's DeviceRegistry do it — and never touches anything else here.

Classes

WebGpuDevice
WebGPU as a GraphicsDevice, and as the compiler its shader libraries reach a browser through.
WebGpuFramePresenter
Copies frame into device's canvas and shows it, styled by fit and quality through CSS on the element rather than through Flutter, since Flutter does not composite these pixels.
WgslModuleCompiler
Turns WGSL text into whatever the backend's module object is.

Exceptions / Errors

GpuDeviceException
A WebGPU error that reached Dart, which without gpuChecked none of them do.