createTexture method
A brand-new texture matching descriptor, with the single
TextureHandle that will ever stand for it, contents undefined until
written.
One creator since 1.0. A RenderTargetDescriptor — the 2D target
the pool lends out, sampled, drawn into and copied either way — is what
every allocator makes. Any other TextureDescriptor is the general form
a GraphicsDevice makes beside it (it was createTextureWithDescriptor):
a 2D array, a 3D texture, a cube or a cube array, with
TextureDescriptor.mipLevelCount levels and the usages it names, gated
by the feature the shape needs — textureArrays, texture3D,
cubeTextures, cubeArrayTextures, and textureWrites for the general
form itself; a TextureUsage.storage texture needs storageTextures
and a format whose support says storage. A device without one throws
UnsupportedCapabilityException, and a size past its limits an ArgumentError.
Implementation
@override
TextureHandle createTexture(TextureDescriptor descriptor) {
descriptor.checkFeatures(features, backend: backendName);
_checkFormat(
descriptor.format,
target: descriptor.usage.contains(TextureUsage.renderTarget),
);
return inner.createTexture(descriptor);
}