|
@@ -34376,13 +34376,17 @@ var Engine = /** @class */ (function (_super) {
|
|
|
/**
|
|
|
* Force the mipmap generation for the given render target texture
|
|
|
* @param texture defines the render target texture to use
|
|
|
+ * @param unbind defines whether or not to unbind the texture after generation. Defaults to true.
|
|
|
*/
|
|
|
- Engine.prototype.generateMipMapsForCubemap = function (texture) {
|
|
|
+ Engine.prototype.generateMipMapsForCubemap = function (texture, unbind) {
|
|
|
+ if (unbind === void 0) { unbind = true; }
|
|
|
if (texture.generateMipMaps) {
|
|
|
var gl = this._gl;
|
|
|
this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);
|
|
|
gl.generateMipmap(gl.TEXTURE_CUBE_MAP);
|
|
|
- this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);
|
|
|
+ if (unbind) {
|
|
|
+ this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
/** States */
|
|
@@ -53147,9 +53151,6 @@ var Layer = /** @class */ (function () {
|
|
|
var vertexBuffer = new _Meshes_buffer__WEBPACK_IMPORTED_MODULE_4__["VertexBuffer"](engine, vertices, _Meshes_buffer__WEBPACK_IMPORTED_MODULE_4__["VertexBuffer"].PositionKind, false, false, 2);
|
|
|
this._vertexBuffers[_Meshes_buffer__WEBPACK_IMPORTED_MODULE_4__["VertexBuffer"].PositionKind] = vertexBuffer;
|
|
|
this._createIndexBuffer();
|
|
|
- // Effects
|
|
|
- this._effect = engine.createEffect("layer", [_Meshes_buffer__WEBPACK_IMPORTED_MODULE_4__["VertexBuffer"].PositionKind], ["textureMatrix", "color", "scale", "offset"], ["textureSampler"], "");
|
|
|
- this._alphaTestEffect = engine.createEffect("layer", [_Meshes_buffer__WEBPACK_IMPORTED_MODULE_4__["VertexBuffer"].PositionKind], ["textureMatrix", "color", "scale", "offset"], ["textureSampler"], "#define ALPHATEST");
|
|
|
}
|
|
|
Object.defineProperty(Layer.prototype, "onDispose", {
|
|
|
/**
|
|
@@ -53217,9 +53218,21 @@ var Layer = /** @class */ (function () {
|
|
|
* Renders the layer in the scene.
|
|
|
*/
|
|
|
Layer.prototype.render = function () {
|
|
|
- var currentEffect = this.alphaTest ? this._alphaTestEffect : this._effect;
|
|
|
+ var engine = this._scene.getEngine();
|
|
|
+ var defines = "";
|
|
|
+ if (this.alphaTest) {
|
|
|
+ defines = "#define ALPHATEST";
|
|
|
+ }
|
|
|
+ if (this.texture && !this.texture.gammaSpace) {
|
|
|
+ defines += "\r\n#define LINEAR";
|
|
|
+ }
|
|
|
+ if (this._previousDefines !== defines) {
|
|
|
+ this._previousDefines = defines;
|
|
|
+ this._effect = engine.createEffect("layer", [_Meshes_buffer__WEBPACK_IMPORTED_MODULE_4__["VertexBuffer"].PositionKind], ["textureMatrix", "color", "scale", "offset"], ["textureSampler"], defines);
|
|
|
+ }
|
|
|
+ var currentEffect = this._effect;
|
|
|
// Check
|
|
|
- if (!currentEffect.isReady() || !this.texture || !this.texture.isReady()) {
|
|
|
+ if (!currentEffect || !currentEffect.isReady() || !this.texture || !this.texture.isReady()) {
|
|
|
return;
|
|
|
}
|
|
|
var engine = this._scene.getEngine();
|
|
@@ -79086,7 +79099,8 @@ var _DDSTextureLoader = /** @class */ (function () {
|
|
|
engine._unpackFlipY(info.isCompressed);
|
|
|
_Misc_dds__WEBPACK_IMPORTED_MODULE_2__["DDSTools"].UploadDDSLevels(engine, texture, data, info, loadMipmap, 6);
|
|
|
if (!info.isFourCC && info.mipmapCount === 1) {
|
|
|
- engine.generateMipMapsForCubemap(texture);
|
|
|
+ // Do not unbind as we still need to set the parameters.
|
|
|
+ engine.generateMipMapsForCubemap(texture, false);
|
|
|
}
|
|
|
}
|
|
|
engine._setCubeMapTextureParams(loadMipmap);
|
|
@@ -164633,9 +164647,11 @@ var kernelBlurVertexShader = { name: name, shader: shader };
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "layerPixelShader", function() { return layerPixelShader; });
|
|
|
/* harmony import */ var _Materials_effect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Materials/effect */ "./Materials/effect.ts");
|
|
|
+/* harmony import */ var _ShadersInclude_helperFunctions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShadersInclude/helperFunctions */ "./Shaders/ShadersInclude/helperFunctions.ts");
|
|
|
+
|
|
|
|
|
|
var name = 'layerPixelShader';
|
|
|
-var shader = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec4 color;\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\ngl_FragColor=baseColor*color;\n}";
|
|
|
+var shader = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec4 color;\n\n#include<helperFunctions>\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\n#ifdef LINEAR\nbaseColor.rgb=toGammaSpace(baseColor.rgb);\n#endif\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\ngl_FragColor=baseColor*color;\n}";
|
|
|
_Materials_effect__WEBPACK_IMPORTED_MODULE_0__["Effect"].ShadersStore[name] = shader;
|
|
|
/** @hidden */
|
|
|
var layerPixelShader = { name: name, shader: shader };
|