@babylonjs/core 5.0.0-beta.7 → 5.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Animations/animation.d.ts +6 -6
- package/Animations/animation.js +9 -5
- package/Animations/animation.js.map +1 -1
- package/Audio/sound.js +9 -3
- package/Audio/sound.js.map +1 -1
- package/Bones/skeleton.d.ts +0 -6
- package/Bones/skeleton.js +2 -14
- package/Bones/skeleton.js.map +1 -1
- package/Compat/compatibilityOptions.d.ts +9 -0
- package/Compat/compatibilityOptions.js +14 -0
- package/Compat/compatibilityOptions.js.map +1 -0
- package/Compat/index.d.ts +1 -0
- package/Compat/index.js +2 -0
- package/Compat/index.js.map +1 -0
- package/Culling/ray.js +2 -2
- package/Culling/ray.js.map +1 -1
- package/Debug/skeletonViewer.js +3 -4
- package/Debug/skeletonViewer.js.map +1 -1
- package/DeviceInput/Helpers/eventFactory.js +8 -1
- package/DeviceInput/Helpers/eventFactory.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.d.ts +20 -5
- package/DeviceInput/InputDevices/deviceSourceManager.js +68 -7
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/InputDevices/internalDeviceSourceManager.d.ts +15 -10
- package/DeviceInput/InputDevices/internalDeviceSourceManager.js +25 -31
- package/DeviceInput/InputDevices/internalDeviceSourceManager.js.map +1 -1
- package/DeviceInput/InputDevices/webDeviceInputSystem.d.ts +8 -6
- package/DeviceInput/InputDevices/webDeviceInputSystem.js +113 -42
- package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.multiview.js +0 -1
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Extensions/engine.query.d.ts +7 -0
- package/Engines/Extensions/engine.query.js +12 -0
- package/Engines/Extensions/engine.query.js.map +1 -1
- package/Engines/Extensions/engine.renderTarget.d.ts +5 -0
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +7 -0
- package/Engines/Extensions/engine.views.js +12 -0
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +2 -1
- package/Engines/WebGPU/webgpuConstants.js +1 -0
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +5 -5
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/engine.d.ts +45 -26
- package/Engines/index.d.ts +1 -0
- package/Engines/index.js +1 -0
- package/Engines/index.js.map +1 -1
- package/Engines/nativeEngine.js +12 -11
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +33 -22
- package/Engines/webgpuEngine.js.map +1 -1
- package/Events/keyboardEvents.d.ts +7 -1
- package/Events/keyboardEvents.js +11 -1
- package/Events/keyboardEvents.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.js +0 -10
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/gizmo.js +1 -1
- package/Gizmos/gizmo.js.map +1 -1
- package/Helpers/environmentHelper.js +2 -2
- package/Helpers/environmentHelper.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +0 -1
- package/Inputs/scene.inputManager.js +7 -7
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Layers/effectLayer.d.ts +1 -0
- package/Layers/effectLayer.js +24 -0
- package/Layers/effectLayer.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +5 -5
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +0 -8
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Loading/sceneLoader.js +4 -3
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +1 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +1 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/texture.js +5 -5
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/materialPluginBase.d.ts +5 -0
- package/Materials/materialPluginBase.js +5 -0
- package/Materials/materialPluginBase.js.map +1 -1
- package/Materials/materialPluginEvent.d.ts +1 -0
- package/Materials/materialPluginEvent.js.map +1 -1
- package/Materials/materialPluginManager.d.ts +1 -0
- package/Materials/materialPluginManager.js +20 -15
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/standardMaterial.js +1 -0
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/math.vector.d.ts +5 -0
- package/Maths/math.vector.js +11 -0
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/boxBuilder.js +5 -4
- package/Meshes/Builders/boxBuilder.js.map +1 -1
- package/Meshes/Builders/capsuleBuilder.js +4 -3
- package/Meshes/Builders/capsuleBuilder.js.map +1 -1
- package/Meshes/Builders/cylinderBuilder.js +10 -7
- package/Meshes/Builders/cylinderBuilder.js.map +1 -1
- package/Meshes/Builders/decalBuilder.js +5 -2
- package/Meshes/Builders/decalBuilder.js.map +1 -1
- package/Meshes/Builders/discBuilder.js +3 -2
- package/Meshes/Builders/discBuilder.js.map +1 -1
- package/Meshes/Builders/goldbergBuilder.js +10 -1
- package/Meshes/Builders/goldbergBuilder.js.map +1 -1
- package/Meshes/Builders/groundBuilder.js +2 -1
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/Builders/icoSphereBuilder.js +2 -1
- package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
- package/Meshes/Builders/planeBuilder.js +5 -4
- package/Meshes/Builders/planeBuilder.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.js +8 -3
- package/Meshes/Builders/polygonBuilder.js.map +1 -1
- package/Meshes/Builders/polyhedronBuilder.js +3 -2
- package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
- package/Meshes/Builders/ribbonBuilder.js +4 -3
- package/Meshes/Builders/ribbonBuilder.js.map +1 -1
- package/Meshes/Builders/sphereBuilder.js +2 -1
- package/Meshes/Builders/sphereBuilder.js.map +1 -1
- package/Meshes/Builders/tiledBoxBuilder.js +4 -0
- package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
- package/Meshes/Builders/torusBuilder.js +2 -1
- package/Meshes/Builders/torusBuilder.js.map +1 -1
- package/Meshes/Builders/torusKnotBuilder.js +2 -1
- package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +9 -3
- package/Meshes/abstractMesh.js +33 -31
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.js +31 -0
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/instancedMesh.js +12 -10
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +1 -1
- package/Meshes/mesh.js +52 -51
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +2 -2
- package/Meshes/mesh.vertexData.js +100 -76
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.d.ts +0 -2
- package/Meshes/transformNode.js +6 -5
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/decorators.d.ts +1 -1
- package/Misc/decorators.js +8 -1
- package/Misc/decorators.js.map +1 -1
- package/Misc/deepCopier.js +3 -3
- package/Misc/deepCopier.js.map +1 -1
- package/Misc/error.d.ts +51 -0
- package/Misc/error.js +66 -0
- package/Misc/error.js.map +1 -0
- package/Misc/fileTools.d.ts +4 -4
- package/Misc/fileTools.js +7 -7
- package/Misc/fileTools.js.map +1 -1
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +1 -0
- package/Misc/index.js.map +1 -1
- package/Particles/particleSystem.d.ts +13 -1
- package/Particles/particleSystem.js +27 -1
- package/Particles/particleSystem.js.map +1 -1
- package/Rendering/prePassRenderer.js +12 -2
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.js +1 -1
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/utilityLayerRenderer.js +2 -0
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
- package/Shaders/background.vertex.js +1 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/pbr.vertex.js +1 -1
- package/Shaders/pbr.vertex.js.map +1 -1
- package/XR/features/WebXRNearInteraction.js +4 -2
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/assetContainer.js +1 -4
- package/assetContainer.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +10 -4
- package/scene.d.ts +1 -10
- package/scene.js +23 -43
- package/scene.js.map +1 -1
- package/types.d.ts +1 -1
- package/types.js.map +1 -1
- package/Misc/baseError.d.ts +0 -7
- package/Misc/baseError.js +0 -18
- package/Misc/baseError.js.map +0 -1
|
@@ -3,6 +3,11 @@ import { RenderTargetCreationOptions, DepthTextureCreationOptions } from "../../
|
|
|
3
3
|
import { Nullable } from "../../types";
|
|
4
4
|
import { RenderTargetWrapper } from "../renderTargetWrapper";
|
|
5
5
|
import { TextureSize } from "../../Materials/Textures/textureCreationOptions";
|
|
6
|
+
/**
|
|
7
|
+
* Type used to define a texture size (either with a number or with a rect width and height)
|
|
8
|
+
* @deprecated please use TextureSize instead
|
|
9
|
+
*/
|
|
10
|
+
export declare type RenderTargetTextureSize = TextureSize;
|
|
6
11
|
declare module "../../Engines/thinEngine" {
|
|
7
12
|
interface ThinEngine {
|
|
8
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.renderTarget.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/Extensions/engine.renderTarget.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AA0C7E,UAAU,CAAC,SAAS,CAAC,kCAAkC,GAAG,UAAU,OAAgB,EAAE,MAAe,EAAE,IAAiB;IACpH,IAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACtF,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,UAAU,CAAC,SAAS,CAAC,yBAAyB,GAAG,UAA4B,IAAiB,EAAE,OAA8C;IAC1I,IAAM,SAAS,GAAG,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAA6B,CAAC;IAE1G,IAAM,WAAW,GAAgC,EAAE,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QACtD,WAAW,CAAC,mBAAmB,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAChE,WAAW,CAAC,qBAAqB,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;KACvE;SAAM;QACH,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACvC,WAAW,CAAC,qBAAqB,GAAG,KAAK,CAAC;KAC7C;IAED,IAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACrG,IAAM,KAAK,GAAwD,IAAK,CAAC,KAAK,IAAY,IAAI,CAAC;IAC/F,IAAM,MAAM,GAAwD,IAAK,CAAC,MAAM,IAAY,IAAI,CAAC;IAEjG,IAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC;IACpD,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IAEpB,yBAAyB;IACzB,IAAM,WAAW,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAC3C,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC1C,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,iCAAiC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,mBAAmB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAEzK,mCAAmC;IACnC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QACpB,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,gBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;KACjI;IAED,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IAEjD,SAAS,CAAC,YAAY,GAAG,WAAW,CAAC;IACrC,SAAS,CAAC,oBAAoB,GAAG,WAAW,CAAC,mBAAmB,CAAC;IACjE,SAAS,CAAC,sBAAsB,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAEpF,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE/B,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,UAAU,CAAC,SAAS,CAAC,yBAAyB,GAAG,UAAU,IAAiB,EAAE,OAAoC,EAAE,SAA8B;IAC9I,IAAI,OAAO,CAAC,MAAM,EAAE;QAChB,IAAI,KAAK,GAAuC,IAAK,CAAC,KAAK,IAAY,IAAI,CAAC;QAC5E,OAAO,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;KACzE;SAAM;QACH,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;KACpE;AACL,CAAC,CAAC;AAEF,UAAU,CAAC,SAAS,CAAC,0BAA0B,GAAG,UAAU,IAAiB,EAAE,OAAoC,EAAE,SAA8B;IAC/I,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IACpB,IAAM,MAAM,GAAwD,IAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACtF,IAAM,MAAM,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;IAClE,IAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACtF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;QACnC,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC5E,OAAO,eAAe,CAAC;KAC1B;IAED,IAAM,eAAe,cACjB,iBAAiB,EAAE,KAAK,EACxB,kBAAkB,EAAE,CAAC,EACrB,eAAe,EAAE,KAAK,IACnB,OAAO,CACb,CAAC;IAEF,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;IAEzD,IAAI,CAAC,yBAAyB,CAC1B,eAAe,EACf,IAAI,EACJ,eAAe,CAAC,eAAe,EAE/B,eAAe,CAAC,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,iBAAiB,EACpF,eAAe,CAAC,kBAAkB,CACrC,CAAC;IAEF,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnE,SAAS,CAAC,oBAAoB,GAAG,eAAe,CAAC;IACjD,SAAS,CAAC,+BAA+B,GAAG,eAAe,CAAC,eAAe,CAAC;IAE5E,IAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;IACtF,IAAM,cAAc,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC;IAC/F,IAAI,WAAW,GAAG,cAAc,CAAC;IACjC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;QACvB,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC;KAC9F;IAED,IAAI,eAAe,CAAC,SAAS,EAAE;QAC3B,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KAC/H;SAAM;QACH,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACvH;IAED,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAExC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAElD,OAAO,eAAe,CAAC;AAC3B,CAAC,CAAC;AAEF,UAAU,CAAC,SAAS,CAAC,oCAAoC,GAAG,UAAU,SAA6C,EAAE,OAAe;IAChI,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;QAC3D,OAAO,CAAC,CAAC;KACZ;IAED,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,EAAE;QAC/B,OAAO,OAAO,CAAC;KAClB;IAED,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IAElB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC;IAE3D,kCAAkC;IAClC,IAAI,SAAS,CAAC,mBAAmB,EAAE;QAC/B,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACrD,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC;KACxC;IAED,IAAI,SAAS,CAAC,gBAAgB,EAAE;QAC5B,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACjD,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC;KACrC;IAED,IAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAwC,CAAC;IACnF,IAAI,eAAe,CAAC,iBAAiB,EAAE;QACnC,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACzD,eAAe,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC5C;IAED,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,8BAA8B,EAAE;QAClD,IAAI,WAAW,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAEzC,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;QAED,SAAS,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACzC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAEzD,IAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAC9C,SAAS,CAAC,OAAO,CAAC,KAAK,EACvB,SAAS,CAAC,OAAO,CAAC,MAAM,EACxB,OAAO,EACP,CAAC,CAAC,CAAC,cAAc,EACjB,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAC5D,EAAE,CAAC,iBAAiB,EACpB,KAAK,CACR,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;QAED,eAAe,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;KACzD;SAAM;QACH,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;KACxD;IAED,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IACpC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,iCAAiC,CAClE,SAAS,CAAC,sBAAsB,EAChC,SAAS,CAAC,oBAAoB,EAC9B,SAAS,CAAC,OAAO,CAAC,KAAK,EACvB,SAAS,CAAC,OAAO,CAAC,MAAM,EACxB,OAAO,CACV,CAAC;IAEF,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC","sourcesContent":["import { InternalTexture, InternalTextureSource } from \"../../Materials/Textures/internalTexture\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport { RenderTargetCreationOptions, DepthTextureCreationOptions } from \"../../Materials/Textures/textureCreationOptions\";\r\nimport { ThinEngine } from \"../thinEngine\";\r\nimport { Nullable } from \"../../types\";\r\nimport { RenderTargetWrapper } from \"../renderTargetWrapper\";\r\nimport { WebGLRenderTargetWrapper } from \"../WebGL/webGLRenderTargetWrapper\";\r\nimport { WebGLHardwareTexture } from \"../WebGL/webGLHardwareTexture\";\r\nimport { TextureSize } from \"../../Materials/Textures/textureCreationOptions\";\r\n\r\n\r\ndeclare module \"../../Engines/thinEngine\" {\r\n export interface ThinEngine {\r\n /**\r\n * Creates a new render target texture\r\n * @param size defines the size of the texture\r\n * @param options defines the options used to create the texture\r\n * @returns a new render target wrapper ready to render texture\r\n */\r\n createRenderTargetTexture(size: TextureSize, options: boolean | RenderTargetCreationOptions): RenderTargetWrapper;\r\n\r\n /**\r\n * Creates a depth stencil texture.\r\n * This is only available in WebGL 2 or with the depth texture extension available.\r\n * @param size The size of face edge in the texture.\r\n * @param options The options defining the texture.\r\n * @param rtWrapper The render target wrapper for which the depth/stencil texture must be created\r\n * @returns The texture\r\n */\r\n createDepthStencilTexture(size: TextureSize, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture;\r\n\r\n /**\r\n * Updates the sample count of a render target texture\r\n * @see https://doc.babylonjs.com/features/webgl2#multisample-render-targets\r\n * @param rtWrapper defines the render target wrapper to update\r\n * @param samples defines the sample count to set\r\n * @returns the effective sample count (could be 0 if multisample render targets are not supported)\r\n */\r\n updateRenderTargetTextureSampleCount(rtWrapper: Nullable<RenderTargetWrapper>, samples: number): number;\r\n\r\n /** @hidden */\r\n _createDepthStencilTexture(size: TextureSize, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture;\r\n\r\n /** @hidden */\r\n _createHardwareRenderTargetWrapper(isMulti: boolean, isCube: boolean, size: TextureSize): RenderTargetWrapper;\r\n }\r\n}\r\n\r\nThinEngine.prototype._createHardwareRenderTargetWrapper = function (isMulti: boolean, isCube: boolean, size: TextureSize): RenderTargetWrapper {\r\n const rtWrapper = new WebGLRenderTargetWrapper(isMulti, isCube, size, this, this._gl);\r\n this._renderTargetWrapperCache.push(rtWrapper);\r\n return rtWrapper;\r\n};\r\n\r\nThinEngine.prototype.createRenderTargetTexture = function (this: ThinEngine, size: TextureSize, options: boolean | RenderTargetCreationOptions): RenderTargetWrapper {\r\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size) as WebGLRenderTargetWrapper;\r\n\r\n const fullOptions: RenderTargetCreationOptions = {};\r\n if (options !== undefined && typeof options === \"object\") {\r\n fullOptions.generateDepthBuffer = !!options.generateDepthBuffer;\r\n fullOptions.generateStencilBuffer = !!options.generateStencilBuffer;\r\n } else {\r\n fullOptions.generateDepthBuffer = true;\r\n fullOptions.generateStencilBuffer = false;\r\n }\r\n\r\n const texture = this._createInternalTexture(size, options, true, InternalTextureSource.RenderTarget);\r\n const width = (<{ width: number; height: number; layers?: number }>size).width || <number>size;\r\n const height = (<{ width: number; height: number; layers?: number }>size).height || <number>size;\r\n\r\n const currentFrameBuffer = this._currentFramebuffer;\r\n const gl = this._gl;\r\n\r\n // Create the framebuffer\r\n const framebuffer = gl.createFramebuffer();\r\n this._bindUnboundFramebuffer(framebuffer);\r\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(fullOptions.generateStencilBuffer ? true : false, fullOptions.generateDepthBuffer, width, height);\r\n\r\n // No need to rebind on every frame\r\n if (!texture.is2DArray) {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture._hardwareTexture!.underlyingResource, 0);\r\n }\r\n\r\n this._bindUnboundFramebuffer(currentFrameBuffer);\r\n\r\n rtWrapper._framebuffer = framebuffer;\r\n rtWrapper._generateDepthBuffer = fullOptions.generateDepthBuffer;\r\n rtWrapper._generateStencilBuffer = fullOptions.generateStencilBuffer ? true : false;\r\n\r\n rtWrapper.setTextures(texture);\r\n\r\n return rtWrapper;\r\n};\r\n\r\nThinEngine.prototype.createDepthStencilTexture = function (size: TextureSize, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture {\r\n if (options.isCube) {\r\n let width = (<{ width: number; height: number }>size).width || <number>size;\r\n return this._createDepthStencilCubeTexture(width, options, rtWrapper);\r\n } else {\r\n return this._createDepthStencilTexture(size, options, rtWrapper);\r\n }\r\n};\r\n\r\nThinEngine.prototype._createDepthStencilTexture = function (size: TextureSize, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture {\r\n const gl = this._gl;\r\n const layers = (<{ width: number; height: number; layers?: number }>size).layers || 0;\r\n const target = layers !== 0 ? gl.TEXTURE_2D_ARRAY : gl.TEXTURE_2D;\r\n const internalTexture = new InternalTexture(this, InternalTextureSource.DepthStencil);\r\n if (!this._caps.depthTextureExtension) {\r\n Logger.Error(\"Depth texture is not supported by your browser or hardware.\");\r\n return internalTexture;\r\n }\r\n\r\n const internalOptions = {\r\n bilinearFiltering: false,\r\n comparisonFunction: 0,\r\n generateStencil: false,\r\n ...options,\r\n };\r\n\r\n this._bindTextureDirectly(target, internalTexture, true);\r\n\r\n this._setupDepthStencilTexture(\r\n internalTexture,\r\n size,\r\n internalOptions.generateStencil,\r\n\r\n internalOptions.comparisonFunction === 0 ? false : internalOptions.bilinearFiltering,\r\n internalOptions.comparisonFunction\r\n );\r\n\r\n internalTexture.format = internalOptions.generateStencil ? 13 : 16;\r\n\r\n rtWrapper._depthStencilTexture = internalTexture;\r\n rtWrapper._depthStencilTextureWithStencil = internalOptions.generateStencil;\r\n\r\n const type = internalOptions.generateStencil ? gl.UNSIGNED_INT_24_8 : gl.UNSIGNED_INT;\r\n const internalFormat = internalOptions.generateStencil ? gl.DEPTH_STENCIL : gl.DEPTH_COMPONENT;\r\n let sizedFormat = internalFormat;\r\n if (this.webGLVersion > 1) {\r\n sizedFormat = internalOptions.generateStencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\r\n }\r\n\r\n if (internalTexture.is2DArray) {\r\n gl.texImage3D(target, 0, sizedFormat, internalTexture.width, internalTexture.height, layers, 0, internalFormat, type, null);\r\n } else {\r\n gl.texImage2D(target, 0, sizedFormat, internalTexture.width, internalTexture.height, 0, internalFormat, type, null);\r\n }\r\n\r\n this._bindTextureDirectly(target, null);\r\n\r\n this._internalTexturesCache.push(internalTexture);\r\n\r\n return internalTexture;\r\n};\r\n\r\nThinEngine.prototype.updateRenderTargetTextureSampleCount = function (rtWrapper: Nullable<WebGLRenderTargetWrapper>, samples: number): number {\r\n if (this.webGLVersion < 2 || !rtWrapper || !rtWrapper.texture) {\r\n return 1;\r\n }\r\n\r\n if (rtWrapper.samples === samples) {\r\n return samples;\r\n }\r\n\r\n var gl = this._gl;\r\n\r\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\r\n\r\n // Dispose previous render buffers\r\n if (rtWrapper._depthStencilBuffer) {\r\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\r\n rtWrapper._depthStencilBuffer = null;\r\n }\r\n\r\n if (rtWrapper._MSAAFramebuffer) {\r\n gl.deleteFramebuffer(rtWrapper._MSAAFramebuffer);\r\n rtWrapper._MSAAFramebuffer = null;\r\n }\r\n\r\n const hardwareTexture = rtWrapper.texture._hardwareTexture as WebGLHardwareTexture;\r\n if (hardwareTexture._MSAARenderBuffer) {\r\n gl.deleteRenderbuffer(hardwareTexture._MSAARenderBuffer);\r\n hardwareTexture._MSAARenderBuffer = null;\r\n }\r\n\r\n if (samples > 1 && gl.renderbufferStorageMultisample) {\r\n let framebuffer = gl.createFramebuffer();\r\n\r\n if (!framebuffer) {\r\n throw new Error(\"Unable to create multi sampled framebuffer\");\r\n }\r\n\r\n rtWrapper._MSAAFramebuffer = framebuffer;\r\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\r\n\r\n const colorRenderbuffer = this._createRenderBuffer(\r\n rtWrapper.texture.width,\r\n rtWrapper.texture.height,\r\n samples,\r\n -1 /* not used */,\r\n this._getRGBAMultiSampleBufferFormat(rtWrapper.texture.type),\r\n gl.COLOR_ATTACHMENT0,\r\n false\r\n );\r\n\r\n if (!colorRenderbuffer) {\r\n throw new Error(\"Unable to create multi sampled framebuffer\");\r\n }\r\n\r\n hardwareTexture._MSAARenderBuffer = colorRenderbuffer;\r\n } else {\r\n this._bindUnboundFramebuffer(rtWrapper._framebuffer);\r\n }\r\n\r\n rtWrapper.texture.samples = samples;\r\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(\r\n rtWrapper._generateStencilBuffer,\r\n rtWrapper._generateDepthBuffer,\r\n rtWrapper.texture.width,\r\n rtWrapper.texture.height,\r\n samples\r\n );\r\n\r\n this._bindUnboundFramebuffer(null);\r\n\r\n return samples;\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"engine.renderTarget.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/Extensions/engine.renderTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { InternalTexture, InternalTextureSource } from \"../../Materials/Textures/internalTexture\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport { RenderTargetCreationOptions, DepthTextureCreationOptions } from \"../../Materials/Textures/textureCreationOptions\";\r\nimport { ThinEngine } from \"../thinEngine\";\r\nimport { Nullable } from \"../../types\";\r\nimport { RenderTargetWrapper } from \"../renderTargetWrapper\";\r\nimport { WebGLRenderTargetWrapper } from \"../WebGL/webGLRenderTargetWrapper\";\r\nimport { WebGLHardwareTexture } from \"../WebGL/webGLHardwareTexture\";\r\nimport { TextureSize } from \"../../Materials/Textures/textureCreationOptions\";\r\n\r\n\r\n/**\r\n * Type used to define a texture size (either with a number or with a rect width and height)\r\n * @deprecated please use TextureSize instead\r\n */\r\nexport type RenderTargetTextureSize = TextureSize;\r\n\r\ndeclare module \"../../Engines/thinEngine\" {\r\n export interface ThinEngine {\r\n /**\r\n * Creates a new render target texture\r\n * @param size defines the size of the texture\r\n * @param options defines the options used to create the texture\r\n * @returns a new render target wrapper ready to render texture\r\n */\r\n createRenderTargetTexture(size: TextureSize, options: boolean | RenderTargetCreationOptions): RenderTargetWrapper;\r\n\r\n /**\r\n * Creates a depth stencil texture.\r\n * This is only available in WebGL 2 or with the depth texture extension available.\r\n * @param size The size of face edge in the texture.\r\n * @param options The options defining the texture.\r\n * @param rtWrapper The render target wrapper for which the depth/stencil texture must be created\r\n * @returns The texture\r\n */\r\n createDepthStencilTexture(size: TextureSize, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture;\r\n\r\n /**\r\n * Updates the sample count of a render target texture\r\n * @see https://doc.babylonjs.com/features/webgl2#multisample-render-targets\r\n * @param rtWrapper defines the render target wrapper to update\r\n * @param samples defines the sample count to set\r\n * @returns the effective sample count (could be 0 if multisample render targets are not supported)\r\n */\r\n updateRenderTargetTextureSampleCount(rtWrapper: Nullable<RenderTargetWrapper>, samples: number): number;\r\n\r\n /** @hidden */\r\n _createDepthStencilTexture(size: TextureSize, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture;\r\n\r\n /** @hidden */\r\n _createHardwareRenderTargetWrapper(isMulti: boolean, isCube: boolean, size: TextureSize): RenderTargetWrapper;\r\n }\r\n}\r\n\r\nThinEngine.prototype._createHardwareRenderTargetWrapper = function (isMulti: boolean, isCube: boolean, size: TextureSize): RenderTargetWrapper {\r\n const rtWrapper = new WebGLRenderTargetWrapper(isMulti, isCube, size, this, this._gl);\r\n this._renderTargetWrapperCache.push(rtWrapper);\r\n return rtWrapper;\r\n};\r\n\r\nThinEngine.prototype.createRenderTargetTexture = function (this: ThinEngine, size: TextureSize, options: boolean | RenderTargetCreationOptions): RenderTargetWrapper {\r\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size) as WebGLRenderTargetWrapper;\r\n\r\n const fullOptions: RenderTargetCreationOptions = {};\r\n if (options !== undefined && typeof options === \"object\") {\r\n fullOptions.generateDepthBuffer = !!options.generateDepthBuffer;\r\n fullOptions.generateStencilBuffer = !!options.generateStencilBuffer;\r\n } else {\r\n fullOptions.generateDepthBuffer = true;\r\n fullOptions.generateStencilBuffer = false;\r\n }\r\n\r\n const texture = this._createInternalTexture(size, options, true, InternalTextureSource.RenderTarget);\r\n const width = (<{ width: number; height: number; layers?: number }>size).width || <number>size;\r\n const height = (<{ width: number; height: number; layers?: number }>size).height || <number>size;\r\n\r\n const currentFrameBuffer = this._currentFramebuffer;\r\n const gl = this._gl;\r\n\r\n // Create the framebuffer\r\n const framebuffer = gl.createFramebuffer();\r\n this._bindUnboundFramebuffer(framebuffer);\r\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(fullOptions.generateStencilBuffer ? true : false, fullOptions.generateDepthBuffer, width, height);\r\n\r\n // No need to rebind on every frame\r\n if (!texture.is2DArray) {\r\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture._hardwareTexture!.underlyingResource, 0);\r\n }\r\n\r\n this._bindUnboundFramebuffer(currentFrameBuffer);\r\n\r\n rtWrapper._framebuffer = framebuffer;\r\n rtWrapper._generateDepthBuffer = fullOptions.generateDepthBuffer;\r\n rtWrapper._generateStencilBuffer = fullOptions.generateStencilBuffer ? true : false;\r\n\r\n rtWrapper.setTextures(texture);\r\n\r\n return rtWrapper;\r\n};\r\n\r\nThinEngine.prototype.createDepthStencilTexture = function (size: TextureSize, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture {\r\n if (options.isCube) {\r\n let width = (<{ width: number; height: number }>size).width || <number>size;\r\n return this._createDepthStencilCubeTexture(width, options, rtWrapper);\r\n } else {\r\n return this._createDepthStencilTexture(size, options, rtWrapper);\r\n }\r\n};\r\n\r\nThinEngine.prototype._createDepthStencilTexture = function (size: TextureSize, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture {\r\n const gl = this._gl;\r\n const layers = (<{ width: number; height: number; layers?: number }>size).layers || 0;\r\n const target = layers !== 0 ? gl.TEXTURE_2D_ARRAY : gl.TEXTURE_2D;\r\n const internalTexture = new InternalTexture(this, InternalTextureSource.DepthStencil);\r\n if (!this._caps.depthTextureExtension) {\r\n Logger.Error(\"Depth texture is not supported by your browser or hardware.\");\r\n return internalTexture;\r\n }\r\n\r\n const internalOptions = {\r\n bilinearFiltering: false,\r\n comparisonFunction: 0,\r\n generateStencil: false,\r\n ...options,\r\n };\r\n\r\n this._bindTextureDirectly(target, internalTexture, true);\r\n\r\n this._setupDepthStencilTexture(\r\n internalTexture,\r\n size,\r\n internalOptions.generateStencil,\r\n\r\n internalOptions.comparisonFunction === 0 ? false : internalOptions.bilinearFiltering,\r\n internalOptions.comparisonFunction\r\n );\r\n\r\n internalTexture.format = internalOptions.generateStencil ? 13 : 16;\r\n\r\n rtWrapper._depthStencilTexture = internalTexture;\r\n rtWrapper._depthStencilTextureWithStencil = internalOptions.generateStencil;\r\n\r\n const type = internalOptions.generateStencil ? gl.UNSIGNED_INT_24_8 : gl.UNSIGNED_INT;\r\n const internalFormat = internalOptions.generateStencil ? gl.DEPTH_STENCIL : gl.DEPTH_COMPONENT;\r\n let sizedFormat = internalFormat;\r\n if (this.webGLVersion > 1) {\r\n sizedFormat = internalOptions.generateStencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\r\n }\r\n\r\n if (internalTexture.is2DArray) {\r\n gl.texImage3D(target, 0, sizedFormat, internalTexture.width, internalTexture.height, layers, 0, internalFormat, type, null);\r\n } else {\r\n gl.texImage2D(target, 0, sizedFormat, internalTexture.width, internalTexture.height, 0, internalFormat, type, null);\r\n }\r\n\r\n this._bindTextureDirectly(target, null);\r\n\r\n this._internalTexturesCache.push(internalTexture);\r\n\r\n return internalTexture;\r\n};\r\n\r\nThinEngine.prototype.updateRenderTargetTextureSampleCount = function (rtWrapper: Nullable<WebGLRenderTargetWrapper>, samples: number): number {\r\n if (this.webGLVersion < 2 || !rtWrapper || !rtWrapper.texture) {\r\n return 1;\r\n }\r\n\r\n if (rtWrapper.samples === samples) {\r\n return samples;\r\n }\r\n\r\n var gl = this._gl;\r\n\r\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\r\n\r\n // Dispose previous render buffers\r\n if (rtWrapper._depthStencilBuffer) {\r\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\r\n rtWrapper._depthStencilBuffer = null;\r\n }\r\n\r\n if (rtWrapper._MSAAFramebuffer) {\r\n gl.deleteFramebuffer(rtWrapper._MSAAFramebuffer);\r\n rtWrapper._MSAAFramebuffer = null;\r\n }\r\n\r\n const hardwareTexture = rtWrapper.texture._hardwareTexture as WebGLHardwareTexture;\r\n if (hardwareTexture._MSAARenderBuffer) {\r\n gl.deleteRenderbuffer(hardwareTexture._MSAARenderBuffer);\r\n hardwareTexture._MSAARenderBuffer = null;\r\n }\r\n\r\n if (samples > 1 && gl.renderbufferStorageMultisample) {\r\n let framebuffer = gl.createFramebuffer();\r\n\r\n if (!framebuffer) {\r\n throw new Error(\"Unable to create multi sampled framebuffer\");\r\n }\r\n\r\n rtWrapper._MSAAFramebuffer = framebuffer;\r\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\r\n\r\n const colorRenderbuffer = this._createRenderBuffer(\r\n rtWrapper.texture.width,\r\n rtWrapper.texture.height,\r\n samples,\r\n -1 /* not used */,\r\n this._getRGBAMultiSampleBufferFormat(rtWrapper.texture.type),\r\n gl.COLOR_ATTACHMENT0,\r\n false\r\n );\r\n\r\n if (!colorRenderbuffer) {\r\n throw new Error(\"Unable to create multi sampled framebuffer\");\r\n }\r\n\r\n hardwareTexture._MSAARenderBuffer = colorRenderbuffer;\r\n } else {\r\n this._bindUnboundFramebuffer(rtWrapper._framebuffer);\r\n }\r\n\r\n rtWrapper.texture.samples = samples;\r\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(\r\n rtWrapper._generateStencilBuffer,\r\n rtWrapper._generateDepthBuffer,\r\n rtWrapper.texture.width,\r\n rtWrapper.texture.height,\r\n samples\r\n );\r\n\r\n this._bindUnboundFramebuffer(null);\r\n\r\n return samples;\r\n};\r\n"]}
|
|
@@ -18,10 +18,17 @@ export declare class EngineView {
|
|
|
18
18
|
}
|
|
19
19
|
declare module "../../Engines/engine" {
|
|
20
20
|
interface Engine {
|
|
21
|
+
/** @hidden */
|
|
22
|
+
_inputElement: Nullable<HTMLElement>;
|
|
21
23
|
/**
|
|
22
24
|
* Gets or sets the HTML element to use for attaching events
|
|
23
25
|
*/
|
|
24
26
|
inputElement: Nullable<HTMLElement>;
|
|
27
|
+
/**
|
|
28
|
+
* Observable to handle when a change to inputElement occurs
|
|
29
|
+
* @hidden
|
|
30
|
+
*/
|
|
31
|
+
_onEngineViewChanged?: () => void;
|
|
25
32
|
/**
|
|
26
33
|
* Gets the current engine view
|
|
27
34
|
* @see https://doc.babylonjs.com/how_to/multi_canvases
|
|
@@ -9,6 +9,18 @@ var EngineView = /** @class */ (function () {
|
|
|
9
9
|
return EngineView;
|
|
10
10
|
}());
|
|
11
11
|
export { EngineView };
|
|
12
|
+
Object.defineProperty(Engine.prototype, "inputElement", {
|
|
13
|
+
get: function () {
|
|
14
|
+
return this._inputElement;
|
|
15
|
+
},
|
|
16
|
+
set: function (value) {
|
|
17
|
+
var _a;
|
|
18
|
+
if (this._inputElement !== value) {
|
|
19
|
+
this._inputElement = value;
|
|
20
|
+
(_a = this._onEngineViewChanged) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
});
|
|
12
24
|
Engine.prototype.getInputElement = function () {
|
|
13
25
|
return this.inputElement || this.getRenderingCanvas();
|
|
14
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.views.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/Extensions/engine.views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAKnC;;;GAGG;AACH;IAAA;IAWA,CAAC;IAAD,iBAAC;AAAD,CAAC,AAXD,IAWC;;AAqCD,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG;IAC/B,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,MAAyB,EAAE,MAAe,EAAE,eAAyB;IAA/E,iBA2B/B;IA1BG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACnB;IAED,KAAiB,UAAU,EAAV,KAAA,IAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU,EAAE;QAAxB,IAAI,IAAI,SAAA;QACT,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YACxB,OAAO,IAAI,CAAC;SACf;KACJ;IAED,IAAI,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC7C,IAAI,YAAY,EAAE;QACd,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;KACvC;IAED,IAAI,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAA,EAAE,eAAe,iBAAA,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACzE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzB,IAAI,MAAM,EAAE;QACR,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC;YAC3B,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;KACN;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,MAAyB;IACjE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACb,OAAO,IAAI,CAAC;KACf;IAED,KAAiB,UAAU,EAAV,KAAA,IAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU,EAAE;QAAxB,IAAI,IAAI,SAAA;QACT,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC/B;YACD,MAAM;SACT;KACJ;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG;IAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACb,OAAO,KAAK,CAAC;KAChB;IAED,IAAI,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE;QACT,OAAO,KAAK,CAAC;KAChB;IAED,KAAiB,UAAU,EAAV,KAAA,IAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU,EAAE;QAAxB,IAAI,IAAI,SAAA;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,SAAS;SACZ;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE;YACV,SAAS;SACZ;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,aAAa,GAAqB,IAAI,CAAC;QAC3C,IAAI,KAAK,GAAoB,IAAI,CAAC;QAClC,IAAI,MAAM,EAAE;YACR,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAE1B,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBACnD,SAAS;aACZ;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;SAC/B;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;SAC7B;aACI;YACD,YAAY;YACZ,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC1E,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAE5E,IAAM,WAAW,GACb,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;gBACvD,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;YAChE,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,WAAW,EAAE;gBAC1D,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC/B;SACJ;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACjC,OAAO,KAAK,CAAC;SAChB;QAED,mBAAmB;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,iBAAiB;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SACxD;QACD,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhC,UAAU;QACV,IAAI,aAAa,IAAI,KAAK,EAAE;YACxB,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC;SACtC;KACJ;IAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAEvB,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC","sourcesContent":["import { Engine } from \"../engine\";\r\nimport { Camera } from '../../Cameras/camera';\r\nimport { Nullable } from '../../types';\r\nimport { Scene } from '../../scene';\r\n\r\n/**\r\n * Class used to define an additional view for the engine\r\n * @see https://doc.babylonjs.com/divingDeeper/scene/multiCanvas\r\n */\r\nexport class EngineView {\r\n /** Defines the canvas where to render the view */\r\n target: HTMLCanvasElement;\r\n /** Defines an optional camera used to render the view (will use active camera else) */\r\n camera?: Camera;\r\n /** Indicates if the destination view canvas should be cleared before copying the parent canvas. Can help if the scene clear color has alpha < 1 */\r\n clearBeforeCopy?: boolean;\r\n /** Indicates if the view is enabled (true by default) */\r\n enabled: boolean;\r\n /** Defines a custom function to handle canvas size changes. (the canvas to render into is provided to the callback) */\r\n customResize?: (canvas: HTMLCanvasElement) => void;\r\n}\r\n\r\ndeclare module \"../../Engines/engine\" {\r\n export interface Engine {\r\n\r\n /**\r\n * Gets or sets the HTML element to use for attaching events\r\n */\r\n inputElement: Nullable<HTMLElement>;\r\n\r\n /**\r\n * Gets the current engine view\r\n * @see https://doc.babylonjs.com/how_to/multi_canvases\r\n */\r\n activeView: Nullable<EngineView>;\r\n\r\n /** Gets or sets the list of views */\r\n views: EngineView[];\r\n\r\n /**\r\n * Register a new child canvas\r\n * @param canvas defines the canvas to register\r\n * @param camera defines an optional camera to use with this canvas (it will overwrite the scene.camera for this view)\r\n * @param clearBeforeCopy Indicates if the destination view canvas should be cleared before copying the parent canvas. Can help if the scene clear color has alpha < 1\r\n * @returns the associated view\r\n */\r\n registerView(canvas: HTMLCanvasElement, camera?: Camera, clearBeforeCopy?: boolean): EngineView;\r\n\r\n /**\r\n * Remove a registered child canvas\r\n * @param canvas defines the canvas to remove\r\n * @returns the current engine\r\n */\r\n unRegisterView(canvas: HTMLCanvasElement): Engine;\r\n }\r\n}\r\n\r\nEngine.prototype.getInputElement = function (): Nullable<HTMLElement> {\r\n return this.inputElement || this.getRenderingCanvas();\r\n};\r\n\r\nEngine.prototype.registerView = function (canvas: HTMLCanvasElement, camera?: Camera, clearBeforeCopy?: boolean): EngineView {\r\n if (!this.views) {\r\n this.views = [];\r\n }\r\n\r\n for (var view of this.views) {\r\n if (view.target === canvas) {\r\n return view;\r\n }\r\n }\r\n\r\n let masterCanvas = this.getRenderingCanvas();\r\n if (masterCanvas) {\r\n canvas.width = masterCanvas.width;\r\n canvas.height = masterCanvas.height;\r\n }\r\n\r\n let newView = { target: canvas, camera, clearBeforeCopy, enabled: true };\r\n this.views.push(newView);\r\n\r\n if (camera) {\r\n camera.onDisposeObservable.add(() => {\r\n this.unRegisterView(canvas);\r\n });\r\n }\r\n\r\n return newView;\r\n};\r\n\r\nEngine.prototype.unRegisterView = function (canvas: HTMLCanvasElement): Engine {\r\n if (!this.views) {\r\n return this;\r\n }\r\n\r\n for (var view of this.views) {\r\n if (view.target === canvas) {\r\n let index = this.views.indexOf(view);\r\n\r\n if (index !== -1) {\r\n this.views.splice(index, 1);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\nEngine.prototype._renderViews = function () {\r\n if (!this.views) {\r\n return false;\r\n }\r\n\r\n let parent = this.getRenderingCanvas();\r\n\r\n if (!parent) {\r\n return false;\r\n }\r\n\r\n for (var view of this.views) {\r\n if (!view.enabled) {\r\n continue;\r\n }\r\n let canvas = view.target;\r\n let context = canvas.getContext(\"2d\");\r\n if (!context) {\r\n continue;\r\n }\r\n let camera = view.camera;\r\n let previewCamera: Nullable<Camera> = null;\r\n let scene: Nullable<Scene> = null;\r\n if (camera) {\r\n scene = camera.getScene();\r\n\r\n if (scene.activeCameras && scene.activeCameras.length) {\r\n continue;\r\n }\r\n\r\n this.activeView = view;\r\n\r\n previewCamera = scene.activeCamera;\r\n scene.activeCamera = camera;\r\n }\r\n\r\n if (view.customResize) {\r\n view.customResize(canvas);\r\n }\r\n else {\r\n // Set sizes\r\n const width = Math.floor(canvas.clientWidth / this._hardwareScalingLevel);\r\n const height = Math.floor(canvas.clientHeight / this._hardwareScalingLevel);\r\n\r\n const dimsChanged =\r\n width !== canvas.width || parent.width !== canvas.width ||\r\n height !== canvas.height || parent.height !== canvas.height;\r\n if (canvas.clientWidth && canvas.clientHeight && dimsChanged) {\r\n canvas.width = width;\r\n canvas.height = height;\r\n this.setSize(width, height);\r\n }\r\n }\r\n\r\n if (!parent.width || !parent.height) {\r\n return false;\r\n }\r\n\r\n // Render the frame\r\n this._renderFrame();\r\n\r\n this.flushFramebuffer();\r\n\r\n // Copy to target\r\n if (view.clearBeforeCopy) {\r\n context.clearRect(0, 0, parent.width, parent.height);\r\n }\r\n context.drawImage(parent, 0, 0);\r\n\r\n // Restore\r\n if (previewCamera && scene) {\r\n scene.activeCamera = previewCamera;\r\n }\r\n }\r\n\r\n this.activeView = null;\r\n\r\n return true;\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"engine.views.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/Extensions/engine.views.ts"],"names":[],"mappings":"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","sourcesContent":["import { Engine } from \"../engine\";\r\nimport { Camera } from '../../Cameras/camera';\r\nimport { Nullable } from '../../types';\r\nimport { Scene } from '../../scene';\r\n\r\n/**\r\n * Class used to define an additional view for the engine\r\n * @see https://doc.babylonjs.com/divingDeeper/scene/multiCanvas\r\n */\r\nexport class EngineView {\r\n /** Defines the canvas where to render the view */\r\n target: HTMLCanvasElement;\r\n /** Defines an optional camera used to render the view (will use active camera else) */\r\n camera?: Camera;\r\n /** Indicates if the destination view canvas should be cleared before copying the parent canvas. Can help if the scene clear color has alpha < 1 */\r\n clearBeforeCopy?: boolean;\r\n /** Indicates if the view is enabled (true by default) */\r\n enabled: boolean;\r\n /** Defines a custom function to handle canvas size changes. (the canvas to render into is provided to the callback) */\r\n customResize?: (canvas: HTMLCanvasElement) => void;\r\n}\r\n\r\ndeclare module \"../../Engines/engine\" {\r\n export interface Engine {\r\n /** @hidden */\r\n _inputElement: Nullable<HTMLElement>;\r\n\r\n /**\r\n * Gets or sets the HTML element to use for attaching events\r\n */\r\n inputElement: Nullable<HTMLElement>;\r\n\r\n /**\r\n * Observable to handle when a change to inputElement occurs\r\n * @hidden\r\n */\r\n _onEngineViewChanged?: () => void;\r\n\r\n /**\r\n * Gets the current engine view\r\n * @see https://doc.babylonjs.com/how_to/multi_canvases\r\n */\r\n activeView: Nullable<EngineView>;\r\n\r\n /** Gets or sets the list of views */\r\n views: EngineView[];\r\n\r\n /**\r\n * Register a new child canvas\r\n * @param canvas defines the canvas to register\r\n * @param camera defines an optional camera to use with this canvas (it will overwrite the scene.camera for this view)\r\n * @param clearBeforeCopy Indicates if the destination view canvas should be cleared before copying the parent canvas. Can help if the scene clear color has alpha < 1\r\n * @returns the associated view\r\n */\r\n registerView(canvas: HTMLCanvasElement, camera?: Camera, clearBeforeCopy?: boolean): EngineView;\r\n\r\n /**\r\n * Remove a registered child canvas\r\n * @param canvas defines the canvas to remove\r\n * @returns the current engine\r\n */\r\n unRegisterView(canvas: HTMLCanvasElement): Engine;\r\n }\r\n}\r\n\r\nObject.defineProperty(Engine.prototype, \"inputElement\", {\r\n get: function (this: Engine) {\r\n return this._inputElement;\r\n },\r\n set: function (this: Engine, value: HTMLElement) {\r\n if (this._inputElement !== value) {\r\n this._inputElement = value;\r\n this._onEngineViewChanged?.();\r\n }\r\n },\r\n});\r\n\r\nEngine.prototype.getInputElement = function (): Nullable<HTMLElement> {\r\n return this.inputElement || this.getRenderingCanvas();\r\n};\r\n\r\nEngine.prototype.registerView = function (canvas: HTMLCanvasElement, camera?: Camera, clearBeforeCopy?: boolean): EngineView {\r\n if (!this.views) {\r\n this.views = [];\r\n }\r\n\r\n for (var view of this.views) {\r\n if (view.target === canvas) {\r\n return view;\r\n }\r\n }\r\n\r\n let masterCanvas = this.getRenderingCanvas();\r\n if (masterCanvas) {\r\n canvas.width = masterCanvas.width;\r\n canvas.height = masterCanvas.height;\r\n }\r\n\r\n let newView = { target: canvas, camera, clearBeforeCopy, enabled: true };\r\n this.views.push(newView);\r\n\r\n if (camera) {\r\n camera.onDisposeObservable.add(() => {\r\n this.unRegisterView(canvas);\r\n });\r\n }\r\n\r\n return newView;\r\n};\r\n\r\nEngine.prototype.unRegisterView = function (canvas: HTMLCanvasElement): Engine {\r\n if (!this.views) {\r\n return this;\r\n }\r\n\r\n for (var view of this.views) {\r\n if (view.target === canvas) {\r\n let index = this.views.indexOf(view);\r\n\r\n if (index !== -1) {\r\n this.views.splice(index, 1);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\nEngine.prototype._renderViews = function () {\r\n if (!this.views) {\r\n return false;\r\n }\r\n\r\n let parent = this.getRenderingCanvas();\r\n\r\n if (!parent) {\r\n return false;\r\n }\r\n\r\n for (var view of this.views) {\r\n if (!view.enabled) {\r\n continue;\r\n }\r\n let canvas = view.target;\r\n let context = canvas.getContext(\"2d\");\r\n if (!context) {\r\n continue;\r\n }\r\n let camera = view.camera;\r\n let previewCamera: Nullable<Camera> = null;\r\n let scene: Nullable<Scene> = null;\r\n if (camera) {\r\n scene = camera.getScene();\r\n\r\n if (scene.activeCameras && scene.activeCameras.length) {\r\n continue;\r\n }\r\n\r\n this.activeView = view;\r\n\r\n previewCamera = scene.activeCamera;\r\n scene.activeCamera = camera;\r\n }\r\n\r\n if (view.customResize) {\r\n view.customResize(canvas);\r\n }\r\n else {\r\n // Set sizes\r\n const width = Math.floor(canvas.clientWidth / this._hardwareScalingLevel);\r\n const height = Math.floor(canvas.clientHeight / this._hardwareScalingLevel);\r\n\r\n const dimsChanged =\r\n width !== canvas.width || parent.width !== canvas.width ||\r\n height !== canvas.height || parent.height !== canvas.height;\r\n if (canvas.clientWidth && canvas.clientHeight && dimsChanged) {\r\n canvas.width = width;\r\n canvas.height = height;\r\n this.setSize(width, height);\r\n }\r\n }\r\n\r\n if (!parent.width || !parent.height) {\r\n return false;\r\n }\r\n\r\n // Render the frame\r\n this._renderFrame();\r\n\r\n this.flushFramebuffer();\r\n\r\n // Copy to target\r\n if (view.clearBeforeCopy) {\r\n context.clearRect(0, 0, parent.width, parent.height);\r\n }\r\n context.drawImage(parent, 0, 0);\r\n\r\n // Restore\r\n if (previewCamera && scene) {\r\n scene.activeCamera = previewCamera;\r\n }\r\n }\r\n\r\n this.activeView = null;\r\n\r\n return true;\r\n};\r\n"]}
|
|
@@ -60,7 +60,7 @@ WebGPUEngine.prototype.computeDispatch = function (effect, context, bindings, x,
|
|
|
60
60
|
computePass.setBindGroup(i, bindGroup);
|
|
61
61
|
}
|
|
62
62
|
computePass.dispatch(x, y, z);
|
|
63
|
-
computePass.
|
|
63
|
+
computePass.end();
|
|
64
64
|
};
|
|
65
65
|
WebGPUEngine.prototype.releaseComputeEffects = function () {
|
|
66
66
|
for (var name_1 in this._compiledComputeEffects) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.computeShader.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Engines/WebGPU/Extensions/engine.computeShader.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputeEffect, IComputeEffectCreationOptions } from \"../../../Compute/computeEffect\";\r\nimport { IComputeContext } from \"../../../Compute/IComputeContext\";\r\nimport { IComputePipelineContext } from \"../../../Compute/IComputePipelineContext\";\r\nimport { Nullable } from \"../../../types\";\r\nimport { ComputeBindingList, ComputeBindingMapping } from \"../../Extensions/engine.computeShader\";\r\nimport { WebGPUEngine } from \"../../webgpuEngine\";\r\nimport { WebGPUComputeContext } from \"../webgpuComputeContext\";\r\nimport { WebGPUComputePipelineContext } from \"../webgpuComputePipelineContext\";\r\n\r\ndeclare module \"../../webgpuEngine\" {\r\n export interface WebGPUEngine {\r\n /** @hidden */\r\n _createComputePipelineStageDescriptor(computeShader: string, defines: Nullable<string>, entryPoint: string): GPUProgrammableStage;\r\n }\r\n}\r\n\r\nWebGPUEngine.prototype.createComputeContext = function (): IComputeContext | undefined {\r\n return new WebGPUComputeContext(this._device, this._cacheSampler);\r\n};\r\n\r\nWebGPUEngine.prototype.createComputeEffect = function (baseName: any, options: IComputeEffectCreationOptions): ComputeEffect {\r\n const compute = baseName.computeElement || baseName.compute || baseName.computeToken || baseName.computeSource || baseName;\r\n\r\n const name = compute + \"@\" + options.defines;\r\n if (this._compiledComputeEffects[name]) {\r\n var compiledEffect = <ComputeEffect>this._compiledComputeEffects[name];\r\n if (options.onCompiled && compiledEffect.isReady()) {\r\n options.onCompiled(compiledEffect);\r\n }\r\n\r\n return compiledEffect;\r\n }\r\n const effect = new ComputeEffect(baseName, options, this, name);\r\n this._compiledComputeEffects[name] = effect;\r\n\r\n return effect;\r\n};\r\n\r\nWebGPUEngine.prototype.createComputePipelineContext = function (): IComputePipelineContext {\r\n return new WebGPUComputePipelineContext(this);\r\n};\r\n\r\nWebGPUEngine.prototype.areAllComputeEffectsReady = function (): boolean {\r\n for (const key in this._compiledComputeEffects) {\r\n const effect = this._compiledComputeEffects[key];\r\n\r\n if (!effect.isReady()) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nWebGPUEngine.prototype.computeDispatch = function (effect: ComputeEffect, context: IComputeContext, bindings: ComputeBindingList, x: number, y?: number, z?: number, bindingsMapping?: ComputeBindingMapping): void {\r\n if (this._currentRenderTarget) {\r\n // A render target pass is currently in effect (meaning beingRenderPass has been called on the command encoder this._renderTargetEncoder): we are not allowed to open\r\n // another pass on this command encoder (even if it's a compute pass) until endPass has been called, so we need to defer the compute pass for after the current render target pass is closed\r\n this._onAfterUnbindFrameBufferObservable.addOnce(() => {\r\n this.computeDispatch(effect, context, bindings, x, y, z, bindingsMapping);\r\n });\r\n return;\r\n }\r\n\r\n const contextPipeline = effect._pipelineContext as WebGPUComputePipelineContext;\r\n const computeContext = context as WebGPUComputeContext;\r\n\r\n if (!contextPipeline.computePipeline) {\r\n contextPipeline.computePipeline = this._device.createComputePipeline({\r\n compute: contextPipeline.stage!\r\n });\r\n }\r\n\r\n const commandEncoder = this._renderTargetEncoder;\r\n const computePass = commandEncoder.beginComputePass();\r\n\r\n computePass.setPipeline(contextPipeline.computePipeline);\r\n\r\n const bindGroups = computeContext.getBindGroups(bindings, contextPipeline.computePipeline, bindingsMapping);\r\n for (let i = 0; i < bindGroups.length; ++i) {\r\n const bindGroup = bindGroups[i];\r\n if (!bindGroup) {\r\n continue;\r\n }\r\n computePass.setBindGroup(i, bindGroup);\r\n }\r\n\r\n computePass.dispatch(x, y, z);\r\n computePass.endPass();\r\n};\r\n\r\nWebGPUEngine.prototype.releaseComputeEffects = function () {\r\n for (const name in this._compiledComputeEffects) {\r\n const webGPUPipelineContextCompute = this._compiledComputeEffects[name].getPipelineContext() as WebGPUComputePipelineContext;\r\n this._deleteComputePipelineContext(webGPUPipelineContextCompute);\r\n }\r\n\r\n this._compiledComputeEffects = {};\r\n};\r\n\r\nWebGPUEngine.prototype._prepareComputePipelineContext = function (pipelineContext: IComputePipelineContext, computeSourceCode: string, rawComputeSourceCode: string, defines: Nullable<string>, entryPoint: string): void {\r\n const webGpuContext = pipelineContext as WebGPUComputePipelineContext;\r\n\r\n if (this.dbgShowShaderCode) {\r\n console.log(defines);\r\n console.log(computeSourceCode);\r\n }\r\n\r\n webGpuContext.sources = {\r\n compute: computeSourceCode,\r\n rawCompute: rawComputeSourceCode,\r\n };\r\n\r\n webGpuContext.stage = this._createComputePipelineStageDescriptor(computeSourceCode, defines, entryPoint);\r\n};\r\n\r\nWebGPUEngine.prototype._releaseComputeEffect = function (effect: ComputeEffect): void {\r\n if (this._compiledComputeEffects[effect._key]) {\r\n delete this._compiledComputeEffects[effect._key];\r\n\r\n this._deleteComputePipelineContext(effect.getPipelineContext() as WebGPUComputePipelineContext);\r\n }\r\n};\r\n\r\nWebGPUEngine.prototype._rebuildComputeEffects = function (): void {\r\n for (const key in this._compiledComputeEffects) {\r\n const effect = this._compiledComputeEffects[key];\r\n\r\n effect._pipelineContext = null;\r\n effect._wasPreviouslyReady = false;\r\n effect._prepareEffect();\r\n }\r\n};\r\n\r\nWebGPUEngine.prototype._deleteComputePipelineContext = function (pipelineContext: IComputePipelineContext): void {\r\n const webgpuPipelineContext = pipelineContext as WebGPUComputePipelineContext;\r\n if (webgpuPipelineContext) {\r\n pipelineContext.dispose();\r\n }\r\n};\r\n\r\nWebGPUEngine.prototype._createComputePipelineStageDescriptor = function (computeShader: string, defines: Nullable<string>, entryPoint: string): GPUProgrammableStage {\r\n if (defines) {\r\n defines = \"//\" + defines.split(\"\\n\").join(\"\\n//\") + \"\\n\";\r\n } else {\r\n defines = \"\";\r\n }\r\n return {\r\n module: this._device.createShaderModule({\r\n code: defines + computeShader,\r\n }),\r\n entryPoint\r\n };\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"engine.computeShader.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Engines/WebGPU/Extensions/engine.computeShader.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputeEffect, IComputeEffectCreationOptions } from \"../../../Compute/computeEffect\";\r\nimport { IComputeContext } from \"../../../Compute/IComputeContext\";\r\nimport { IComputePipelineContext } from \"../../../Compute/IComputePipelineContext\";\r\nimport { Nullable } from \"../../../types\";\r\nimport { ComputeBindingList, ComputeBindingMapping } from \"../../Extensions/engine.computeShader\";\r\nimport { WebGPUEngine } from \"../../webgpuEngine\";\r\nimport { WebGPUComputeContext } from \"../webgpuComputeContext\";\r\nimport { WebGPUComputePipelineContext } from \"../webgpuComputePipelineContext\";\r\n\r\ndeclare module \"../../webgpuEngine\" {\r\n export interface WebGPUEngine {\r\n /** @hidden */\r\n _createComputePipelineStageDescriptor(computeShader: string, defines: Nullable<string>, entryPoint: string): GPUProgrammableStage;\r\n }\r\n}\r\n\r\nWebGPUEngine.prototype.createComputeContext = function (): IComputeContext | undefined {\r\n return new WebGPUComputeContext(this._device, this._cacheSampler);\r\n};\r\n\r\nWebGPUEngine.prototype.createComputeEffect = function (baseName: any, options: IComputeEffectCreationOptions): ComputeEffect {\r\n const compute = baseName.computeElement || baseName.compute || baseName.computeToken || baseName.computeSource || baseName;\r\n\r\n const name = compute + \"@\" + options.defines;\r\n if (this._compiledComputeEffects[name]) {\r\n var compiledEffect = <ComputeEffect>this._compiledComputeEffects[name];\r\n if (options.onCompiled && compiledEffect.isReady()) {\r\n options.onCompiled(compiledEffect);\r\n }\r\n\r\n return compiledEffect;\r\n }\r\n const effect = new ComputeEffect(baseName, options, this, name);\r\n this._compiledComputeEffects[name] = effect;\r\n\r\n return effect;\r\n};\r\n\r\nWebGPUEngine.prototype.createComputePipelineContext = function (): IComputePipelineContext {\r\n return new WebGPUComputePipelineContext(this);\r\n};\r\n\r\nWebGPUEngine.prototype.areAllComputeEffectsReady = function (): boolean {\r\n for (const key in this._compiledComputeEffects) {\r\n const effect = this._compiledComputeEffects[key];\r\n\r\n if (!effect.isReady()) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nWebGPUEngine.prototype.computeDispatch = function (effect: ComputeEffect, context: IComputeContext, bindings: ComputeBindingList, x: number, y?: number, z?: number, bindingsMapping?: ComputeBindingMapping): void {\r\n if (this._currentRenderTarget) {\r\n // A render target pass is currently in effect (meaning beingRenderPass has been called on the command encoder this._renderTargetEncoder): we are not allowed to open\r\n // another pass on this command encoder (even if it's a compute pass) until endPass has been called, so we need to defer the compute pass for after the current render target pass is closed\r\n this._onAfterUnbindFrameBufferObservable.addOnce(() => {\r\n this.computeDispatch(effect, context, bindings, x, y, z, bindingsMapping);\r\n });\r\n return;\r\n }\r\n\r\n const contextPipeline = effect._pipelineContext as WebGPUComputePipelineContext;\r\n const computeContext = context as WebGPUComputeContext;\r\n\r\n if (!contextPipeline.computePipeline) {\r\n contextPipeline.computePipeline = this._device.createComputePipeline({\r\n compute: contextPipeline.stage!\r\n });\r\n }\r\n\r\n const commandEncoder = this._renderTargetEncoder;\r\n const computePass = commandEncoder.beginComputePass();\r\n\r\n computePass.setPipeline(contextPipeline.computePipeline);\r\n\r\n const bindGroups = computeContext.getBindGroups(bindings, contextPipeline.computePipeline, bindingsMapping);\r\n for (let i = 0; i < bindGroups.length; ++i) {\r\n const bindGroup = bindGroups[i];\r\n if (!bindGroup) {\r\n continue;\r\n }\r\n computePass.setBindGroup(i, bindGroup);\r\n }\r\n\r\n computePass.dispatch(x, y, z);\r\n computePass.end();\r\n};\r\n\r\nWebGPUEngine.prototype.releaseComputeEffects = function () {\r\n for (const name in this._compiledComputeEffects) {\r\n const webGPUPipelineContextCompute = this._compiledComputeEffects[name].getPipelineContext() as WebGPUComputePipelineContext;\r\n this._deleteComputePipelineContext(webGPUPipelineContextCompute);\r\n }\r\n\r\n this._compiledComputeEffects = {};\r\n};\r\n\r\nWebGPUEngine.prototype._prepareComputePipelineContext = function (pipelineContext: IComputePipelineContext, computeSourceCode: string, rawComputeSourceCode: string, defines: Nullable<string>, entryPoint: string): void {\r\n const webGpuContext = pipelineContext as WebGPUComputePipelineContext;\r\n\r\n if (this.dbgShowShaderCode) {\r\n console.log(defines);\r\n console.log(computeSourceCode);\r\n }\r\n\r\n webGpuContext.sources = {\r\n compute: computeSourceCode,\r\n rawCompute: rawComputeSourceCode,\r\n };\r\n\r\n webGpuContext.stage = this._createComputePipelineStageDescriptor(computeSourceCode, defines, entryPoint);\r\n};\r\n\r\nWebGPUEngine.prototype._releaseComputeEffect = function (effect: ComputeEffect): void {\r\n if (this._compiledComputeEffects[effect._key]) {\r\n delete this._compiledComputeEffects[effect._key];\r\n\r\n this._deleteComputePipelineContext(effect.getPipelineContext() as WebGPUComputePipelineContext);\r\n }\r\n};\r\n\r\nWebGPUEngine.prototype._rebuildComputeEffects = function (): void {\r\n for (const key in this._compiledComputeEffects) {\r\n const effect = this._compiledComputeEffects[key];\r\n\r\n effect._pipelineContext = null;\r\n effect._wasPreviouslyReady = false;\r\n effect._prepareEffect();\r\n }\r\n};\r\n\r\nWebGPUEngine.prototype._deleteComputePipelineContext = function (pipelineContext: IComputePipelineContext): void {\r\n const webgpuPipelineContext = pipelineContext as WebGPUComputePipelineContext;\r\n if (webgpuPipelineContext) {\r\n pipelineContext.dispose();\r\n }\r\n};\r\n\r\nWebGPUEngine.prototype._createComputePipelineStageDescriptor = function (computeShader: string, defines: Nullable<string>, entryPoint: string): GPUProgrammableStage {\r\n if (defines) {\r\n defines = \"//\" + defines.split(\"\\n\").join(\"\\n//\") + \"\\n\";\r\n } else {\r\n defines = \"\";\r\n }\r\n return {\r\n module: this._device.createShaderModule({\r\n code: defines + computeShader,\r\n }),\r\n entryPoint\r\n };\r\n};\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuConstants.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuConstants.ts"],"names":[],"mappings":"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","sourcesContent":["/** @hidden */\nexport enum PowerPreference {\n SRGB = \"srgb\"\n}\n\n/** @hidden */\nexport enum PowerPreference {\n LowPower = \"low-power\",\n HighPerformance = \"high-performance\"\n}\n\n/** @hidden */\nexport enum FeatureName {\n DepthClipControl = \"depth-clip-control\",\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n Depth32FloatStencil8 = \"depth32float-stencil8\",\n TextureCompressionBC = \"texture-compression-bc\",\n TextureCompressionETC2 = \"texture-compression-etc2\",\n TextureCompressionASTC = \"texture-compression-astc\",\n TimestampQuery = \"timestamp-query\",\n IndirectFirstInstance = \"indirect-first-instance\",\n}\n\n/** @hidden */\nexport enum BufferUsage {\n MapRead = 1,\n MapWrite = 2,\n CopySrc = 4,\n CopyDst = 8,\n Index = 16,\n Vertex = 32,\n Uniform = 64,\n Storage = 128,\n Indirect = 256,\n QueryResolve = 512\n}\n\n/** @hidden */\nexport enum MapMode {\n Read = 1,\n Write = 2\n}\n\n/** @hidden */\nexport enum TextureDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureUsage {\n CopySrc = 1,\n CopyDst = 2,\n TextureBinding = 4,\n StorageBinding = 8,\n RenderAttachment = 16\n}\n\n/** @hidden */\nexport enum TextureViewDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E2dArray = \"2d-array\",\n Cube = \"cube\",\n CubeArray = \"cube-array\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureAspect {\n All = \"all\",\n StencilOnly = \"stencil-only\",\n DepthOnly = \"depth-only\"\n}\n\n/**\n * Comments taken from https://github.com/gfx-rs/wgpu/blob/master/wgpu-types/src/lib.rs\n * @hidden\n */\nexport enum TextureFormat {\n // 8-bit formats\n R8Unorm = \"r8unorm\", // Red channel only. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n R8Snorm = \"r8snorm\", // Red channel only. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n R8Uint = \"r8uint\", // Red channel only. 8 bit integer per channel. Unsigned in shader.\n R8Sint = \"r8sint\", // Red channel only. 8 bit integer per channel. Signed in shader.\n\n // 16-bit formats\n R16Uint = \"r16uint\", // Red channel only. 16 bit integer per channel. Unsigned in shader.\n R16Sint = \"r16sint\", // Red channel only. 16 bit integer per channel. Signed in shader.\n R16Float = \"r16float\", // Red channel only. 16 bit float per channel. Float in shader.\n RG8Unorm = \"rg8unorm\", // Red and green channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RG8Snorm = \"rg8snorm\", // Red and green channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RG8Uint = \"rg8uint\", // Red and green channels. 8 bit integer per channel. Unsigned in shader.\n RG8Sint = \"rg8sint\", // Red and green channels. 8 bit integer per channel. Signed in shader.\n\n // 32-bit formats\n R32Uint = \"r32uint\", // Red channel only. 32 bit integer per channel. Unsigned in shader.\n R32Sint = \"r32sint\", // Red channel only. 32 bit integer per channel. Signed in shader.\n R32Float = \"r32float\", // Red channel only. 32 bit float per channel. Float in shader.\n RG16Uint = \"rg16uint\", // Red and green channels. 16 bit integer per channel. Unsigned in shader.\n RG16Sint = \"rg16sint\", // Red and green channels. 16 bit integer per channel. Signed in shader.\n RG16Float = \"rg16float\", // Red and green channels. 16 bit float per channel. Float in shader.\n RGBA8Unorm = \"rgba8unorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RGBA8UnormSRGB = \"rgba8unorm-srgb\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n RGBA8Snorm = \"rgba8snorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RGBA8Uint = \"rgba8uint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Unsigned in shader.\n RGBA8Sint = \"rgba8sint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Signed in shader.\n BGRA8Unorm = \"bgra8unorm\", // Blue, green, red, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n BGRA8UnormSRGB = \"bgra8unorm-srgb\", // Blue, green, red, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n // Packed 32-bit formats\n RGB9E5UFloat = \"rgb9e5ufloat\", // Packed unsigned float with 9 bits mantisa for each RGB component, then a common 5 bits exponent\n RGB10A2Unorm = \"rgb10a2unorm\", // Red, green, blue, and alpha channels. 10 bit integer for RGB channels, 2 bit integer for alpha channel. [0, 1023] ([0, 3] for alpha) converted to/from float [0, 1] in shader.\n RG11B10UFloat = \"rg11b10ufloat\", // Red, green, and blue channels. 11 bit float with no sign bit for RG channels. 10 bit float with no sign bit for blue channel. Float in shader.\n\n // 64-bit formats\n RG32Uint = \"rg32uint\", // Red and green channels. 32 bit integer per channel. Unsigned in shader.\n RG32Sint = \"rg32sint\", // Red and green channels. 32 bit integer per channel. Signed in shader.\n RG32Float = \"rg32float\", // Red and green channels. 32 bit float per channel. Float in shader.\n RGBA16Uint = \"rgba16uint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Unsigned in shader.\n RGBA16Sint = \"rgba16sint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Signed in shader.\n RGBA16Float = \"rgba16float\", // Red, green, blue, and alpha channels. 16 bit float per channel. Float in shader.\n\n // 128-bit formats\n RGBA32Uint = \"rgba32uint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Unsigned in shader.\n RGBA32Sint = \"rgba32sint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Signed in shader.\n RGBA32Float = \"rgba32float\", // Red, green, blue, and alpha channels. 32 bit float per channel. Float in shader.\n\n // Depth and stencil formats\n Stencil8 = \"stencil8\",\n Depth16Unorm = \"depth16unorm\",\n Depth24Plus = \"depth24plus\", // Special depth format with at least 24 bit integer depth.\n Depth24PlusStencil8 = \"depth24plus-stencil8\", // Special depth/stencil format with at least 24 bit integer depth and 8 bits integer stencil.\n Depth32Float = \"depth32float\", // Special depth format with 32 bit floating point depth.\n\n // BC compressed formats usable if \"texture-compression-bc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n BC1RGBAUnorm = \"bc1-rgba-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC1RGBAUnormSRGB = \"bc1-rgba-unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC2RGBAUnorm = \"bc2-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC2RGBAUnormSRGB = \"bc2-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC3RGBAUnorm = \"bc3-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC3RGBAUnormSRGB = \"bc3-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC4RUnorm = \"bc4-r-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC4RSnorm = \"bc4-r-snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC5RGUnorm = \"bc5-rg-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC5RGSnorm = \"bc5-rg-snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC6HRGBUFloat = \"bc6h-rgb-ufloat\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit unsigned float RGB. Float in shader. Also known as BPTC (float).\n BC6HRGBFloat = \"bc6h-rgb-float\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit signed float RGB. Float in shader. Also known as BPTC (float).\n BC7RGBAUnorm = \"bc7-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n BC7RGBAUnormSRGB = \"bc7-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ETC2RGB8Unorm = \"etc2-rgb8unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8UnormSRGB = \"etc2-rgb8unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8A1Unorm = \"etc2-rgb8a1unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGB8A1UnormSRGB = \"etc2-rgb8a1unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGBA8Unorm = \"etc2-rgba8unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n ETC2RGBA8UnormSRGB = \"etc2-rgba8unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n EACR11Unorm = \"eac-r11unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACR11Snorm = \"eac-r11snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACRG11Unorm = \"eac-rg11unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n EACRG11Snorm = \"eac-rg11snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ASTC4x4Unorm = \"astc-4x4-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC4x4UnormSRGB = \"astc-4x4-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4Unorm = \"astc-5x4-unorm\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4UnormSRGB = \"astc-5x4-unorm-srgb\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5Unorm = \"astc-5x5-unorm\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5UnormSRGB = \"astc-5x5-unorm-srgb\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5Unorm = \"astc-6x5-unorm\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5UnormSRGB = \"astc-6x5-unorm-srgb\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6Unorm = \"astc-6x6-unorm\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6UnormSRGB = \"astc-6x6-unorm-srgb\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5Unorm = \"astc-8x5-unorm\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5UnormSRGB = \"astc-8x5-unorm-srgb\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6Unorm = \"astc-8x6-unorm\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6UnormSRGB = \"astc-8x6-unorm-srgb\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8Unorm = \"astc-8x8-unorm\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8UnormSRGB = \"astc-8x8-unorm-srgb\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5Unorm = \"astc-10x5-unorm\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5UnormSRGB = \"astc-10x5-unorm-srgb\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6Unorm = \"astc-10x6-unorm\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6UnormSRGB = \"astc-10x6-unorm-srgb\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8Unorm = \"astc-10x8-unorm\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8UnormSRGB = \"astc-10x8-unorm-srgb\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10Unorm = \"astc-10x10-unorm\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10UnormSRGB = \"astc-10x10-unorm-srgb\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10Unorm = \"astc-12x10-unorm\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10UnormSRGB = \"astc-12x10-unorm-srgb\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12Unorm = \"astc-12x12-unorm\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12UnormSRGB = \"astc-12x12-unorm-srgb\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n\n // \"depth24unorm-stencil8\" feature\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n\n // \"depth32float-stencil8\" feature\n Depth32FloatStencil8 = \"depth32float-stencil8\"\n}\n\n/** @hidden */\nexport enum AddressMode {\n ClampToEdge = \"clamp-to-edge\",\n Repeat = \"repeat\",\n MirrorRepeat = \"mirror-repeat\"\n}\n\n/** @hidden */\nexport enum FilterMode {\n Nearest = \"nearest\",\n Linear = \"linear\"\n}\n\n/** @hidden */\nexport enum CompareFunction {\n Never = \"never\",\n Less = \"less\",\n Equal = \"equal\",\n LessEqual = \"less-equal\",\n Greater = \"greater\",\n NotEqual = \"not-equal\",\n GreaterEqual = \"greater-equal\",\n Always = \"always\"\n}\n\n/** @hidden */\nexport enum ShaderStage {\n Vertex = 1,\n Fragment = 2,\n Compute = 4\n}\n\n/** @hidden */\nexport enum BufferBindingType {\n Uniform = \"uniform\",\n Storage = \"storage\",\n ReadOnlyStorage = \"read-only-storage\"\n}\n\n/** @hidden */\nexport enum SamplerBindingType {\n Filtering = \"filtering\",\n NonFiltering = \"non-filtering\",\n Comparison = \"comparison\"\n}\n\n/** @hidden */\nexport enum TextureSampleType {\n Float = \"float\",\n UnfilterableFloat = \"unfilterable-float\",\n Depth = \"depth\",\n Sint = \"sint\",\n Uint = \"uint\"\n}\n\n/** @hidden */\nexport enum StorageTextureAccess {\n WriteOnly = \"write-only\"\n}\n\n/** @hidden */\nexport enum CompilationMessageType {\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\"\n}\n\n/** @hidden */\nexport enum PrimitiveTopology {\n PointList = \"point-list\",\n LineList = \"line-list\",\n LineStrip = \"line-strip\",\n TriangleList = \"triangle-list\",\n TriangleStrip = \"triangle-strip\"\n}\n\n/** @hidden */\nexport enum FrontFace {\n CCW = \"ccw\",\n CW = \"cw\"\n}\n\n/** @hidden */\nexport enum CullMode {\n None = \"none\",\n Front = \"front\",\n Back = \"back\"\n}\n\n/** @hidden */\nexport enum ColorWrite {\n Red = 1,\n Green = 2,\n Blue = 4,\n Alpha = 8,\n All = 15\n}\n\n/** @hidden */\nexport enum BlendFactor {\n Zero = \"zero\",\n One = \"one\",\n Src = \"src\",\n OneMinusSrc = \"one-minus-src\",\n SrcAlpha = \"src-alpha\",\n OneMinusSrcAlpha = \"one-minus-src-alpha\",\n Dst = \"dst\",\n OneMinusDst = \"one-minus-dst\",\n DstAlpha = \"dst-alpha\",\n OneMinusDstAlpha = \"one-minus-dst-alpha\",\n SrcAlphaSaturated = \"src-alpha-saturated\",\n Constant = \"constant\",\n OneMinusConstant = \"one-minus-constant\"\n}\n\n/** @hidden */\nexport enum BlendOperation {\n Add = \"add\",\n Subtract = \"subtract\",\n ReverseSubtract = \"reverse-subtract\",\n Min = \"min\",\n Max = \"max\"\n}\n\n/** @hidden */\nexport enum StencilOperation {\n Keep = \"keep\",\n Zero = \"zero\",\n Replace = \"replace\",\n Invert = \"invert\",\n IncrementClamp = \"increment-clamp\",\n DecrementClamp = \"decrement-clamp\",\n IncrementWrap = \"increment-wrap\",\n DecrementWrap = \"decrement-wrap\"\n}\n\n/** @hidden */\nexport enum IndexFormat {\n Uint16 = \"uint16\",\n Uint32 = \"uint32\"\n}\n\n/** @hidden */\nexport enum VertexFormat {\n Uint8x2 = \"uint8x2\",\n Uint8x4 = \"uint8x4\",\n Sint8x2 = \"sint8x2\",\n Sint8x4 = \"sint8x4\",\n Unorm8x2 = \"unorm8x2\",\n Unorm8x4 = \"unorm8x4\",\n Snorm8x2 = \"snorm8x2\",\n Snorm8x4 = \"snorm8x4\",\n Uint16x2 = \"uint16x2\",\n Uint16x4 = \"uint16x4\",\n Sint16x2 = \"sint16x2\",\n Sint16x4 = \"sint16x4\",\n Unorm16x2 = \"unorm16x2\",\n Unorm16x4 = \"unorm16x4\",\n Snorm16x2 = \"snorm16x2\",\n Snorm16x4 = \"snorm16x4\",\n Float16x2 = \"float16x2\",\n Float16x4 = \"float16x4\",\n Float32 = \"float32\",\n Float32x2 = \"float32x2\",\n Float32x3 = \"float32x3\",\n Float32x4 = \"float32x4\",\n Uint32 = \"uint32\",\n Uint32x2 = \"uint32x2\",\n Uint32x3 = \"uint32x3\",\n Uint32x4 = \"uint32x4\",\n Sint32 = \"sint32\",\n Sint32x2 = \"sint32x2\",\n Sint32x3 = \"sint32x3\",\n Sint32x4 = \"sint32x4\"\n}\n\n/** @hidden */\nexport enum InputStepMode {\n Vertex = \"vertex\",\n Instance = \"instance\"\n}\n\n/** @hidden */\nexport enum ComputePassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum RenderPassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum LoadOp {\n Load = \"load\"\n}\n\n/** @hidden */\nexport enum StoreOp {\n Store = \"store\",\n Discard = \"discard\"\n}\n\n/** @hidden */\nexport enum QueryType {\n Occlusion = \"occlusion\",\n Timestamp = \"timestamp\"\n}\n\n/** @hidden */\nexport enum CanvasCompositingAlphaMode {\n Opaque = \"opaque\",\n Premultiplied = \"premultiplied\"\n}\n\n/** @hidden */\nexport enum DeviceLostReason {\n Destroyed = \"destroyed\"\n}\n\n/** @hidden */\nexport enum ErrorFilter {\n OutOfMemory = \"out-of-memory\",\n Validation = \"validation\"\n}\n"]}
|
|
1
|
+
{"version":3,"file":"webgpuConstants.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuConstants.ts"],"names":[],"mappings":"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","sourcesContent":["/** @hidden */\nexport enum PowerPreference {\n SRGB = \"srgb\"\n}\n\n/** @hidden */\nexport enum PowerPreference {\n LowPower = \"low-power\",\n HighPerformance = \"high-performance\"\n}\n\n/** @hidden */\nexport enum FeatureName {\n DepthClipControl = \"depth-clip-control\",\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n Depth32FloatStencil8 = \"depth32float-stencil8\",\n TextureCompressionBC = \"texture-compression-bc\",\n TextureCompressionETC2 = \"texture-compression-etc2\",\n TextureCompressionASTC = \"texture-compression-astc\",\n TimestampQuery = \"timestamp-query\",\n IndirectFirstInstance = \"indirect-first-instance\",\n}\n\n/** @hidden */\nexport enum BufferUsage {\n MapRead = 1,\n MapWrite = 2,\n CopySrc = 4,\n CopyDst = 8,\n Index = 16,\n Vertex = 32,\n Uniform = 64,\n Storage = 128,\n Indirect = 256,\n QueryResolve = 512\n}\n\n/** @hidden */\nexport enum MapMode {\n Read = 1,\n Write = 2\n}\n\n/** @hidden */\nexport enum TextureDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureUsage {\n CopySrc = 1,\n CopyDst = 2,\n TextureBinding = 4,\n StorageBinding = 8,\n RenderAttachment = 16\n}\n\n/** @hidden */\nexport enum TextureViewDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E2dArray = \"2d-array\",\n Cube = \"cube\",\n CubeArray = \"cube-array\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureAspect {\n All = \"all\",\n StencilOnly = \"stencil-only\",\n DepthOnly = \"depth-only\"\n}\n\n/**\n * Comments taken from https://github.com/gfx-rs/wgpu/blob/master/wgpu-types/src/lib.rs\n * @hidden\n */\nexport enum TextureFormat {\n // 8-bit formats\n R8Unorm = \"r8unorm\", // Red channel only. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n R8Snorm = \"r8snorm\", // Red channel only. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n R8Uint = \"r8uint\", // Red channel only. 8 bit integer per channel. Unsigned in shader.\n R8Sint = \"r8sint\", // Red channel only. 8 bit integer per channel. Signed in shader.\n\n // 16-bit formats\n R16Uint = \"r16uint\", // Red channel only. 16 bit integer per channel. Unsigned in shader.\n R16Sint = \"r16sint\", // Red channel only. 16 bit integer per channel. Signed in shader.\n R16Float = \"r16float\", // Red channel only. 16 bit float per channel. Float in shader.\n RG8Unorm = \"rg8unorm\", // Red and green channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RG8Snorm = \"rg8snorm\", // Red and green channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RG8Uint = \"rg8uint\", // Red and green channels. 8 bit integer per channel. Unsigned in shader.\n RG8Sint = \"rg8sint\", // Red and green channels. 8 bit integer per channel. Signed in shader.\n\n // 32-bit formats\n R32Uint = \"r32uint\", // Red channel only. 32 bit integer per channel. Unsigned in shader.\n R32Sint = \"r32sint\", // Red channel only. 32 bit integer per channel. Signed in shader.\n R32Float = \"r32float\", // Red channel only. 32 bit float per channel. Float in shader.\n RG16Uint = \"rg16uint\", // Red and green channels. 16 bit integer per channel. Unsigned in shader.\n RG16Sint = \"rg16sint\", // Red and green channels. 16 bit integer per channel. Signed in shader.\n RG16Float = \"rg16float\", // Red and green channels. 16 bit float per channel. Float in shader.\n RGBA8Unorm = \"rgba8unorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RGBA8UnormSRGB = \"rgba8unorm-srgb\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n RGBA8Snorm = \"rgba8snorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RGBA8Uint = \"rgba8uint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Unsigned in shader.\n RGBA8Sint = \"rgba8sint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Signed in shader.\n BGRA8Unorm = \"bgra8unorm\", // Blue, green, red, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n BGRA8UnormSRGB = \"bgra8unorm-srgb\", // Blue, green, red, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n // Packed 32-bit formats\n RGB9E5UFloat = \"rgb9e5ufloat\", // Packed unsigned float with 9 bits mantisa for each RGB component, then a common 5 bits exponent\n RGB10A2Unorm = \"rgb10a2unorm\", // Red, green, blue, and alpha channels. 10 bit integer for RGB channels, 2 bit integer for alpha channel. [0, 1023] ([0, 3] for alpha) converted to/from float [0, 1] in shader.\n RG11B10UFloat = \"rg11b10ufloat\", // Red, green, and blue channels. 11 bit float with no sign bit for RG channels. 10 bit float with no sign bit for blue channel. Float in shader.\n\n // 64-bit formats\n RG32Uint = \"rg32uint\", // Red and green channels. 32 bit integer per channel. Unsigned in shader.\n RG32Sint = \"rg32sint\", // Red and green channels. 32 bit integer per channel. Signed in shader.\n RG32Float = \"rg32float\", // Red and green channels. 32 bit float per channel. Float in shader.\n RGBA16Uint = \"rgba16uint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Unsigned in shader.\n RGBA16Sint = \"rgba16sint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Signed in shader.\n RGBA16Float = \"rgba16float\", // Red, green, blue, and alpha channels. 16 bit float per channel. Float in shader.\n\n // 128-bit formats\n RGBA32Uint = \"rgba32uint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Unsigned in shader.\n RGBA32Sint = \"rgba32sint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Signed in shader.\n RGBA32Float = \"rgba32float\", // Red, green, blue, and alpha channels. 32 bit float per channel. Float in shader.\n\n // Depth and stencil formats\n Stencil8 = \"stencil8\",\n Depth16Unorm = \"depth16unorm\",\n Depth24Plus = \"depth24plus\", // Special depth format with at least 24 bit integer depth.\n Depth24PlusStencil8 = \"depth24plus-stencil8\", // Special depth/stencil format with at least 24 bit integer depth and 8 bits integer stencil.\n Depth32Float = \"depth32float\", // Special depth format with 32 bit floating point depth.\n\n // BC compressed formats usable if \"texture-compression-bc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n BC1RGBAUnorm = \"bc1-rgba-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC1RGBAUnormSRGB = \"bc1-rgba-unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC2RGBAUnorm = \"bc2-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC2RGBAUnormSRGB = \"bc2-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC3RGBAUnorm = \"bc3-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC3RGBAUnormSRGB = \"bc3-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC4RUnorm = \"bc4-r-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC4RSnorm = \"bc4-r-snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC5RGUnorm = \"bc5-rg-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC5RGSnorm = \"bc5-rg-snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC6HRGBUFloat = \"bc6h-rgb-ufloat\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit unsigned float RGB. Float in shader. Also known as BPTC (float).\n BC6HRGBFloat = \"bc6h-rgb-float\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit signed float RGB. Float in shader. Also known as BPTC (float).\n BC7RGBAUnorm = \"bc7-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n BC7RGBAUnormSRGB = \"bc7-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ETC2RGB8Unorm = \"etc2-rgb8unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8UnormSRGB = \"etc2-rgb8unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8A1Unorm = \"etc2-rgb8a1unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGB8A1UnormSRGB = \"etc2-rgb8a1unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGBA8Unorm = \"etc2-rgba8unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n ETC2RGBA8UnormSRGB = \"etc2-rgba8unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n EACR11Unorm = \"eac-r11unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACR11Snorm = \"eac-r11snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACRG11Unorm = \"eac-rg11unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n EACRG11Snorm = \"eac-rg11snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ASTC4x4Unorm = \"astc-4x4-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC4x4UnormSRGB = \"astc-4x4-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4Unorm = \"astc-5x4-unorm\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4UnormSRGB = \"astc-5x4-unorm-srgb\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5Unorm = \"astc-5x5-unorm\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5UnormSRGB = \"astc-5x5-unorm-srgb\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5Unorm = \"astc-6x5-unorm\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5UnormSRGB = \"astc-6x5-unorm-srgb\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6Unorm = \"astc-6x6-unorm\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6UnormSRGB = \"astc-6x6-unorm-srgb\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5Unorm = \"astc-8x5-unorm\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5UnormSRGB = \"astc-8x5-unorm-srgb\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6Unorm = \"astc-8x6-unorm\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6UnormSRGB = \"astc-8x6-unorm-srgb\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8Unorm = \"astc-8x8-unorm\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8UnormSRGB = \"astc-8x8-unorm-srgb\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5Unorm = \"astc-10x5-unorm\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5UnormSRGB = \"astc-10x5-unorm-srgb\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6Unorm = \"astc-10x6-unorm\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6UnormSRGB = \"astc-10x6-unorm-srgb\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8Unorm = \"astc-10x8-unorm\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8UnormSRGB = \"astc-10x8-unorm-srgb\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10Unorm = \"astc-10x10-unorm\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10UnormSRGB = \"astc-10x10-unorm-srgb\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10Unorm = \"astc-12x10-unorm\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10UnormSRGB = \"astc-12x10-unorm-srgb\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12Unorm = \"astc-12x12-unorm\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12UnormSRGB = \"astc-12x12-unorm-srgb\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n\n // \"depth24unorm-stencil8\" feature\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n\n // \"depth32float-stencil8\" feature\n Depth32FloatStencil8 = \"depth32float-stencil8\"\n}\n\n/** @hidden */\nexport enum AddressMode {\n ClampToEdge = \"clamp-to-edge\",\n Repeat = \"repeat\",\n MirrorRepeat = \"mirror-repeat\"\n}\n\n/** @hidden */\nexport enum FilterMode {\n Nearest = \"nearest\",\n Linear = \"linear\"\n}\n\n/** @hidden */\nexport enum CompareFunction {\n Never = \"never\",\n Less = \"less\",\n Equal = \"equal\",\n LessEqual = \"less-equal\",\n Greater = \"greater\",\n NotEqual = \"not-equal\",\n GreaterEqual = \"greater-equal\",\n Always = \"always\"\n}\n\n/** @hidden */\nexport enum ShaderStage {\n Vertex = 1,\n Fragment = 2,\n Compute = 4\n}\n\n/** @hidden */\nexport enum BufferBindingType {\n Uniform = \"uniform\",\n Storage = \"storage\",\n ReadOnlyStorage = \"read-only-storage\"\n}\n\n/** @hidden */\nexport enum SamplerBindingType {\n Filtering = \"filtering\",\n NonFiltering = \"non-filtering\",\n Comparison = \"comparison\"\n}\n\n/** @hidden */\nexport enum TextureSampleType {\n Float = \"float\",\n UnfilterableFloat = \"unfilterable-float\",\n Depth = \"depth\",\n Sint = \"sint\",\n Uint = \"uint\"\n}\n\n/** @hidden */\nexport enum StorageTextureAccess {\n WriteOnly = \"write-only\"\n}\n\n/** @hidden */\nexport enum CompilationMessageType {\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\"\n}\n\n/** @hidden */\nexport enum PrimitiveTopology {\n PointList = \"point-list\",\n LineList = \"line-list\",\n LineStrip = \"line-strip\",\n TriangleList = \"triangle-list\",\n TriangleStrip = \"triangle-strip\"\n}\n\n/** @hidden */\nexport enum FrontFace {\n CCW = \"ccw\",\n CW = \"cw\"\n}\n\n/** @hidden */\nexport enum CullMode {\n None = \"none\",\n Front = \"front\",\n Back = \"back\"\n}\n\n/** @hidden */\nexport enum ColorWrite {\n Red = 1,\n Green = 2,\n Blue = 4,\n Alpha = 8,\n All = 15\n}\n\n/** @hidden */\nexport enum BlendFactor {\n Zero = \"zero\",\n One = \"one\",\n Src = \"src\",\n OneMinusSrc = \"one-minus-src\",\n SrcAlpha = \"src-alpha\",\n OneMinusSrcAlpha = \"one-minus-src-alpha\",\n Dst = \"dst\",\n OneMinusDst = \"one-minus-dst\",\n DstAlpha = \"dst-alpha\",\n OneMinusDstAlpha = \"one-minus-dst-alpha\",\n SrcAlphaSaturated = \"src-alpha-saturated\",\n Constant = \"constant\",\n OneMinusConstant = \"one-minus-constant\"\n}\n\n/** @hidden */\nexport enum BlendOperation {\n Add = \"add\",\n Subtract = \"subtract\",\n ReverseSubtract = \"reverse-subtract\",\n Min = \"min\",\n Max = \"max\"\n}\n\n/** @hidden */\nexport enum StencilOperation {\n Keep = \"keep\",\n Zero = \"zero\",\n Replace = \"replace\",\n Invert = \"invert\",\n IncrementClamp = \"increment-clamp\",\n DecrementClamp = \"decrement-clamp\",\n IncrementWrap = \"increment-wrap\",\n DecrementWrap = \"decrement-wrap\"\n}\n\n/** @hidden */\nexport enum IndexFormat {\n Uint16 = \"uint16\",\n Uint32 = \"uint32\"\n}\n\n/** @hidden */\nexport enum VertexFormat {\n Uint8x2 = \"uint8x2\",\n Uint8x4 = \"uint8x4\",\n Sint8x2 = \"sint8x2\",\n Sint8x4 = \"sint8x4\",\n Unorm8x2 = \"unorm8x2\",\n Unorm8x4 = \"unorm8x4\",\n Snorm8x2 = \"snorm8x2\",\n Snorm8x4 = \"snorm8x4\",\n Uint16x2 = \"uint16x2\",\n Uint16x4 = \"uint16x4\",\n Sint16x2 = \"sint16x2\",\n Sint16x4 = \"sint16x4\",\n Unorm16x2 = \"unorm16x2\",\n Unorm16x4 = \"unorm16x4\",\n Snorm16x2 = \"snorm16x2\",\n Snorm16x4 = \"snorm16x4\",\n Float16x2 = \"float16x2\",\n Float16x4 = \"float16x4\",\n Float32 = \"float32\",\n Float32x2 = \"float32x2\",\n Float32x3 = \"float32x3\",\n Float32x4 = \"float32x4\",\n Uint32 = \"uint32\",\n Uint32x2 = \"uint32x2\",\n Uint32x3 = \"uint32x3\",\n Uint32x4 = \"uint32x4\",\n Sint32 = \"sint32\",\n Sint32x2 = \"sint32x2\",\n Sint32x3 = \"sint32x3\",\n Sint32x4 = \"sint32x4\"\n}\n\n/** @hidden */\nexport enum InputStepMode {\n Vertex = \"vertex\",\n Instance = \"instance\"\n}\n\n/** @hidden */\nexport enum ComputePassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum RenderPassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum LoadOp {\n Load = \"load\",\n Clear = \"clear\"\n}\n\n/** @hidden */\nexport enum StoreOp {\n Store = \"store\",\n Discard = \"discard\"\n}\n\n/** @hidden */\nexport enum QueryType {\n Occlusion = \"occlusion\",\n Timestamp = \"timestamp\"\n}\n\n/** @hidden */\nexport enum CanvasCompositingAlphaMode {\n Opaque = \"opaque\",\n Premultiplied = \"premultiplied\"\n}\n\n/** @hidden */\nexport enum DeviceLostReason {\n Destroyed = \"destroyed\"\n}\n\n/** @hidden */\nexport enum ErrorFilter {\n OutOfMemory = \"out-of-memory\",\n Validation = \"validation\"\n}\n"]}
|
|
@@ -832,7 +832,7 @@ var WebGPUTextureHelper = /** @class */ (function () {
|
|
|
832
832
|
arrayLayerCount: 1,
|
|
833
833
|
baseArrayLayer: 0,
|
|
834
834
|
}),
|
|
835
|
-
|
|
835
|
+
loadOp: WebGPUConstants.LoadOp.Load,
|
|
836
836
|
storeOp: WebGPUConstants.StoreOp.Store,
|
|
837
837
|
}],
|
|
838
838
|
};
|
|
@@ -866,7 +866,7 @@ var WebGPUTextureHelper = /** @class */ (function () {
|
|
|
866
866
|
passEncoder.setPipeline(pipeline);
|
|
867
867
|
passEncoder.setBindGroup(0, bindGroup);
|
|
868
868
|
passEncoder.draw(4, 1, 0, 0);
|
|
869
|
-
passEncoder.
|
|
869
|
+
passEncoder.end();
|
|
870
870
|
commandEncoder.copyTextureToTexture({
|
|
871
871
|
texture: outputTexture,
|
|
872
872
|
}, {
|
|
@@ -920,7 +920,7 @@ var WebGPUTextureHelper = /** @class */ (function () {
|
|
|
920
920
|
passEncoder.setPipeline(pipeline);
|
|
921
921
|
passEncoder.setBindGroup(0, bindGroup);
|
|
922
922
|
passEncoder.draw(4, 1, 0, 0);
|
|
923
|
-
passEncoder.
|
|
923
|
+
passEncoder.end();
|
|
924
924
|
(_d = (_c = commandEncoder).popDebugGroup) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
925
925
|
if (useOwnCommandEncoder) {
|
|
926
926
|
this._device.queue.submit([commandEncoder.finish()]);
|
|
@@ -1068,7 +1068,7 @@ var WebGPUTextureHelper = /** @class */ (function () {
|
|
|
1068
1068
|
arrayLayerCount: 1,
|
|
1069
1069
|
baseArrayLayer: faceIndex,
|
|
1070
1070
|
}),
|
|
1071
|
-
|
|
1071
|
+
loadOp: WebGPUConstants.LoadOp.Load,
|
|
1072
1072
|
storeOp: WebGPUConstants.StoreOp.Store,
|
|
1073
1073
|
}],
|
|
1074
1074
|
};
|
|
@@ -1101,7 +1101,7 @@ var WebGPUTextureHelper = /** @class */ (function () {
|
|
|
1101
1101
|
passEncoder.setPipeline(pipeline);
|
|
1102
1102
|
passEncoder.setBindGroup(0, bindGroup);
|
|
1103
1103
|
passEncoder.draw(4, 1, 0, 0);
|
|
1104
|
-
passEncoder.
|
|
1104
|
+
passEncoder.end();
|
|
1105
1105
|
}
|
|
1106
1106
|
(_h = (_g = commandEncoder).popDebugGroup) === null || _h === void 0 ? void 0 : _h.call(_g);
|
|
1107
1107
|
if (useOwnCommandEncoder) {
|