Browse Source

Merge branch 'master' of https://github.com/BabylonJS/Babylon.js into freeMouseWheel

duncan law 4 years ago
parent
commit
63029d9e18
100 changed files with 157240 additions and 155839 deletions
  1. 25351 25228
      dist/preview release/babylon.d.ts
  2. 1 1
      dist/preview release/babylon.js
  3. 454 69
      dist/preview release/babylon.max.js
  4. 1 1
      dist/preview release/babylon.max.js.map
  5. 52784 52529
      dist/preview release/babylon.module.d.ts
  6. 25351 25228
      dist/preview release/documentation.d.ts
  7. 1 1
      dist/preview release/glTF2Interface/package.json
  8. 2 2
      dist/preview release/gui/package.json
  9. 7 7
      dist/preview release/inspector/package.json
  10. 3 3
      dist/preview release/loaders/package.json
  11. 10 7
      dist/preview release/materialsLibrary/babylon.cellMaterial.js
  12. 1 1
      dist/preview release/materialsLibrary/babylon.cellMaterial.js.map
  13. 1 1
      dist/preview release/materialsLibrary/babylon.cellMaterial.min.js
  14. 5 5
      dist/preview release/materialsLibrary/babylon.customMaterial.js
  15. 1 1
      dist/preview release/materialsLibrary/babylon.customMaterial.js.map
  16. 10 7
      dist/preview release/materialsLibrary/babylon.fireMaterial.js
  17. 1 1
      dist/preview release/materialsLibrary/babylon.fireMaterial.js.map
  18. 1 1
      dist/preview release/materialsLibrary/babylon.fireMaterial.min.js
  19. 10 7
      dist/preview release/materialsLibrary/babylon.furMaterial.js
  20. 1 1
      dist/preview release/materialsLibrary/babylon.furMaterial.js.map
  21. 1 1
      dist/preview release/materialsLibrary/babylon.furMaterial.min.js
  22. 10 7
      dist/preview release/materialsLibrary/babylon.gradientMaterial.js
  23. 1 1
      dist/preview release/materialsLibrary/babylon.gradientMaterial.js.map
  24. 1 1
      dist/preview release/materialsLibrary/babylon.gradientMaterial.min.js
  25. 10 7
      dist/preview release/materialsLibrary/babylon.gridMaterial.js
  26. 1 1
      dist/preview release/materialsLibrary/babylon.gridMaterial.js.map
  27. 1 1
      dist/preview release/materialsLibrary/babylon.gridMaterial.min.js
  28. 10 7
      dist/preview release/materialsLibrary/babylon.lavaMaterial.js
  29. 1 1
      dist/preview release/materialsLibrary/babylon.lavaMaterial.js.map
  30. 1 1
      dist/preview release/materialsLibrary/babylon.lavaMaterial.min.js
  31. 10 7
      dist/preview release/materialsLibrary/babylon.mixMaterial.js
  32. 1 1
      dist/preview release/materialsLibrary/babylon.mixMaterial.js.map
  33. 1 1
      dist/preview release/materialsLibrary/babylon.mixMaterial.min.js
  34. 10 7
      dist/preview release/materialsLibrary/babylon.normalMaterial.js
  35. 1 1
      dist/preview release/materialsLibrary/babylon.normalMaterial.js.map
  36. 1 1
      dist/preview release/materialsLibrary/babylon.normalMaterial.min.js
  37. 10 7
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js
  38. 1 1
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js.map
  39. 1 1
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js
  40. 10 7
      dist/preview release/materialsLibrary/babylon.simpleMaterial.js
  41. 1 1
      dist/preview release/materialsLibrary/babylon.simpleMaterial.js.map
  42. 1 1
      dist/preview release/materialsLibrary/babylon.simpleMaterial.min.js
  43. 10 7
      dist/preview release/materialsLibrary/babylon.skyMaterial.js
  44. 1 1
      dist/preview release/materialsLibrary/babylon.skyMaterial.js.map
  45. 1 1
      dist/preview release/materialsLibrary/babylon.skyMaterial.min.js
  46. 10 7
      dist/preview release/materialsLibrary/babylon.terrainMaterial.js
  47. 1 1
      dist/preview release/materialsLibrary/babylon.terrainMaterial.js.map
  48. 1 1
      dist/preview release/materialsLibrary/babylon.terrainMaterial.min.js
  49. 10 7
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js
  50. 1 1
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js.map
  51. 1 1
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.min.js
  52. 6 6
      dist/preview release/materialsLibrary/babylon.waterMaterial.js
  53. 1 1
      dist/preview release/materialsLibrary/babylon.waterMaterial.js.map
  54. 99 60
      dist/preview release/materialsLibrary/babylonjs.materials.js
  55. 1 1
      dist/preview release/materialsLibrary/babylonjs.materials.js.map
  56. 1 1
      dist/preview release/materialsLibrary/babylonjs.materials.min.js
  57. 13 0
      dist/preview release/materialsLibrary/babylonjs.materials.module.d.ts
  58. 2 2
      dist/preview release/materialsLibrary/package.json
  59. 2 2
      dist/preview release/nodeEditor/package.json
  60. 1 1
      dist/preview release/package.json
  61. 1 1
      dist/preview release/packagesSizeBaseLine.json
  62. 2 2
      dist/preview release/postProcessesLibrary/package.json
  63. 2 2
      dist/preview release/proceduralTexturesLibrary/package.json
  64. 3 3
      dist/preview release/serializers/package.json
  65. 52784 52529
      dist/preview release/viewer/babylon.module.d.ts
  66. 27 23
      dist/preview release/viewer/babylon.viewer.js
  67. 1 1
      dist/preview release/viewer/babylon.viewer.max.js
  68. 3 0
      dist/preview release/what's new.md
  69. 2 0
      materialsLibrary/src/cell/cell.fragment.fx
  70. 3 0
      materialsLibrary/src/cell/cellMaterial.ts
  71. 2 0
      materialsLibrary/src/fire/fire.fragment.fx
  72. 3 0
      materialsLibrary/src/fire/fireMaterial.ts
  73. 3 0
      materialsLibrary/src/fur/fur.fragment.fx
  74. 3 0
      materialsLibrary/src/fur/furMaterial.ts
  75. 3 0
      materialsLibrary/src/gradient/gradient.fragment.fx
  76. 3 0
      materialsLibrary/src/gradient/gradientMaterial.ts
  77. 2 0
      materialsLibrary/src/grid/grid.fragment.fx
  78. 3 0
      materialsLibrary/src/grid/gridMaterial.ts
  79. 2 0
      materialsLibrary/src/lava/lava.fragment.fx
  80. 3 0
      materialsLibrary/src/lava/lavaMaterial.ts
  81. 2 0
      materialsLibrary/src/mix/mix.fragment.fx
  82. 3 0
      materialsLibrary/src/mix/mixMaterial.ts
  83. 3 0
      materialsLibrary/src/normal/normal.fragment.fx
  84. 3 0
      materialsLibrary/src/normal/normalMaterial.ts
  85. 2 0
      materialsLibrary/src/shadowOnly/shadowOnly.fragment.fx
  86. 3 0
      materialsLibrary/src/shadowOnly/shadowOnlyMaterial.ts
  87. 2 0
      materialsLibrary/src/simple/simple.fragment.fx
  88. 3 0
      materialsLibrary/src/simple/simpleMaterial.ts
  89. 2 0
      materialsLibrary/src/sky/sky.fragment.fx
  90. 3 0
      materialsLibrary/src/sky/skyMaterial.ts
  91. 3 0
      materialsLibrary/src/terrain/terrain.fragment.fx
  92. 3 0
      materialsLibrary/src/terrain/terrainMaterial.ts
  93. 3 0
      materialsLibrary/src/triPlanar/triPlanarMaterial.ts
  94. 3 0
      materialsLibrary/src/triPlanar/triplanar.fragment.fx
  95. 1 1
      package.json
  96. 34 0
      src/Engines/Extensions/engine.multiRender.ts
  97. 49 3
      src/Engines/nativeEngine.ts
  98. 8 8
      src/Engines/thinEngine.ts
  99. 12 0
      src/Materials/Textures/multiRenderTarget.ts
  100. 0 0
      src/Materials/Textures/videoTexture.ts

File diff suppressed because it is too large
+ 25351 - 25228
dist/preview release/babylon.d.ts


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/babylon.js


File diff suppressed because it is too large
+ 454 - 69
dist/preview release/babylon.max.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/babylon.max.js.map


File diff suppressed because it is too large
+ 52784 - 52529
dist/preview release/babylon.module.d.ts


File diff suppressed because it is too large
+ 25351 - 25228
dist/preview release/documentation.d.ts


+ 1 - 1
dist/preview release/glTF2Interface/package.json

@@ -1,7 +1,7 @@
 {
     "name": "babylonjs-gltf2interface",
     "description": "A typescript declaration of babylon's gltf2 inteface.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"

+ 2 - 2
dist/preview release/gui/package.json

@@ -4,7 +4,7 @@
     },
     "name": "babylonjs-gui",
     "description": "The Babylon.js GUI library is an extension you can use to generate interactive user interface. It is build on top of the DynamicTexture.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -28,7 +28,7 @@
     ],
     "license": "Apache-2.0",
     "dependencies": {
-        "babylonjs": "4.2.0-beta.5"
+        "babylonjs": "4.2.0-beta.6"
     },
     "engines": {
         "node": "*"

+ 7 - 7
dist/preview release/inspector/package.json

@@ -4,7 +4,7 @@
     },
     "name": "babylonjs-inspector",
     "description": "The Babylon.js inspector.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -29,12 +29,12 @@
     ],
     "license": "Apache-2.0",
     "dependencies": {
-        "babylonjs": "4.2.0-beta.5",
-        "babylonjs-gui": "4.2.0-beta.5",
-        "babylonjs-loaders": "4.2.0-beta.5",
-        "babylonjs-materials": "4.2.0-beta.5",
-        "babylonjs-serializers": "4.2.0-beta.5",
-        "babylonjs-gltf2interface": "4.2.0-beta.5"
+        "babylonjs": "4.2.0-beta.6",
+        "babylonjs-gui": "4.2.0-beta.6",
+        "babylonjs-loaders": "4.2.0-beta.6",
+        "babylonjs-materials": "4.2.0-beta.6",
+        "babylonjs-serializers": "4.2.0-beta.6",
+        "babylonjs-gltf2interface": "4.2.0-beta.6"
     },
     "peerDependencies": {
         "@types/react": ">=16.7.3",

+ 3 - 3
dist/preview release/loaders/package.json

@@ -4,7 +4,7 @@
     },
     "name": "babylonjs-loaders",
     "description": "The Babylon.js file loaders library is an extension you can use to load different 3D file types into a Babylon scene.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -28,8 +28,8 @@
     ],
     "license": "Apache-2.0",
     "dependencies": {
-        "babylonjs-gltf2interface": "4.2.0-beta.5",
-        "babylonjs": "4.2.0-beta.5"
+        "babylonjs-gltf2interface": "4.2.0-beta.6",
+        "babylonjs": "4.2.0-beta.6"
     },
     "engines": {
         "node": "*"

File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.cellMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.cellMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.cellMaterial.min.js


+ 5 - 5
dist/preview release/materialsLibrary/babylon.customMaterial.js

@@ -7,7 +7,7 @@
 		exports["babylonjs-materials"] = factory(require("babylonjs"));
 	else
 		root["MATERIALS"] = factory(root["BABYLON"]);
-})((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this), function(__WEBPACK_EXTERNAL_MODULE_babylonjs_Misc_decorators__) {
+})((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this), function(__WEBPACK_EXTERNAL_MODULE_babylonjs_Materials_effect__) {
 return /******/ (function(modules) { // webpackBootstrap
 /******/ 	// The module cache
 /******/ 	var installedModules = {};
@@ -403,7 +403,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShaderSpecialParts", function() { return ShaderSpecialParts; });
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CustomMaterial", function() { return CustomMaterial; });
 /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
-/* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! babylonjs/Materials/effect */ "babylonjs/Misc/decorators");
+/* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! babylonjs/Materials/effect */ "babylonjs/Materials/effect");
 /* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_1__);
 
 
@@ -661,7 +661,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShaderAlebdoParts", function() { return ShaderAlebdoParts; });
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PBRCustomMaterial", function() { return PBRCustomMaterial; });
 /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
-/* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! babylonjs/Materials/effect */ "babylonjs/Misc/decorators");
+/* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! babylonjs/Materials/effect */ "babylonjs/Materials/effect");
 /* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_1__);
 
 
@@ -924,14 +924,14 @@ if (typeof globalObject !== "undefined") {
 
 /***/ }),
 
-/***/ "babylonjs/Misc/decorators":
+/***/ "babylonjs/Materials/effect":
 /*!****************************************************************************************************!*\
   !*** external {"root":"BABYLON","commonjs":"babylonjs","commonjs2":"babylonjs","amd":"babylonjs"} ***!
   \****************************************************************************************************/
 /*! no static exports found */
 /***/ (function(module, exports) {
 
-module.exports = __WEBPACK_EXTERNAL_MODULE_babylonjs_Misc_decorators__;
+module.exports = __WEBPACK_EXTERNAL_MODULE_babylonjs_Materials_effect__;
 
 /***/ })
 

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.customMaterial.js.map


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.fireMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.fireMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.fireMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.furMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.furMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.furMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.gradientMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.gradientMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.gradientMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.gridMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.gridMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.gridMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.lavaMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.lavaMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.lavaMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.mixMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.mixMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.mixMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.normalMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.normalMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.normalMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.simpleMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.simpleMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.simpleMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.skyMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.skyMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.skyMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.terrainMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.terrainMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.terrainMaterial.min.js


File diff suppressed because it is too large
+ 10 - 7
dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.triPlanarMaterial.min.js


+ 6 - 6
dist/preview release/materialsLibrary/babylon.waterMaterial.js

@@ -7,7 +7,7 @@
 		exports["babylonjs-materials"] = factory(require("babylonjs"));
 	else
 		root["MATERIALS"] = factory(root["BABYLON"]);
-})((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this), function(__WEBPACK_EXTERNAL_MODULE_babylonjs_Misc_decorators__) {
+})((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this), function(__WEBPACK_EXTERNAL_MODULE_babylonjs_Materials_effect__) {
 return /******/ (function(modules) { // webpackBootstrap
 /******/ 	// The module cache
 /******/ 	var installedModules = {};
@@ -446,7 +446,7 @@ __webpack_require__.r(__webpack_exports__);
 "use strict";
 __webpack_require__.r(__webpack_exports__);
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "waterPixelShader", function() { return waterPixelShader; });
-/* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/Materials/effect */ "babylonjs/Misc/decorators");
+/* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/Materials/effect */ "babylonjs/Materials/effect");
 /* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_0__);
 
 
@@ -482,7 +482,7 @@ var waterPixelShader = { name: name, shader: shader };
 "use strict";
 __webpack_require__.r(__webpack_exports__);
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "waterVertexShader", function() { return waterVertexShader; });
-/* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/Materials/effect */ "babylonjs/Misc/decorators");
+/* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/Materials/effect */ "babylonjs/Materials/effect");
 /* harmony import */ var babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Materials_effect__WEBPACK_IMPORTED_MODULE_0__);
 
 
@@ -518,7 +518,7 @@ var waterVertexShader = { name: name, shader: shader };
 __webpack_require__.r(__webpack_exports__);
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WaterMaterial", function() { return WaterMaterial; });
 /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
-/* harmony import */ var babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! babylonjs/Misc/decorators */ "babylonjs/Misc/decorators");
+/* harmony import */ var babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! babylonjs/Misc/decorators */ "babylonjs/Materials/effect");
 /* harmony import */ var babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_1__);
 /* harmony import */ var _water_fragment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./water.fragment */ "./water/water.fragment.ts");
 /* harmony import */ var _water_vertex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./water.vertex */ "./water/water.vertex.ts");
@@ -1219,14 +1219,14 @@ babylonjs_Misc_decorators__WEBPACK_IMPORTED_MODULE_1__["_TypeStore"].RegisteredT
 
 /***/ }),
 
-/***/ "babylonjs/Misc/decorators":
+/***/ "babylonjs/Materials/effect":
 /*!****************************************************************************************************!*\
   !*** external {"root":"BABYLON","commonjs":"babylonjs","commonjs2":"babylonjs","amd":"babylonjs"} ***!
   \****************************************************************************************************/
 /*! no static exports found */
 /***/ (function(module, exports) {
 
-module.exports = __WEBPACK_EXTERNAL_MODULE_babylonjs_Misc_decorators__;
+module.exports = __WEBPACK_EXTERNAL_MODULE_babylonjs_Materials_effect__;
 
 /***/ })
 

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylon.waterMaterial.js.map


File diff suppressed because it is too large
+ 99 - 60
dist/preview release/materialsLibrary/babylonjs.materials.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylonjs.materials.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/materialsLibrary/babylonjs.materials.min.js


+ 13 - 0
dist/preview release/materialsLibrary/babylonjs.materials.module.d.ts

@@ -10,6 +10,7 @@ declare module "babylonjs-materials/cell/cell.fragment" {
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var cellPixelShader: {
         name: string;
@@ -223,6 +224,7 @@ declare module "babylonjs-materials/fire/fire.fragment" {
     import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var firePixelShader: {
         name: string;
@@ -299,6 +301,7 @@ declare module "babylonjs-materials/fur/fur.fragment" {
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var furPixelShader: {
         name: string;
@@ -396,6 +399,7 @@ declare module "babylonjs-materials/gradient/gradient.fragment" {
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var gradientPixelShader: {
         name: string;
@@ -465,6 +469,7 @@ declare module "babylonjs-materials/gradient/index" {
 declare module "babylonjs-materials/grid/grid.fragment" {
     import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var gridPixelShader: {
         name: string;
@@ -572,6 +577,7 @@ declare module "babylonjs-materials/lava/lava.fragment" {
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var lavaPixelShader: {
         name: string;
@@ -658,6 +664,7 @@ declare module "babylonjs-materials/mix/mix.fragment" {
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var mixPixelShader: {
         name: string;
@@ -764,6 +771,7 @@ declare module "babylonjs-materials/normal/normal.fragment" {
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var normalPixelShader: {
         name: string;
@@ -840,6 +848,7 @@ declare module "babylonjs-materials/shadowOnly/shadowOnly.fragment" {
     import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var shadowOnlyPixelShader: {
         name: string;
@@ -911,6 +920,7 @@ declare module "babylonjs-materials/simple/simple.fragment" {
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var simplePixelShader: {
         name: string;
@@ -980,6 +990,7 @@ declare module "babylonjs-materials/sky/sky.fragment" {
     import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
     import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var skyPixelShader: {
         name: string;
@@ -1156,6 +1167,7 @@ declare module "babylonjs-materials/terrain/terrain.fragment" {
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var terrainPixelShader: {
         name: string;
@@ -1247,6 +1259,7 @@ declare module "babylonjs-materials/triPlanar/triplanar.fragment" {
     import "babylonjs/Shaders/ShadersInclude/depthPrePass";
     import "babylonjs/Shaders/ShadersInclude/lightFragment";
     import "babylonjs/Shaders/ShadersInclude/fogFragment";
+    import "babylonjs/Shaders/ShadersInclude/imageProcessingCompatibility";
     /** @hidden */
     export var triplanarPixelShader: {
         name: string;

+ 2 - 2
dist/preview release/materialsLibrary/package.json

@@ -4,7 +4,7 @@
     },
     "name": "babylonjs-materials",
     "description": "The Babylon.js materials library is a collection of advanced materials to be used in a Babylon.js scene.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -28,7 +28,7 @@
     ],
     "license": "Apache-2.0",
     "dependencies": {
-        "babylonjs": "4.2.0-beta.5"
+        "babylonjs": "4.2.0-beta.6"
     },
     "engines": {
         "node": "*"

+ 2 - 2
dist/preview release/nodeEditor/package.json

@@ -4,14 +4,14 @@
     },
     "name": "babylonjs-node-editor",
     "description": "The Babylon.js node material editor.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
     },
     "license": "Apache-2.0",
     "dependencies": {
-        "babylonjs": "4.2.0-beta.5"
+        "babylonjs": "4.2.0-beta.6"
     },
     "files": [
         "babylon.nodeEditor.max.js.map",

+ 1 - 1
dist/preview release/package.json

@@ -7,7 +7,7 @@
     ],
     "name": "babylonjs",
     "description": "Babylon.js is a JavaScript 3D engine based on webgl.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"

+ 1 - 1
dist/preview release/packagesSizeBaseLine.json

@@ -1 +1 @@
-{"thinEngineOnly":118576,"engineOnly":155016,"sceneOnly":521091,"minGridMaterial":661799,"minStandardMaterial":816151}
+{"thinEngineOnly":118472,"engineOnly":154912,"sceneOnly":521352,"minGridMaterial":662427,"minStandardMaterial":816574}

+ 2 - 2
dist/preview release/postProcessesLibrary/package.json

@@ -4,7 +4,7 @@
     },
     "name": "babylonjs-post-process",
     "description": "The Babylon.js materials library is a collection of advanced materials to be used in a Babylon.js scene.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -28,7 +28,7 @@
     ],
     "license": "Apache-2.0",
     "dependencies": {
-        "babylonjs": "4.2.0-beta.5"
+        "babylonjs": "4.2.0-beta.6"
     },
     "engines": {
         "node": "*"

+ 2 - 2
dist/preview release/proceduralTexturesLibrary/package.json

@@ -4,7 +4,7 @@
     },
     "name": "babylonjs-procedural-textures",
     "description": "The Babylon.js materials library is a collection of advanced materials to be used in a Babylon.js scene.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -28,7 +28,7 @@
     ],
     "license": "Apache-2.0",
     "dependencies": {
-        "babylonjs": "4.2.0-beta.5"
+        "babylonjs": "4.2.0-beta.6"
     },
     "engines": {
         "node": "*"

+ 3 - 3
dist/preview release/serializers/package.json

@@ -4,7 +4,7 @@
     },
     "name": "babylonjs-serializers",
     "description": "The Babylon.js serializers library is an extension you can use to serialize Babylon scenes.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -28,8 +28,8 @@
     ],
     "license": "Apache-2.0",
     "dependencies": {
-        "babylonjs": "4.2.0-beta.5",
-        "babylonjs-gltf2interface": "4.2.0-beta.5"
+        "babylonjs": "4.2.0-beta.6",
+        "babylonjs-gltf2interface": "4.2.0-beta.6"
     },
     "engines": {
         "node": "*"

File diff suppressed because it is too large
+ 52784 - 52529
dist/preview release/viewer/babylon.module.d.ts


File diff suppressed because it is too large
+ 27 - 23
dist/preview release/viewer/babylon.viewer.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js


+ 3 - 0
dist/preview release/what's new.md

@@ -31,6 +31,7 @@
 - Added support for `material.disableColorWrite` ([Deltakosh](https://github.com/deltakosh))
 - The Mesh Asset Task also accepts File as sceneInput ([RaananW](https://github.com/RaananW))
 - Gizmo axis thickness ([cedricguillemet](https://github.com/cedricguillemet))
+- When no submesh can be picked(pointcloud), falls back to bbox intersection ([cedricguillemet](https://github.com/cedricguillemet))
 - Added support preserving vert colors for CSG objects ([PirateJC](https://github.com/PirateJC))
 - Added `boundingBoxRenderer.onBeforeBoxRenderingObservable` and `boundingBoxRenderer.onAfterBoxRenderingObservable` ([Deltakosh](https://github.com/deltakosh))
 - Better plane handling for PointerDragBehavior when camera direction colinear to axis ([cedricguillemet](https://github.com/cedricguillemet))
@@ -49,6 +50,7 @@
 - Added support for multi-pointer mesh selection and pointer over/out triggers ([#8820](https://github.com/BabylonJS/Babylon.js/issues/8820)) ([RaananW](https://github.com/RaananW))
 - Changed DeviceSourceManager getInput contract to no longer return nullable values for reals this time. Also added proper cleanup for DeviceSourceManager observables ([Drigax](https://github.com/drigax))
 - Default Loading screen supports any image size and ratio ([#8845](https://github.com/BabylonJS/Babylon.js/issues/8845)) ([RaananW](https://github.com/RaananW))
+- Added optional success and error callbacks for freezeActiveMeshes ([RaananW](https://github.com/RaananW))
 
 ### Engine
 
@@ -167,6 +169,7 @@
 - Added the possibility to update the shader code before being compiled ([Popov72](https://github.com/Popov72))
 - Added the `shadowOnly` property to the `BackgroundMaterial` class ([Popov72](https://github.com/Popov72))
 - Added support for lightmaps in unlit PBR materials ([Popov72](https://github.com/Popov72))
+- Added `muted` setting to `VideoTexture`, fix autoplay in Chrome ([simonihmig](https://github.com/simonihmig))
 
 ### Meshes
 

+ 2 - 0
materialsLibrary/src/cell/cell.fragment.fx

@@ -146,4 +146,6 @@ void main(void)
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
 }

+ 3 - 0
materialsLibrary/src/cell/cellMaterial.ts

@@ -43,6 +43,7 @@ class CellMaterialDefines extends MaterialDefines {
     public CUSTOMUSERLIGHTING = true;
     public CELLBASIC = true;
     public DEPTHPREPASS = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -158,6 +159,8 @@ export class CellMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 2 - 0
materialsLibrary/src/fire/fire.fragment.fx

@@ -97,4 +97,6 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
 }

+ 3 - 0
materialsLibrary/src/fire/fireMaterial.ts

@@ -39,6 +39,7 @@ class FireMaterialDefines extends MaterialDefines {
     public BonesPerMesh = 0;
     public NUM_BONE_INFLUENCERS = 0;
     public INSTANCES = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -151,6 +152,8 @@ export class FireMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 3 - 0
materialsLibrary/src/fur/fur.fragment.fx

@@ -130,4 +130,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
+
 }

+ 3 - 0
materialsLibrary/src/fur/furMaterial.ts

@@ -45,6 +45,7 @@ class FurMaterialDefines extends MaterialDefines {
     public BonesPerMesh = 0;
     public INSTANCES = false;
     public HIGHLEVEL = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -235,6 +236,8 @@ export class FurMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 3 - 0
materialsLibrary/src/gradient/gradient.fragment.fx

@@ -99,4 +99,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
+
 }

+ 3 - 0
materialsLibrary/src/gradient/gradientMaterial.ts

@@ -39,6 +39,7 @@ class GradientMaterialDefines extends MaterialDefines {
     public NUM_BONE_INFLUENCERS = 0;
     public BonesPerMesh = 0;
     public INSTANCES = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -148,6 +149,8 @@ export class GradientMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 2 - 0
materialsLibrary/src/grid/grid.fragment.fx

@@ -116,4 +116,6 @@ void main(void) {
     #endif
 #else    
 #endif
+
+#include<imageProcessingCompatibility>
 }

+ 3 - 0
materialsLibrary/src/grid/gridMaterial.ts

@@ -25,6 +25,7 @@ class GridMaterialDefines extends MaterialDefines {
     public UV2 = false;
     public INSTANCES = false;
     public THIN_INSTANCES = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -177,6 +178,8 @@ export class GridMaterial extends PushMaterial {
                 attribs.push(VertexBuffer.UV2Kind);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             MaterialHelper.PrepareAttributesForInstances(attribs, defines);
 
             // Defines

+ 2 - 0
materialsLibrary/src/lava/lava.fragment.fx

@@ -153,4 +153,6 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
 }

+ 3 - 0
materialsLibrary/src/lava/lavaMaterial.ts

@@ -82,6 +82,7 @@ class LavaMaterialDefines extends MaterialDefines {
     public BonesPerMesh = 0;
     public INSTANCES = false;
     public UNLIT = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -218,6 +219,8 @@ export class LavaMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 2 - 0
materialsLibrary/src/mix/mix.fragment.fx

@@ -164,4 +164,6 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
 }

+ 3 - 0
materialsLibrary/src/mix/mixMaterial.ts

@@ -43,6 +43,7 @@ class MixMaterialDefines extends MaterialDefines {
     public BonesPerMesh = 0;
     public INSTANCES = false;
     public MIXMAP2 = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -246,6 +247,8 @@ export class MixMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 3 - 0
materialsLibrary/src/normal/normal.fragment.fx

@@ -97,4 +97,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
+
 }

+ 3 - 0
materialsLibrary/src/normal/normalMaterial.ts

@@ -80,6 +80,7 @@ class NormalMaterialDefines extends MaterialDefines {
     public BonesPerMesh = 0;
     public INSTANCES = false;
     public LIGHTING = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -195,6 +196,8 @@ export class NormalMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 2 - 0
materialsLibrary/src/shadowOnly/shadowOnly.fragment.fx

@@ -52,4 +52,6 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
 }

+ 3 - 0
materialsLibrary/src/shadowOnly/shadowOnlyMaterial.ts

@@ -33,6 +33,7 @@ class ShadowOnlyMaterialDefines extends MaterialDefines {
     public NUM_BONE_INFLUENCERS = 0;
     public BonesPerMesh = 0;
     public INSTANCES = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -156,6 +157,8 @@ export class ShadowOnlyMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 2 - 0
materialsLibrary/src/simple/simple.fragment.fx

@@ -96,4 +96,6 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
 }

+ 3 - 0
materialsLibrary/src/simple/simpleMaterial.ts

@@ -40,6 +40,7 @@ class SimpleMaterialDefines extends MaterialDefines {
     public NUM_BONE_INFLUENCERS = 0;
     public BonesPerMesh = 0;
     public INSTANCES = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -147,6 +148,8 @@ export class SimpleMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 2 - 0
materialsLibrary/src/sky/sky.fragment.fx

@@ -168,4 +168,6 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
 }

+ 3 - 0
materialsLibrary/src/sky/skyMaterial.ts

@@ -29,6 +29,7 @@ class SkyMaterialDefines extends MaterialDefines {
     public FOG = false;
     public VERTEXCOLOR = false;
     public VERTEXALPHA = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -194,6 +195,8 @@ export class SkyMaterial extends PushMaterial {
                 fallbacks.addFallback(1, "FOG");
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 3 - 0
materialsLibrary/src/terrain/terrain.fragment.fx

@@ -180,4 +180,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
+
 }

+ 3 - 0
materialsLibrary/src/terrain/terrainMaterial.ts

@@ -43,6 +43,7 @@ class TerrainMaterialDefines extends MaterialDefines {
     public NUM_BONE_INFLUENCERS = 0;
     public BonesPerMesh = 0;
     public INSTANCES = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -209,6 +210,8 @@ export class TerrainMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 3 - 0
materialsLibrary/src/triPlanar/triPlanarMaterial.ts

@@ -47,6 +47,7 @@ class TriPlanarMaterialDefines extends MaterialDefines {
     public NUM_BONE_INFLUENCERS = 0;
     public BonesPerMesh = 0;
     public INSTANCES = false;
+    public IMAGEPROCESSINGPOSTPROCESS = false;
 
     constructor() {
         super();
@@ -210,6 +211,8 @@ export class TriPlanarMaterial extends PushMaterial {
                 fallbacks.addCPUSkinningFallback(0, mesh);
             }
 
+            defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
+
             //Attributes
             var attribs = [VertexBuffer.PositionKind];
 

+ 3 - 0
materialsLibrary/src/triPlanar/triplanar.fragment.fx

@@ -147,4 +147,7 @@ void main(void) {
 #include<fogFragment>
 
 	gl_FragColor = color;
+
+#include<imageProcessingCompatibility>
+
 }

+ 1 - 1
package.json

@@ -7,7 +7,7 @@
     ],
     "name": "babylonjs",
     "description": "Babylon.js is a JavaScript 3D engine based on webgl.",
-    "version": "4.2.0-beta.5",
+    "version": "4.2.0-beta.6",
     "repository": {
         "type": "git",
         "url": "https://github.com/BabylonJS/Babylon.js.git"

+ 34 - 0
src/Engines/Extensions/engine.multiRender.ts

@@ -39,9 +39,43 @@ declare module "../../Engines/thinEngine" {
          * @param attachments gl attachments
          */
         bindAttachments(attachments: number[]) : void;
+
+        /**
+         * Creates a layout object to draw/clear on specific textures in a MRT
+         * @param textureStatus textureStatus[i] indicates if the i-th is active
+         * @returns A layout to be fed to the engine, calling `bindAttachments`.
+         */
+        buildTextureLayout(textureStatus: boolean[]) : number[];
+
+        /**
+         * Restores the webgl state to only draw on the main color attachment
+         */
+        restoreSingleAttachment() : void;
     }
 }
 
+ThinEngine.prototype.restoreSingleAttachment = function(): void {
+    const gl = this._gl;
+
+    this.bindAttachments([gl.BACK]);
+};
+
+ThinEngine.prototype.buildTextureLayout = function(textureStatus: boolean[]): number[] {
+    const gl = this._gl;
+
+    const result = [];
+
+    for (let i = 0; i < textureStatus.length; i++) {
+        if (textureStatus[i]) {
+            result.push((<any>gl)["COLOR_ATTACHMENT" + i]);
+        } else {
+            result.push(gl.NONE);
+        }
+    }
+
+    return result;
+};
+
 ThinEngine.prototype.bindAttachments = function(attachments: number[]): void {
     const gl = this._gl;
 

+ 49 - 3
src/Engines/nativeEngine.ts

@@ -24,6 +24,8 @@ import { IWebRequest } from '../Misc/interfaces/iWebRequest';
 import { EngineStore } from './engineStore';
 import { ShaderCodeInliner } from "./Processors/shaderCodeInliner";
 import { WebGL2ShaderProcessor } from '../Engines/WebGL/webGL2ShaderProcessors';
+import { RenderTargetTextureSize } from '../Engines/Extensions/engine.renderTarget';
+import { DepthTextureCreationOptions } from '../Engines/depthTextureCreationOptions';
 
 interface INativeEngine {
 
@@ -129,6 +131,7 @@ interface INativeEngine {
     setFloat4(uniform: WebGLUniformLocation, x: number, y: number, z: number, w: number): void;
 
     createTexture(): WebGLTexture;
+    createDepthTexture(texture: WebGLTexture, width: number, height: number): WebGLTexture;
     loadTexture(texture: WebGLTexture, data: ArrayBufferView, generateMips: boolean, invertY: boolean, onSuccess: () => void, onError: () => void): void;
     loadCubeTexture(texture: WebGLTexture, data: Array<ArrayBufferView>, generateMips: boolean, onSuccess: () => void, onError: () => void): void;
     loadCubeTextureWithMips(texture: WebGLTexture, data: Array<Array<ArrayBufferView>>, onSuccess: () => void, onError: () => void): void;
@@ -964,6 +967,22 @@ export class NativeEngine extends Engine {
         this._native.deleteTexture(texture);
     }
 
+    /**
+     * Update the content of a dynamic texture
+     * @param texture defines the texture to update
+     * @param canvas defines the canvas containing the source
+     * @param invertY defines if data must be stored with Y axis inverted
+     * @param premulAlpha defines if alpha is stored as premultiplied
+     * @param format defines the format of the data
+     * @param forceBindTexture if the texture should be forced to be bound eg. after a graphics context loss (Default: false)
+     */
+    public updateDynamicTexture(texture: Nullable<InternalTexture>, canvas: HTMLCanvasElement, invertY: boolean, premulAlpha: boolean = false, format?: number): void {
+        // TODO: Stub! This function is needed for some GLTF validation tests.
+        // Loads a dummy 8x8 transparent png
+        var imageData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYSURBVChTY/z//z8DPsAEpXGC4aCAgQEAGGMDDWwwgqsAAAAASUVORK5CYII=';
+        this.createTexture('data:my_image_name', true, invertY, null, Texture.BILINEAR_SAMPLINGMODE, undefined, undefined, imageData, texture, NativeEngine.TEXTUREFORMAT_RGBA, null, undefined);
+    }
+
     // TODO: Refactor to share more logic with babylon.engine.ts version.
     /**
      * Usually called from Texture.ts.
@@ -1119,6 +1138,25 @@ export class NativeEngine extends Engine {
         return texture;
     }
 
+    _createDepthStencilTexture(size: RenderTargetTextureSize, options: DepthTextureCreationOptions): NativeTexture {
+        var texture = new NativeTexture(this, InternalTextureSource.Depth);
+
+        const width = (<{ width: number, height: number, layers?: number }>size).width || <number>size;
+        const height = (<{ width: number, height: number, layers?: number }>size).height || <number>size;
+
+        var framebuffer = this._native.createDepthTexture(
+            texture._webGLTexture!,
+            width,
+            height);
+
+        texture._framebuffer = framebuffer;
+        return texture;
+    }
+
+    public _releaseFramebufferObjects(texture: InternalTexture): void {
+        // TODO
+    }
+
     /**
      * Creates a cube texture
      * @param rootUrl defines the url where the files to load is located
@@ -1327,10 +1365,14 @@ export class NativeEngine extends Engine {
         }
 
         if (forceFullscreenViewport) {
-            throw new Error("forceFullscreenViewport for frame buffers not yet supported in NativeEngine.");
+            //Not supported yet but don't stop rendering
         }
 
-        this._bindUnboundFramebuffer(texture._framebuffer);
+        if (texture._depthStencilTexture) {
+            this._bindUnboundFramebuffer(texture._depthStencilTexture._framebuffer);
+        } else {
+            this._bindUnboundFramebuffer(texture._framebuffer);
+        }
     }
 
     public unBindFramebuffer(texture: InternalTexture, disableGenerateMipMaps = false, onBeforeUnbind?: () => void): void {
@@ -1464,7 +1506,11 @@ export class NativeEngine extends Engine {
 
     /** @hidden */
     public _bindTexture(channel: number, texture: InternalTexture): void {
-        throw new Error("_bindTexture not implemented.");
+        let uniform = this._boundUniforms[channel];
+        if (!uniform) {
+            return ;
+        }
+        this._native.setTexture(uniform, texture._webGLTexture);
     }
 
     protected _deleteBuffer(buffer: NativeDataBuffer): void {

+ 8 - 8
src/Engines/thinEngine.ts

@@ -157,14 +157,14 @@ export class ThinEngine {
      */
     // Not mixed with Version for tooling purpose.
     public static get NpmPackage(): string {
-        return "babylonjs@4.2.0-beta.5";
+        return "babylonjs@4.2.0-beta.6";
     }
 
     /**
      * Returns the current version of the framework
      */
     public static get Version(): string {
-        return "4.2.0-beta.5";
+        return "4.2.0-beta.6";
     }
 
     /**
@@ -708,13 +708,13 @@ export class ThinEngine {
         this._badOS = /iPad/i.test(navigator.userAgent) || /iPhone/i.test(navigator.userAgent);
 
         // Starting with iOS 14, we can trust the browser
-        let matches = navigator.userAgent.match(/Version\/(\d+)/);
+        // let matches = navigator.userAgent.match(/Version\/(\d+)/);
 
-        if (matches && matches.length === 2) {
-            if (parseInt(matches[1]) >= 14) {
-                this._badOS = false;
-            }
-        }
+        // if (matches && matches.length === 2) {
+        //     if (parseInt(matches[1]) >= 14) {
+        //         this._badOS = false;
+        //     }
+        // }
 
         // Detect if we are running on a faulty buggy desktop OS.
         this._badDesktopOS = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);

+ 12 - 0
src/Materials/Textures/multiRenderTarget.ts

@@ -217,6 +217,18 @@ export class MultiRenderTarget extends RenderTargetTexture {
     }
 
     /**
+     * Replaces a texture within the MRT.
+     * @param texture The new texture to insert in the MRT
+     * @param index The index of the texture to replace
+     */
+    public replaceTexture(texture: Texture, index: number) {
+        if (texture._texture) {
+            this._textures[index] = texture;
+            this._internalTextures[index] = texture._texture;
+        }
+    }
+
+    /**
      * Define the number of samples used if MSAA is enabled.
      */
     public get samples(): number {

+ 0 - 0
src/Materials/Textures/videoTexture.ts


Some files were not shown because too many files changed in this diff