gpu.js
Version:
GPU Accelerated JavaScript
27 lines (24 loc) • 952 B
JavaScript
const { utils } = require('../../../utils');
const { WebGL2KernelValueHTMLImageArray } = require('./html-image-array');
class WebGL2KernelValueDynamicHTMLImageArray extends WebGL2KernelValueHTMLImageArray {
getSource() {
const variablePrecision = this.getVariablePrecisionString();
return utils.linesToString([
`uniform ${ variablePrecision } sampler2DArray ${this.id}`,
`uniform ${ variablePrecision } ivec2 ${this.sizeId}`,
`uniform ${ variablePrecision } ivec3 ${this.dimensionsId}`,
]);
}
updateValue(images) {
const { width, height } = images[0];
this.checkSize(width, height);
this.dimensions = [width, height, images.length];
this.textureSize = [width, height];
this.kernel.setUniform3iv(this.dimensionsId, this.dimensions);
this.kernel.setUniform2iv(this.sizeId, this.textureSize);
super.updateValue(images);
}
}
module.exports = {
WebGL2KernelValueDynamicHTMLImageArray
};