dispose method
Releases every persistent resource this device holds — the textures and geometry buffers handed out by createTexture, createTextureFromPixels, createCubeTextureFromPixels and uploadGeometry.
What "release" means is a property of the backend, not a promise this
method makes uniformly. WebGL2 objects are explicitly deletable — a
WebGLTexture or WebGLBuffer the driver is still holding onto is a real
leak, not a GC artefact — so that backend actually calls gl.deleteTexture
and friends here. flutter_gpu's Texture has no native dispose at all;
see the note at GpuRenderBackend.supportsCubeTextures for why letting one
go out of scope is the only release path that backend has, which makes its
implementation of this method a deliberate no-op rather than an omission.
The software rasteriser holds nothing but Dart lists, which the garbage
collector already reclaims, so its implementation is a no-op for a third,
unrelated reason.
Call once, when the device is being torn down. Nothing here promises safe reuse afterwards — a disposed device's handles are no longer valid on backends that actually freed them.
Implementation
@override
void dispose() => disposed = true;