Support EXT_meshopt_compression in the native glTF importer
Decode meshopt-compressed buffer views while parsing. The decoded data
is appended to the document as a synthetic buffer and the view is
rewritten to point at it, so accessor reading and validation work
unchanged. Fallback buffers marked by the extension are never loaded.
The decoders were already vendored in Quick3DUtils for mesh
optimization, so the three decoder source files are compiled into
Quick3DGltf directly and the module gains no new dependency.
The decoders write before they can detect a truncated source, so the
mode, stride, filter and element count are validated up front, with
size checks that cannot be defeated by overflow. The total decoded
size is also capped per document, and views decoding the same
compressed range share one decoded buffer, since the codecs compress
well over 100:1 and views may alias.
[ChangeLog][Asset Import] The native glTF importer now supports
EXT_meshopt_compression, so assets processed by gltfpack load without
recompression, in both balsam and RuntimeLoader.
Task-number: QTBUG-148576
Change-Id: I6b3b0043c151c92e4c25979839b917c8abf22457
Reviewed-by: Christian Strømme <christian.stromme@qt.io>