Hash versioning is used to account for future, yet unknown/unpublished extensions while maintaining support for existing hashes.
For a given set of extensions, this generates the complementary set of extensions for a given backend.
WebGL backend: 'webgl1' or 'webgl2'.
Array of extensions to be complemented to all extensions available to the backend.
Decodes a hash into a WebGL backend and supported extensions.
Versioned extension hash.
Decodes a single base64 encoded character to a number of bitfield semantics.
Single base64 encoded character (string).
Generates a hash that encodes the contexts webgl backend and extension support. This is intended to be queried whenever support for a given context on a foreign client is due. The hash can be used as masquerade input.
WebGL backend: 'webgl1' or 'webgl2'.
Array of supported extensions to be encoded.
Encodes a number of bitfield semantics (of 6 bits) into a base64 character.
All known WebGL extensions (regardless of WebGL version). When new extensions become known, a new internal version has to be created, comprising all extensions again (some removed, some added w.r.t. previous versions).