UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

65 lines (64 loc) 2.98 kB
/** This file must only contain pure code and pure imports */ import { ThinWebGPUEngine } from "../../thinWebGPUEngine.js"; import { InternalTexture } from "../../../Materials/Textures/internalTexture.js"; let _Registered = false; /** * Register side effects for enginesWebGPUExtensionsEngineRenderTargetCube. * Safe to call multiple times; only the first call has an effect. */ export function RegisterEnginesWebGPUExtensionsEngineRenderTargetCube() { if (_Registered) { return; } _Registered = true; ThinWebGPUEngine.prototype.createRenderTargetCubeTexture = function (size, options) { const rtWrapper = this._createHardwareRenderTargetWrapper(false, true, size); const fullOptions = { generateMipMaps: true, generateDepthBuffer: true, generateStencilBuffer: false, type: 0, samplingMode: 3, format: 5, samples: 1, ...options, }; fullOptions.generateStencilBuffer = fullOptions.generateDepthBuffer && fullOptions.generateStencilBuffer; rtWrapper.label = fullOptions.label ?? "RenderTargetWrapper"; rtWrapper._generateDepthBuffer = fullOptions.generateDepthBuffer; rtWrapper._generateStencilBuffer = fullOptions.generateStencilBuffer; const texture = new InternalTexture(this, 5 /* InternalTextureSource.RenderTarget */); texture.width = size; texture.height = size; texture.depth = 0; texture.isReady = true; texture.isCube = true; texture.samples = fullOptions.samples; texture.generateMipMaps = fullOptions.generateMipMaps; texture.samplingMode = fullOptions.samplingMode; texture.type = fullOptions.type; texture.format = fullOptions.format; this._internalTexturesCache.push(texture); rtWrapper.setTextures(texture); if (rtWrapper._generateDepthBuffer || rtWrapper._generateStencilBuffer) { rtWrapper.createDepthStencilTexture(0, fullOptions.samplingMode === undefined || fullOptions.samplingMode === 2 || fullOptions.samplingMode === 2 || fullOptions.samplingMode === 3 || fullOptions.samplingMode === 3 || fullOptions.samplingMode === 5 || fullOptions.samplingMode === 6 || fullOptions.samplingMode === 7 || fullOptions.samplingMode === 11, rtWrapper._generateStencilBuffer, rtWrapper.samples); } if (options && options.createMipMaps && !fullOptions.generateMipMaps) { texture.generateMipMaps = true; } this._textureHelper.createGPUTextureForInternalTexture(texture); if (options && options.createMipMaps && !fullOptions.generateMipMaps) { texture.generateMipMaps = false; } return rtWrapper; }; } //# sourceMappingURL=engine.renderTargetCube.pure.js.map