pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
43 lines (39 loc) • 1.52 kB
JavaScript
;
var Extensions = require('../../../../../extensions/Extensions.js');
var TextureSource = require('./TextureSource.js');
;
class BufferImageSource extends TextureSource.TextureSource {
constructor(options) {
const buffer = options.resource || new Float32Array(options.width * options.height * 4);
let format = options.format;
if (!format) {
if (buffer instanceof Float32Array) {
format = "rgba32float";
} else if (buffer instanceof Int32Array) {
format = "rgba32uint";
} else if (buffer instanceof Uint32Array) {
format = "rgba32uint";
} else if (buffer instanceof Int16Array) {
format = "rgba16uint";
} else if (buffer instanceof Uint16Array) {
format = "rgba16uint";
} else if (buffer instanceof Int8Array) {
format = "bgra8unorm";
} else {
format = "bgra8unorm";
}
}
super({
...options,
resource: buffer,
format
});
this.uploadMethodId = "buffer";
}
static test(resource) {
return resource instanceof Int8Array || resource instanceof Uint8Array || resource instanceof Uint8ClampedArray || resource instanceof Int16Array || resource instanceof Uint16Array || resource instanceof Int32Array || resource instanceof Uint32Array || resource instanceof Float32Array;
}
}
BufferImageSource.extension = Extensions.ExtensionType.TextureSource;
exports.BufferImageSource = BufferImageSource;
//# sourceMappingURL=BufferImageSource.js.map