39 lines
1.5 KiB
JavaScript
39 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
var LoaderParser = require('../../assets/loader/parsers/LoaderParser.js');
|
|
var createTexture = require('../../assets/loader/parsers/textures/utils/createTexture.js');
|
|
var checkExtension = require('../../assets/utils/checkExtension.js');
|
|
var Extensions = require('../../extensions/Extensions.js');
|
|
var CompressedSource = require('../../rendering/renderers/shared/texture/sources/CompressedSource.js');
|
|
var getSupportedTextureFormats = require('../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats.js');
|
|
var loadKTX2onWorker = require('./worker/loadKTX2onWorker.js');
|
|
|
|
"use strict";
|
|
const loadKTX2 = {
|
|
extension: {
|
|
type: Extensions.ExtensionType.LoadParser,
|
|
priority: LoaderParser.LoaderParserPriority.High,
|
|
name: "loadKTX2"
|
|
},
|
|
name: "loadKTX2",
|
|
test(url) {
|
|
return checkExtension.checkExtension(url, ".ktx2");
|
|
},
|
|
async load(url, _asset, loader) {
|
|
const supportedTextures = await getSupportedTextureFormats.getSupportedTextureFormats();
|
|
const textureOptions = await loadKTX2onWorker.loadKTX2onWorker(url, supportedTextures);
|
|
const compressedTextureSource = new CompressedSource.CompressedSource(textureOptions);
|
|
return createTexture.createTexture(compressedTextureSource, loader, url);
|
|
},
|
|
async unload(texture) {
|
|
if (Array.isArray(texture)) {
|
|
texture.forEach((t) => t.destroy(true));
|
|
} else {
|
|
texture.destroy(true);
|
|
}
|
|
}
|
|
};
|
|
|
|
exports.loadKTX2 = loadKTX2;
|
|
//# sourceMappingURL=loadKTX2.js.map
|