@onerjs/core 8.54.5 → 8.54.6
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/Engines/Native/nativeHelpers.js +5 -0
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/abstractEngine.pure.js +2 -2
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/engineCapabilities.d.ts +5 -0
- package/Engines/engineCapabilities.js.map +1 -1
- package/Engines/thinNativeEngine.pure.js +23 -4
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/webgpuEngine.pure.js +1 -0
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.d.ts +3 -1
- package/Materials/Node/nodeMaterial.pure.js +18 -1
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Textures/envCubeTexture.pure.js +7 -2
- package/Materials/Textures/envCubeTexture.pure.js.map +1 -1
- package/Materials/materialHelper.functions.d.ts +14 -0
- package/Materials/materialHelper.functions.js +67 -0
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Maths/math.vector.pure.d.ts +1 -1
- package/Maths/math.vector.pure.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +1 -0
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/mesh.pure.js +5 -0
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/transformNode.pure.js +1 -0
- package/Meshes/transformNode.pure.js.map +1 -1
- package/Misc/areaLightsTextureTools.js +1 -1
- package/Misc/areaLightsTextureTools.js.map +1 -1
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/fsr1RenderingPipeline.d.ts +79 -0
- package/PostProcesses/RenderPipeline/Pipelines/fsr1RenderingPipeline.js +171 -0
- package/PostProcesses/RenderPipeline/Pipelines/fsr1RenderingPipeline.js.map +1 -0
- package/PostProcesses/RenderPipeline/Pipelines/index.d.ts +5 -0
- package/PostProcesses/RenderPipeline/Pipelines/index.js +6 -0
- package/PostProcesses/RenderPipeline/Pipelines/index.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/pure.d.ts +1 -0
- package/PostProcesses/RenderPipeline/Pipelines/pure.js +1 -0
- package/PostProcesses/RenderPipeline/Pipelines/pure.js.map +1 -1
- package/PostProcesses/thinFSR1SharpenPostProcess.d.ts +32 -0
- package/PostProcesses/thinFSR1SharpenPostProcess.js +58 -0
- package/PostProcesses/thinFSR1SharpenPostProcess.js.map +1 -0
- package/PostProcesses/thinFSR1UpscalePostProcess.d.ts +37 -0
- package/PostProcesses/thinFSR1UpscalePostProcess.js +68 -0
- package/PostProcesses/thinFSR1UpscalePostProcess.js.map +1 -0
- package/Shaders/ShadersInclude/ffxFunctions.d.ts +5 -0
- package/Shaders/ShadersInclude/ffxFunctions.js +18 -0
- package/Shaders/ShadersInclude/ffxFunctions.js.map +1 -0
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +2 -2
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrIblFunctions.js +1 -6
- package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/Shaders/fsr1Sharpen.fragment.d.ts +5 -0
- package/Shaders/fsr1Sharpen.fragment.js +26 -0
- package/Shaders/fsr1Sharpen.fragment.js.map +1 -0
- package/Shaders/fsr1Upscale.fragment.d.ts +5 -0
- package/Shaders/fsr1Upscale.fragment.js +77 -0
- package/Shaders/fsr1Upscale.fragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/ffxFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/ffxFunctions.js +18 -0
- package/ShadersWGSL/ShadersInclude/ffxFunctions.js.map +1 -0
- package/ShadersWGSL/fsr1Sharpen.fragment.d.ts +5 -0
- package/ShadersWGSL/fsr1Sharpen.fragment.js +34 -0
- package/ShadersWGSL/fsr1Sharpen.fragment.js.map +1 -0
- package/ShadersWGSL/fsr1Upscale.fragment.d.ts +5 -0
- package/ShadersWGSL/fsr1Upscale.fragment.js +68 -0
- package/ShadersWGSL/fsr1Upscale.fragment.js.map +1 -0
- package/package.json +1 -1
|
@@ -296,6 +296,11 @@ function _getFallbackAlphaMode(mode, unsupportedName, fallback = _native.Engine.
|
|
|
296
296
|
}
|
|
297
297
|
export function getNativeAlphaMode(mode) {
|
|
298
298
|
switch (mode) {
|
|
299
|
+
// AbstractEngine initializes/resets _alphaMode to -1 as an "unset" sentinel (see
|
|
300
|
+
// abstractEngine.pure.ts). WebGL/WebGPU tolerate restoring that sentinel via setAlphaMode(-1)
|
|
301
|
+
// (e.g. OutlineRenderer._afterRenderingMesh saving/restoring getAlphaMode()); treat it as
|
|
302
|
+
// ALPHA_DISABLE here so the native path doesn't throw on the transient reset value.
|
|
303
|
+
case -1:
|
|
299
304
|
case 0:
|
|
300
305
|
return _native.Engine.ALPHA_DISABLE;
|
|
301
306
|
case 1:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativeHelpers.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/Native/nativeHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { ErrorCodes, RuntimeError } from \"core/Misc/error\";\r\nimport { Logger } from \"core/Misc/logger\";\r\nimport { Constants } from \"../constants\";\r\nimport { type INative } from \"./nativeInterfaces\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer.pure\";\r\n\r\ndeclare const _native: INative;\r\n\r\nexport function getNativeTextureFormat(format: number, type: number): number {\r\n switch (format) {\r\n // Depth (type is ignored)\r\n case Constants.TEXTUREFORMAT_DEPTH16:\r\n return _native.Engine.TEXTURE_FORMAT_D16;\r\n case Constants.TEXTUREFORMAT_DEPTH24:\r\n return _native.Engine.TEXTURE_FORMAT_D24;\r\n case Constants.TEXTUREFORMAT_DEPTH24_STENCIL8:\r\n return _native.Engine.TEXTURE_FORMAT_D24S8;\r\n case Constants.TEXTUREFORMAT_DEPTH32_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_D32F;\r\n\r\n // Compressed (type is ignored)\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM:\r\n return _native.Engine.TEXTURE_FORMAT_BC7;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_BC6H;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5:\r\n return _native.Engine.TEXTURE_FORMAT_BC3;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3:\r\n return _native.Engine.TEXTURE_FORMAT_BC2;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1:\r\n return _native.Engine.TEXTURE_FORMAT_BC1;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1:\r\n return _native.Engine.TEXTURE_FORMAT_BC1;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC4x4;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x4:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC5x4;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x5:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC5x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x5:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC6x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x6:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC6x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x5:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC8x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x6:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC8x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x8:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC8x8;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x5:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC10x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x6:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC10x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x8:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC10x8;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x10:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC10x10;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x10:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC12x10;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x12:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC12x12;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL:\r\n return _native.Engine.TEXTURE_FORMAT_ETC1;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2:\r\n return _native.Engine.TEXTURE_FORMAT_ETC2;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC:\r\n return _native.Engine.TEXTURE_FORMAT_ETC2A;\r\n\r\n case Constants.TEXTUREFORMAT_RGB: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RGB8;\r\n case Constants.TEXTURETYPE_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RGB8S;\r\n case Constants.TEXTURETYPE_INT:\r\n return _native.Engine.TEXTURE_FORMAT_RGB8I;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_RGB8U;\r\n }\r\n break;\r\n }\r\n\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA32U;\r\n }\r\n break;\r\n }\r\n\r\n case Constants.TEXTUREFORMAT_RGBA: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA8;\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA32F;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA16F;\r\n case Constants.TEXTURETYPE_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA8S;\r\n case Constants.TEXTURETYPE_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA16I;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA16U;\r\n case Constants.TEXTURETYPE_INT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA32I;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA32U;\r\n }\r\n break;\r\n }\r\n case Constants.TEXTUREFORMAT_R: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_R8;\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_R32F;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_R16F;\r\n case Constants.TEXTURETYPE_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_R8S;\r\n case Constants.TEXTURETYPE_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_R16S;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_R16U;\r\n case Constants.TEXTURETYPE_INT:\r\n return _native.Engine.TEXTURE_FORMAT_R32I;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_R32U;\r\n }\r\n break;\r\n }\r\n case Constants.TEXTUREFORMAT_RG: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RG8;\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_RG32F;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_RG16F;\r\n case Constants.TEXTURETYPE_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RG8S;\r\n case Constants.TEXTURETYPE_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_RG16S;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_RG16U;\r\n case Constants.TEXTURETYPE_INT:\r\n return _native.Engine.TEXTURE_FORMAT_RG32I;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_RG32U;\r\n }\r\n break;\r\n }\r\n case Constants.TEXTUREFORMAT_BGRA: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_BGRA8;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n throw new RuntimeError(`Unsupported texture format or type: format ${format}, type ${type}.`, ErrorCodes.UnsupportedTextureError);\r\n}\r\n\r\nexport function getNativeSamplingMode(samplingMode: number): number {\r\n switch (samplingMode) {\r\n case Constants.TEXTURE_NEAREST_NEAREST:\r\n return _native.Engine.TEXTURE_NEAREST_NEAREST;\r\n case Constants.TEXTURE_LINEAR_LINEAR:\r\n return _native.Engine.TEXTURE_LINEAR_LINEAR;\r\n case Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR:\r\n return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPLINEAR;\r\n case Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST:\r\n return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPNEAREST;\r\n case Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST:\r\n return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPNEAREST;\r\n case Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR:\r\n return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPLINEAR;\r\n case Constants.TEXTURE_NEAREST_LINEAR:\r\n return _native.Engine.TEXTURE_NEAREST_LINEAR;\r\n case Constants.TEXTURE_NEAREST_NEAREST_MIPLINEAR:\r\n return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPLINEAR;\r\n case Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST:\r\n return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPNEAREST;\r\n case Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR:\r\n return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPLINEAR;\r\n case Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST:\r\n return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\r\n case Constants.TEXTURE_LINEAR_NEAREST:\r\n return _native.Engine.TEXTURE_LINEAR_NEAREST;\r\n default:\r\n throw new Error(`Unsupported sampling mode: ${samplingMode}.`);\r\n }\r\n}\r\n\r\nexport function getNativeAddressMode(wrapMode: number): number {\r\n switch (wrapMode) {\r\n case Constants.TEXTURE_WRAP_ADDRESSMODE:\r\n return _native.Engine.ADDRESS_MODE_WRAP;\r\n case Constants.TEXTURE_CLAMP_ADDRESSMODE:\r\n return _native.Engine.ADDRESS_MODE_CLAMP;\r\n case Constants.TEXTURE_MIRROR_ADDRESSMODE:\r\n return _native.Engine.ADDRESS_MODE_MIRROR;\r\n default:\r\n throw new Error(\"Unexpected wrap mode: \" + wrapMode + \".\");\r\n }\r\n}\r\n\r\nexport function getNativeStencilFunc(func: number): number {\r\n switch (func) {\r\n case Constants.LESS:\r\n return _native.Engine.STENCIL_TEST_LESS;\r\n case Constants.LEQUAL:\r\n return _native.Engine.STENCIL_TEST_LEQUAL;\r\n case Constants.EQUAL:\r\n return _native.Engine.STENCIL_TEST_EQUAL;\r\n case Constants.GEQUAL:\r\n return _native.Engine.STENCIL_TEST_GEQUAL;\r\n case Constants.GREATER:\r\n return _native.Engine.STENCIL_TEST_GREATER;\r\n case Constants.NOTEQUAL:\r\n return _native.Engine.STENCIL_TEST_NOTEQUAL;\r\n case Constants.NEVER:\r\n return _native.Engine.STENCIL_TEST_NEVER;\r\n case Constants.ALWAYS:\r\n return _native.Engine.STENCIL_TEST_ALWAYS;\r\n default:\r\n throw new Error(`Unsupported stencil func mode: ${func}.`);\r\n }\r\n}\r\n\r\nexport function getNativeStencilOpFail(opFail: number): number {\r\n switch (opFail) {\r\n case Constants.KEEP:\r\n return _native.Engine.STENCIL_OP_FAIL_S_KEEP;\r\n case Constants.ZERO:\r\n return _native.Engine.STENCIL_OP_FAIL_S_ZERO;\r\n case Constants.REPLACE:\r\n return _native.Engine.STENCIL_OP_FAIL_S_REPLACE;\r\n case Constants.INCR:\r\n return _native.Engine.STENCIL_OP_FAIL_S_INCR;\r\n case Constants.DECR:\r\n return _native.Engine.STENCIL_OP_FAIL_S_DECR;\r\n case Constants.INVERT:\r\n return _native.Engine.STENCIL_OP_FAIL_S_INVERT;\r\n case Constants.INCR_WRAP:\r\n return _native.Engine.STENCIL_OP_FAIL_S_INCRSAT;\r\n case Constants.DECR_WRAP:\r\n return _native.Engine.STENCIL_OP_FAIL_S_DECRSAT;\r\n default:\r\n throw new Error(`Unsupported stencil OpFail mode: ${opFail}.`);\r\n }\r\n}\r\n\r\nexport function getNativeStencilDepthFail(depthFail: number): number {\r\n switch (depthFail) {\r\n case Constants.KEEP:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_KEEP;\r\n case Constants.ZERO:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_ZERO;\r\n case Constants.REPLACE:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_REPLACE;\r\n case Constants.INCR:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_INCR;\r\n case Constants.DECR:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_DECR;\r\n case Constants.INVERT:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_INVERT;\r\n case Constants.INCR_WRAP:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_INCRSAT;\r\n case Constants.DECR_WRAP:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_DECRSAT;\r\n default:\r\n throw new Error(`Unsupported stencil depthFail mode: ${depthFail}.`);\r\n }\r\n}\r\n\r\nexport function getNativeStencilDepthPass(opPass: number): number {\r\n switch (opPass) {\r\n case Constants.KEEP:\r\n return _native.Engine.STENCIL_OP_PASS_Z_KEEP;\r\n case Constants.ZERO:\r\n return _native.Engine.STENCIL_OP_PASS_Z_ZERO;\r\n case Constants.REPLACE:\r\n return _native.Engine.STENCIL_OP_PASS_Z_REPLACE;\r\n case Constants.INCR:\r\n return _native.Engine.STENCIL_OP_PASS_Z_INCR;\r\n case Constants.DECR:\r\n return _native.Engine.STENCIL_OP_PASS_Z_DECR;\r\n case Constants.INVERT:\r\n return _native.Engine.STENCIL_OP_PASS_Z_INVERT;\r\n case Constants.INCR_WRAP:\r\n return _native.Engine.STENCIL_OP_PASS_Z_INCRSAT;\r\n case Constants.DECR_WRAP:\r\n return _native.Engine.STENCIL_OP_PASS_Z_DECRSAT;\r\n default:\r\n throw new Error(`Unsupported stencil opPass mode: ${opPass}.`);\r\n }\r\n}\r\n\r\nconst _warnedUnsupportedAlphaModes = new Set<number>();\r\n\r\n// Some alpha modes were introduced alongside newer Babylon Native features. When running against an older\r\n// native binary the corresponding _native.Engine constant is undefined; warn once and use a supported fallback.\r\nfunction _getFallbackAlphaMode(mode: number, unsupportedName: string, fallback = _native.Engine.ALPHA_ONEONE, fallbackName = \"ALPHA_ONEONE\"): number {\r\n if (!_warnedUnsupportedAlphaModes.has(mode)) {\r\n _warnedUnsupportedAlphaModes.add(mode);\r\n Logger.Warn(`Alpha mode ${unsupportedName} is not supported by this version of Babylon Native; falling back to ${fallbackName}.`);\r\n }\r\n return fallback;\r\n}\r\n\r\nexport function getNativeAlphaMode(mode: number): number {\r\n switch (mode) {\r\n case Constants.ALPHA_DISABLE:\r\n return _native.Engine.ALPHA_DISABLE;\r\n case Constants.ALPHA_ADD:\r\n return _native.Engine.ALPHA_ADD;\r\n case Constants.ALPHA_COMBINE:\r\n return _native.Engine.ALPHA_COMBINE;\r\n case Constants.ALPHA_SUBTRACT:\r\n return _native.Engine.ALPHA_SUBTRACT;\r\n case Constants.ALPHA_MULTIPLY:\r\n return _native.Engine.ALPHA_MULTIPLY;\r\n case Constants.ALPHA_MAXIMIZED:\r\n return _native.Engine.ALPHA_MAXIMIZED;\r\n case Constants.ALPHA_ONEONE:\r\n return _native.Engine.ALPHA_ONEONE;\r\n case Constants.ALPHA_ONEONE_ONEONE:\r\n return _native.Engine.ALPHA_ONEONE_ONEONE ?? _getFallbackAlphaMode(mode, \"ALPHA_ONEONE_ONEONE\");\r\n case Constants.ALPHA_LAYER_ACCUMULATE:\r\n return _native.Engine.ALPHA_LAYER_ACCUMULATE ?? _getFallbackAlphaMode(mode, \"ALPHA_LAYER_ACCUMULATE\");\r\n case Constants.ALPHA_PREMULTIPLIED:\r\n return _native.Engine.ALPHA_PREMULTIPLIED;\r\n case Constants.ALPHA_PREMULTIPLIED_PORTERDUFF:\r\n return _native.Engine.ALPHA_PREMULTIPLIED_PORTERDUFF;\r\n case Constants.ALPHA_INTERPOLATE:\r\n return _native.Engine.ALPHA_INTERPOLATE;\r\n case Constants.ALPHA_SCREENMODE:\r\n return _native.Engine.ALPHA_SCREENMODE;\r\n case Constants.ALPHA_REPLACE_COLOR:\r\n return _native.Engine.ALPHA_REPLACE_COLOR ?? _getFallbackAlphaMode(mode, \"ALPHA_REPLACE_COLOR\", _native.Engine.ALPHA_COMBINE, \"ALPHA_COMBINE\");\r\n default:\r\n throw new Error(`Unsupported alpha mode: ${mode}.`);\r\n }\r\n}\r\n\r\nexport function getNativeAttribType(type: number): number {\r\n switch (type) {\r\n case VertexBuffer.BYTE:\r\n return _native.Engine.ATTRIB_TYPE_INT8;\r\n case VertexBuffer.UNSIGNED_BYTE:\r\n return _native.Engine.ATTRIB_TYPE_UINT8;\r\n case VertexBuffer.SHORT:\r\n return _native.Engine.ATTRIB_TYPE_INT16;\r\n case VertexBuffer.UNSIGNED_SHORT:\r\n return _native.Engine.ATTRIB_TYPE_UINT16;\r\n case VertexBuffer.FLOAT:\r\n return _native.Engine.ATTRIB_TYPE_FLOAT;\r\n // HALF_FLOAT (as well as INT and UNSIGNED_INT) has no equivalent in the native bindings, which only\r\n // expose ATTRIB_TYPE_INT8/UINT8/INT16/UINT16/FLOAT. Those vertex attribute types are therefore\r\n // WebGL/WebGPU only and intentionally fall through to the throw below on the Babylon Native engine.\r\n default:\r\n throw new Error(`Unsupported attribute type: ${type}.`);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"nativeHelpers.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/Native/nativeHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { ErrorCodes, RuntimeError } from \"core/Misc/error\";\r\nimport { Logger } from \"core/Misc/logger\";\r\nimport { Constants } from \"../constants\";\r\nimport { type INative } from \"./nativeInterfaces\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer.pure\";\r\n\r\ndeclare const _native: INative;\r\n\r\nexport function getNativeTextureFormat(format: number, type: number): number {\r\n switch (format) {\r\n // Depth (type is ignored)\r\n case Constants.TEXTUREFORMAT_DEPTH16:\r\n return _native.Engine.TEXTURE_FORMAT_D16;\r\n case Constants.TEXTUREFORMAT_DEPTH24:\r\n return _native.Engine.TEXTURE_FORMAT_D24;\r\n case Constants.TEXTUREFORMAT_DEPTH24_STENCIL8:\r\n return _native.Engine.TEXTURE_FORMAT_D24S8;\r\n case Constants.TEXTUREFORMAT_DEPTH32_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_D32F;\r\n\r\n // Compressed (type is ignored)\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM:\r\n return _native.Engine.TEXTURE_FORMAT_BC7;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_BC6H;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5:\r\n return _native.Engine.TEXTURE_FORMAT_BC3;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3:\r\n return _native.Engine.TEXTURE_FORMAT_BC2;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1:\r\n return _native.Engine.TEXTURE_FORMAT_BC1;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1:\r\n return _native.Engine.TEXTURE_FORMAT_BC1;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC4x4;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x4:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC5x4;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x5:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC5x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x5:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC6x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x6:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC6x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x5:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC8x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x6:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC8x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x8:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC8x8;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x5:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC10x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x6:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC10x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x8:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC10x8;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x10:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC10x10;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x10:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC12x10;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x12:\r\n return _native.Engine.TEXTURE_FORMAT_ASTC12x12;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL:\r\n return _native.Engine.TEXTURE_FORMAT_ETC1;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2:\r\n return _native.Engine.TEXTURE_FORMAT_ETC2;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC:\r\n return _native.Engine.TEXTURE_FORMAT_ETC2A;\r\n\r\n case Constants.TEXTUREFORMAT_RGB: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RGB8;\r\n case Constants.TEXTURETYPE_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RGB8S;\r\n case Constants.TEXTURETYPE_INT:\r\n return _native.Engine.TEXTURE_FORMAT_RGB8I;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_RGB8U;\r\n }\r\n break;\r\n }\r\n\r\n case Constants.TEXTUREFORMAT_RGBA_INTEGER: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA32U;\r\n }\r\n break;\r\n }\r\n\r\n case Constants.TEXTUREFORMAT_RGBA: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA8;\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA32F;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA16F;\r\n case Constants.TEXTURETYPE_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA8S;\r\n case Constants.TEXTURETYPE_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA16I;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA16U;\r\n case Constants.TEXTURETYPE_INT:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA32I;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_RGBA32U;\r\n }\r\n break;\r\n }\r\n case Constants.TEXTUREFORMAT_R: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_R8;\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_R32F;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_R16F;\r\n case Constants.TEXTURETYPE_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_R8S;\r\n case Constants.TEXTURETYPE_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_R16S;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_R16U;\r\n case Constants.TEXTURETYPE_INT:\r\n return _native.Engine.TEXTURE_FORMAT_R32I;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_R32U;\r\n }\r\n break;\r\n }\r\n case Constants.TEXTUREFORMAT_RG: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RG8;\r\n case Constants.TEXTURETYPE_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_RG32F;\r\n case Constants.TEXTURETYPE_HALF_FLOAT:\r\n return _native.Engine.TEXTURE_FORMAT_RG16F;\r\n case Constants.TEXTURETYPE_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_RG8S;\r\n case Constants.TEXTURETYPE_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_RG16S;\r\n case Constants.TEXTURETYPE_UNSIGNED_SHORT:\r\n return _native.Engine.TEXTURE_FORMAT_RG16U;\r\n case Constants.TEXTURETYPE_INT:\r\n return _native.Engine.TEXTURE_FORMAT_RG32I;\r\n case Constants.TEXTURETYPE_UNSIGNED_INTEGER:\r\n return _native.Engine.TEXTURE_FORMAT_RG32U;\r\n }\r\n break;\r\n }\r\n case Constants.TEXTUREFORMAT_BGRA: {\r\n switch (type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\r\n return _native.Engine.TEXTURE_FORMAT_BGRA8;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n throw new RuntimeError(`Unsupported texture format or type: format ${format}, type ${type}.`, ErrorCodes.UnsupportedTextureError);\r\n}\r\n\r\nexport function getNativeSamplingMode(samplingMode: number): number {\r\n switch (samplingMode) {\r\n case Constants.TEXTURE_NEAREST_NEAREST:\r\n return _native.Engine.TEXTURE_NEAREST_NEAREST;\r\n case Constants.TEXTURE_LINEAR_LINEAR:\r\n return _native.Engine.TEXTURE_LINEAR_LINEAR;\r\n case Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR:\r\n return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPLINEAR;\r\n case Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST:\r\n return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPNEAREST;\r\n case Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST:\r\n return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPNEAREST;\r\n case Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR:\r\n return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPLINEAR;\r\n case Constants.TEXTURE_NEAREST_LINEAR:\r\n return _native.Engine.TEXTURE_NEAREST_LINEAR;\r\n case Constants.TEXTURE_NEAREST_NEAREST_MIPLINEAR:\r\n return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPLINEAR;\r\n case Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST:\r\n return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPNEAREST;\r\n case Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR:\r\n return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPLINEAR;\r\n case Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST:\r\n return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\r\n case Constants.TEXTURE_LINEAR_NEAREST:\r\n return _native.Engine.TEXTURE_LINEAR_NEAREST;\r\n default:\r\n throw new Error(`Unsupported sampling mode: ${samplingMode}.`);\r\n }\r\n}\r\n\r\nexport function getNativeAddressMode(wrapMode: number): number {\r\n switch (wrapMode) {\r\n case Constants.TEXTURE_WRAP_ADDRESSMODE:\r\n return _native.Engine.ADDRESS_MODE_WRAP;\r\n case Constants.TEXTURE_CLAMP_ADDRESSMODE:\r\n return _native.Engine.ADDRESS_MODE_CLAMP;\r\n case Constants.TEXTURE_MIRROR_ADDRESSMODE:\r\n return _native.Engine.ADDRESS_MODE_MIRROR;\r\n default:\r\n throw new Error(\"Unexpected wrap mode: \" + wrapMode + \".\");\r\n }\r\n}\r\n\r\nexport function getNativeStencilFunc(func: number): number {\r\n switch (func) {\r\n case Constants.LESS:\r\n return _native.Engine.STENCIL_TEST_LESS;\r\n case Constants.LEQUAL:\r\n return _native.Engine.STENCIL_TEST_LEQUAL;\r\n case Constants.EQUAL:\r\n return _native.Engine.STENCIL_TEST_EQUAL;\r\n case Constants.GEQUAL:\r\n return _native.Engine.STENCIL_TEST_GEQUAL;\r\n case Constants.GREATER:\r\n return _native.Engine.STENCIL_TEST_GREATER;\r\n case Constants.NOTEQUAL:\r\n return _native.Engine.STENCIL_TEST_NOTEQUAL;\r\n case Constants.NEVER:\r\n return _native.Engine.STENCIL_TEST_NEVER;\r\n case Constants.ALWAYS:\r\n return _native.Engine.STENCIL_TEST_ALWAYS;\r\n default:\r\n throw new Error(`Unsupported stencil func mode: ${func}.`);\r\n }\r\n}\r\n\r\nexport function getNativeStencilOpFail(opFail: number): number {\r\n switch (opFail) {\r\n case Constants.KEEP:\r\n return _native.Engine.STENCIL_OP_FAIL_S_KEEP;\r\n case Constants.ZERO:\r\n return _native.Engine.STENCIL_OP_FAIL_S_ZERO;\r\n case Constants.REPLACE:\r\n return _native.Engine.STENCIL_OP_FAIL_S_REPLACE;\r\n case Constants.INCR:\r\n return _native.Engine.STENCIL_OP_FAIL_S_INCR;\r\n case Constants.DECR:\r\n return _native.Engine.STENCIL_OP_FAIL_S_DECR;\r\n case Constants.INVERT:\r\n return _native.Engine.STENCIL_OP_FAIL_S_INVERT;\r\n case Constants.INCR_WRAP:\r\n return _native.Engine.STENCIL_OP_FAIL_S_INCRSAT;\r\n case Constants.DECR_WRAP:\r\n return _native.Engine.STENCIL_OP_FAIL_S_DECRSAT;\r\n default:\r\n throw new Error(`Unsupported stencil OpFail mode: ${opFail}.`);\r\n }\r\n}\r\n\r\nexport function getNativeStencilDepthFail(depthFail: number): number {\r\n switch (depthFail) {\r\n case Constants.KEEP:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_KEEP;\r\n case Constants.ZERO:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_ZERO;\r\n case Constants.REPLACE:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_REPLACE;\r\n case Constants.INCR:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_INCR;\r\n case Constants.DECR:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_DECR;\r\n case Constants.INVERT:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_INVERT;\r\n case Constants.INCR_WRAP:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_INCRSAT;\r\n case Constants.DECR_WRAP:\r\n return _native.Engine.STENCIL_OP_FAIL_Z_DECRSAT;\r\n default:\r\n throw new Error(`Unsupported stencil depthFail mode: ${depthFail}.`);\r\n }\r\n}\r\n\r\nexport function getNativeStencilDepthPass(opPass: number): number {\r\n switch (opPass) {\r\n case Constants.KEEP:\r\n return _native.Engine.STENCIL_OP_PASS_Z_KEEP;\r\n case Constants.ZERO:\r\n return _native.Engine.STENCIL_OP_PASS_Z_ZERO;\r\n case Constants.REPLACE:\r\n return _native.Engine.STENCIL_OP_PASS_Z_REPLACE;\r\n case Constants.INCR:\r\n return _native.Engine.STENCIL_OP_PASS_Z_INCR;\r\n case Constants.DECR:\r\n return _native.Engine.STENCIL_OP_PASS_Z_DECR;\r\n case Constants.INVERT:\r\n return _native.Engine.STENCIL_OP_PASS_Z_INVERT;\r\n case Constants.INCR_WRAP:\r\n return _native.Engine.STENCIL_OP_PASS_Z_INCRSAT;\r\n case Constants.DECR_WRAP:\r\n return _native.Engine.STENCIL_OP_PASS_Z_DECRSAT;\r\n default:\r\n throw new Error(`Unsupported stencil opPass mode: ${opPass}.`);\r\n }\r\n}\r\n\r\nconst _warnedUnsupportedAlphaModes = new Set<number>();\r\n\r\n// Some alpha modes were introduced alongside newer Babylon Native features. When running against an older\r\n// native binary the corresponding _native.Engine constant is undefined; warn once and use a supported fallback.\r\nfunction _getFallbackAlphaMode(mode: number, unsupportedName: string, fallback = _native.Engine.ALPHA_ONEONE, fallbackName = \"ALPHA_ONEONE\"): number {\r\n if (!_warnedUnsupportedAlphaModes.has(mode)) {\r\n _warnedUnsupportedAlphaModes.add(mode);\r\n Logger.Warn(`Alpha mode ${unsupportedName} is not supported by this version of Babylon Native; falling back to ${fallbackName}.`);\r\n }\r\n return fallback;\r\n}\r\n\r\nexport function getNativeAlphaMode(mode: number): number {\r\n switch (mode) {\r\n // AbstractEngine initializes/resets _alphaMode to -1 as an \"unset\" sentinel (see\r\n // abstractEngine.pure.ts). WebGL/WebGPU tolerate restoring that sentinel via setAlphaMode(-1)\r\n // (e.g. OutlineRenderer._afterRenderingMesh saving/restoring getAlphaMode()); treat it as\r\n // ALPHA_DISABLE here so the native path doesn't throw on the transient reset value.\r\n case -1:\r\n case Constants.ALPHA_DISABLE:\r\n return _native.Engine.ALPHA_DISABLE;\r\n case Constants.ALPHA_ADD:\r\n return _native.Engine.ALPHA_ADD;\r\n case Constants.ALPHA_COMBINE:\r\n return _native.Engine.ALPHA_COMBINE;\r\n case Constants.ALPHA_SUBTRACT:\r\n return _native.Engine.ALPHA_SUBTRACT;\r\n case Constants.ALPHA_MULTIPLY:\r\n return _native.Engine.ALPHA_MULTIPLY;\r\n case Constants.ALPHA_MAXIMIZED:\r\n return _native.Engine.ALPHA_MAXIMIZED;\r\n case Constants.ALPHA_ONEONE:\r\n return _native.Engine.ALPHA_ONEONE;\r\n case Constants.ALPHA_ONEONE_ONEONE:\r\n return _native.Engine.ALPHA_ONEONE_ONEONE ?? _getFallbackAlphaMode(mode, \"ALPHA_ONEONE_ONEONE\");\r\n case Constants.ALPHA_LAYER_ACCUMULATE:\r\n return _native.Engine.ALPHA_LAYER_ACCUMULATE ?? _getFallbackAlphaMode(mode, \"ALPHA_LAYER_ACCUMULATE\");\r\n case Constants.ALPHA_PREMULTIPLIED:\r\n return _native.Engine.ALPHA_PREMULTIPLIED;\r\n case Constants.ALPHA_PREMULTIPLIED_PORTERDUFF:\r\n return _native.Engine.ALPHA_PREMULTIPLIED_PORTERDUFF;\r\n case Constants.ALPHA_INTERPOLATE:\r\n return _native.Engine.ALPHA_INTERPOLATE;\r\n case Constants.ALPHA_SCREENMODE:\r\n return _native.Engine.ALPHA_SCREENMODE;\r\n case Constants.ALPHA_REPLACE_COLOR:\r\n return _native.Engine.ALPHA_REPLACE_COLOR ?? _getFallbackAlphaMode(mode, \"ALPHA_REPLACE_COLOR\", _native.Engine.ALPHA_COMBINE, \"ALPHA_COMBINE\");\r\n default:\r\n throw new Error(`Unsupported alpha mode: ${mode}.`);\r\n }\r\n}\r\n\r\nexport function getNativeAttribType(type: number): number {\r\n switch (type) {\r\n case VertexBuffer.BYTE:\r\n return _native.Engine.ATTRIB_TYPE_INT8;\r\n case VertexBuffer.UNSIGNED_BYTE:\r\n return _native.Engine.ATTRIB_TYPE_UINT8;\r\n case VertexBuffer.SHORT:\r\n return _native.Engine.ATTRIB_TYPE_INT16;\r\n case VertexBuffer.UNSIGNED_SHORT:\r\n return _native.Engine.ATTRIB_TYPE_UINT16;\r\n case VertexBuffer.FLOAT:\r\n return _native.Engine.ATTRIB_TYPE_FLOAT;\r\n // HALF_FLOAT (as well as INT and UNSIGNED_INT) has no equivalent in the native bindings, which only\r\n // expose ATTRIB_TYPE_INT8/UINT8/INT16/UINT16/FLOAT. Those vertex attribute types are therefore\r\n // WebGL/WebGPU only and intentionally fall through to the throw below on the Babylon Native engine.\r\n default:\r\n throw new Error(`Unsupported attribute type: ${type}.`);\r\n }\r\n}\r\n"]}
|
|
@@ -853,13 +853,13 @@ export class AbstractEngine {
|
|
|
853
853
|
*/
|
|
854
854
|
// Not mixed with Version for tooling purpose.
|
|
855
855
|
static get NpmPackage() {
|
|
856
|
-
return "babylonjs@9.
|
|
856
|
+
return "babylonjs@9.21.2";
|
|
857
857
|
}
|
|
858
858
|
/**
|
|
859
859
|
* Returns the current version of the framework
|
|
860
860
|
*/
|
|
861
861
|
static get Version() {
|
|
862
|
-
return "9.
|
|
862
|
+
return "9.21.2";
|
|
863
863
|
}
|
|
864
864
|
/**
|
|
865
865
|
* Gets the HTML canvas attached with the current webGL context
|