starry / backend /libs /three /renderers /WebGLMultipleRenderTargets.js
k-l-lambda's picture
feat: add Python ML services (CPU mode) with model download
2b7aae2
import { WebGLRenderTarget } from './WebGLRenderTarget.js';
class WebGLMultipleRenderTargets extends WebGLRenderTarget {
constructor(width, height, count) {
super(width, height);
const texture = this.texture;
this.texture = [];
for (let i = 0; i < count; i++) {
this.texture[i] = texture.clone();
}
}
setSize(width, height, depth = 1) {
if (this.width !== width || this.height !== height || this.depth !== depth) {
this.width = width;
this.height = height;
this.depth = depth;
for (let i = 0, il = this.texture.length; i < il; i++) {
this.texture[i].image.width = width;
this.texture[i].image.height = height;
this.texture[i].image.depth = depth;
}
this.dispose();
}
this.viewport.set(0, 0, width, height);
this.scissor.set(0, 0, width, height);
return this;
}
copy(source) {
this.dispose();
this.width = source.width;
this.height = source.height;
this.depth = source.depth;
this.viewport.set(0, 0, this.width, this.height);
this.scissor.set(0, 0, this.width, this.height);
this.depthBuffer = source.depthBuffer;
this.stencilBuffer = source.stencilBuffer;
this.depthTexture = source.depthTexture;
this.texture.length = 0;
for (let i = 0, il = source.texture.length; i < il; i++) {
this.texture[i] = source.texture[i].clone();
}
return this;
}
}
WebGLMultipleRenderTargets.prototype.isWebGLMultipleRenderTargets = true;
export { WebGLMultipleRenderTargets };