Spaces:
Running
Running
| 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 }; | |