sdfsdfs
This commit is contained in:
81
node_modules/pixi.js/lib/assets/loader/parsers/textures/loadTextures.js
generated
vendored
Normal file
81
node_modules/pixi.js/lib/assets/loader/parsers/textures/loadTextures.js
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
'use strict';
|
||||
|
||||
var adapter = require('../../../../environment/adapter.js');
|
||||
var Extensions = require('../../../../extensions/Extensions.js');
|
||||
var ImageSource = require('../../../../rendering/renderers/shared/texture/sources/ImageSource.js');
|
||||
var getResolutionOfUrl = require('../../../../utils/network/getResolutionOfUrl.js');
|
||||
var checkDataUrl = require('../../../utils/checkDataUrl.js');
|
||||
var checkExtension = require('../../../utils/checkExtension.js');
|
||||
var WorkerManager = require('../../workers/WorkerManager.js');
|
||||
var LoaderParser = require('../LoaderParser.js');
|
||||
var createTexture = require('./utils/createTexture.js');
|
||||
|
||||
"use strict";
|
||||
const validImageExtensions = [".jpeg", ".jpg", ".png", ".webp", ".avif"];
|
||||
const validImageMIMEs = [
|
||||
"image/jpeg",
|
||||
"image/png",
|
||||
"image/webp",
|
||||
"image/avif"
|
||||
];
|
||||
async function loadImageBitmap(url, asset) {
|
||||
const response = await adapter.DOMAdapter.get().fetch(url);
|
||||
if (!response.ok) {
|
||||
throw new Error(`[loadImageBitmap] Failed to fetch ${url}: ${response.status} ${response.statusText}`);
|
||||
}
|
||||
const imageBlob = await response.blob();
|
||||
return asset?.data?.alphaMode === "premultiplied-alpha" ? createImageBitmap(imageBlob, { premultiplyAlpha: "none" }) : createImageBitmap(imageBlob);
|
||||
}
|
||||
const loadTextures = {
|
||||
name: "loadTextures",
|
||||
extension: {
|
||||
type: Extensions.ExtensionType.LoadParser,
|
||||
priority: LoaderParser.LoaderParserPriority.High,
|
||||
name: "loadTextures"
|
||||
},
|
||||
config: {
|
||||
preferWorkers: true,
|
||||
preferCreateImageBitmap: true,
|
||||
crossOrigin: "anonymous"
|
||||
},
|
||||
test(url) {
|
||||
return checkDataUrl.checkDataUrl(url, validImageMIMEs) || checkExtension.checkExtension(url, validImageExtensions);
|
||||
},
|
||||
async load(url, asset, loader) {
|
||||
let src = null;
|
||||
if (globalThis.createImageBitmap && this.config.preferCreateImageBitmap) {
|
||||
if (this.config.preferWorkers && await WorkerManager.WorkerManager.isImageBitmapSupported()) {
|
||||
src = await WorkerManager.WorkerManager.loadImageBitmap(url, asset);
|
||||
} else {
|
||||
src = await loadImageBitmap(url, asset);
|
||||
}
|
||||
} else {
|
||||
src = await new Promise((resolve) => {
|
||||
src = new Image();
|
||||
src.crossOrigin = this.config.crossOrigin;
|
||||
src.src = url;
|
||||
if (src.complete) {
|
||||
resolve(src);
|
||||
} else {
|
||||
src.onload = () => {
|
||||
resolve(src);
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
const base = new ImageSource.ImageSource({
|
||||
resource: src,
|
||||
alphaMode: "premultiply-alpha-on-upload",
|
||||
resolution: asset.data?.resolution || getResolutionOfUrl.getResolutionOfUrl(url),
|
||||
...asset.data
|
||||
});
|
||||
return createTexture.createTexture(base, loader, url);
|
||||
},
|
||||
unload(texture) {
|
||||
texture.destroy(true);
|
||||
}
|
||||
};
|
||||
|
||||
exports.loadImageBitmap = loadImageBitmap;
|
||||
exports.loadTextures = loadTextures;
|
||||
//# sourceMappingURL=loadTextures.js.map
|
Reference in New Issue
Block a user