1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import { RenderTargetTexture } from "../Textures/renderTargetTexture.js";
- /**
- * Renders to multiple views with a single draw call
- * Only for WebGL backends
- * @see https://www.khronos.org/registry/webgl/extensions/OVR_multiview2/
- */
- export class MultiviewRenderTarget extends RenderTargetTexture {
- set samples(value) {
- // We override this setter because multisampling is handled by framebufferTextureMultisampleMultiviewOVR
- this._samples = value;
- }
- get samples() {
- return this._samples;
- }
- /**
- * Creates a multiview render target
- * @param scene scene used with the render target
- * @param size the size of the render target (used for each view)
- */
- constructor(scene, size = 512) {
- super("multiview rtt", size, scene, false, true, 0, false, undefined, false, false, true, undefined, true);
- this._renderTarget = this.getScene().getEngine().createMultiviewRenderTargetTexture(this.getRenderWidth(), this.getRenderHeight());
- this._texture = this._renderTarget.texture;
- this._texture.isMultiview = true;
- this._texture.format = 5;
- this.samples = this._getEngine().getCaps().maxSamples || this.samples;
- this._texture.samples = this._samples;
- }
- /**
- * @internal
- */
- _bindFrameBuffer() {
- if (!this._renderTarget) {
- return;
- }
- this.getScene().getEngine().bindMultiviewFramebuffer(this._renderTarget);
- }
- /**
- * Gets the number of views the corresponding to the texture (eg. a MultiviewRenderTarget will have > 1)
- * @returns the view count
- */
- getViewCount() {
- return 2;
- }
- }
- //# sourceMappingURL=MultiviewRenderTarget.js.map
|