|
@@ -7474,6 +7474,9 @@ var BABYLON;
|
|
// Deterministic lockstepMaxSteps
|
|
// Deterministic lockstepMaxSteps
|
|
this._deterministicLockstep = false;
|
|
this._deterministicLockstep = false;
|
|
this._lockstepMaxSteps = 4;
|
|
this._lockstepMaxSteps = 4;
|
|
|
|
+ // Lost context
|
|
|
|
+ this.onContextLostObservable = new BABYLON.Observable();
|
|
|
|
+ this.onContextRestoredObservable = new BABYLON.Observable();
|
|
this._contextWasLost = false;
|
|
this._contextWasLost = false;
|
|
this._doNotHandleContextLost = false;
|
|
this._doNotHandleContextLost = false;
|
|
// FPS
|
|
// FPS
|
|
@@ -7609,6 +7612,7 @@ var BABYLON;
|
|
evt.preventDefault();
|
|
evt.preventDefault();
|
|
_this._contextWasLost = true;
|
|
_this._contextWasLost = true;
|
|
BABYLON.Tools.Warn("WebGL context lost.");
|
|
BABYLON.Tools.Warn("WebGL context lost.");
|
|
|
|
+ _this.onContextLostObservable.notifyObservers(_this);
|
|
};
|
|
};
|
|
this._onContextRestored = function (evt) {
|
|
this._onContextRestored = function (evt) {
|
|
// Rebuild gl context
|
|
// Rebuild gl context
|
|
@@ -7622,6 +7626,7 @@ var BABYLON;
|
|
// Cache
|
|
// Cache
|
|
_this.wipeCaches(true);
|
|
_this.wipeCaches(true);
|
|
BABYLON.Tools.Warn("WebGL context successfully restored.");
|
|
BABYLON.Tools.Warn("WebGL context successfully restored.");
|
|
|
|
+ _this.onContextRestoredObservable.notifyObservers(_this);
|
|
_this._contextWasLost = false;
|
|
_this._contextWasLost = false;
|
|
};
|
|
};
|
|
canvas.addEventListener("webglcontextlost", this._onContextLost, false);
|
|
canvas.addEventListener("webglcontextlost", this._onContextLost, false);
|
|
@@ -12372,6 +12377,9 @@ var BABYLON;
|
|
if (this._occlusionQuery) {
|
|
if (this._occlusionQuery) {
|
|
this._occlusionQuery = null;
|
|
this._occlusionQuery = null;
|
|
}
|
|
}
|
|
|
|
+ if (this._edgesRenderer) {
|
|
|
|
+ this._edgesRenderer._rebuild();
|
|
|
|
+ }
|
|
if (!this.subMeshes) {
|
|
if (!this.subMeshes) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -46567,6 +46575,9 @@ var BABYLON;
|
|
this._setTextureReady = this.__setTextureReady.bind(this);
|
|
this._setTextureReady = this.__setTextureReady.bind(this);
|
|
this.video.addEventListener("playing", this._setTextureReady);
|
|
this.video.addEventListener("playing", this._setTextureReady);
|
|
};
|
|
};
|
|
|
|
+ VideoTexture.prototype._rebuild = function () {
|
|
|
|
+ this.update();
|
|
|
|
+ };
|
|
VideoTexture.prototype.update = function () {
|
|
VideoTexture.prototype.update = function () {
|
|
var now = BABYLON.Tools.Now;
|
|
var now = BABYLON.Tools.Now;
|
|
if (now - this._lastUpdate < 15 || this.video.readyState !== this.video.HAVE_ENOUGH_DATA) {
|
|
if (now - this._lastUpdate < 15 || this.video.readyState !== this.video.HAVE_ENOUGH_DATA) {
|
|
@@ -50352,6 +50363,11 @@ var BABYLON;
|
|
vertices.push(-1, -1);
|
|
vertices.push(-1, -1);
|
|
vertices.push(1, -1);
|
|
vertices.push(1, -1);
|
|
_this._vertexBuffers[BABYLON.VertexBuffer.PositionKind] = new BABYLON.VertexBuffer(engine, vertices, BABYLON.VertexBuffer.PositionKind, false, false, 2);
|
|
_this._vertexBuffers[BABYLON.VertexBuffer.PositionKind] = new BABYLON.VertexBuffer(engine, vertices, BABYLON.VertexBuffer.PositionKind, false, false, 2);
|
|
|
|
+ _this._createIndexBuffer();
|
|
|
|
+ return _this;
|
|
|
|
+ }
|
|
|
|
+ ProceduralTexture.prototype._createIndexBuffer = function () {
|
|
|
|
+ var engine = this.getScene().getEngine();
|
|
// Indices
|
|
// Indices
|
|
var indices = [];
|
|
var indices = [];
|
|
indices.push(0);
|
|
indices.push(0);
|
|
@@ -50360,9 +50376,15 @@ var BABYLON;
|
|
indices.push(0);
|
|
indices.push(0);
|
|
indices.push(2);
|
|
indices.push(2);
|
|
indices.push(3);
|
|
indices.push(3);
|
|
- _this._indexBuffer = engine.createIndexBuffer(indices);
|
|
|
|
- return _this;
|
|
|
|
- }
|
|
|
|
|
|
+ this._indexBuffer = engine.createIndexBuffer(indices);
|
|
|
|
+ };
|
|
|
|
+ ProceduralTexture.prototype._rebuild = function () {
|
|
|
|
+ this._vertexBuffers[BABYLON.VertexBuffer.PositionKind]._rebuild();
|
|
|
|
+ this._createIndexBuffer();
|
|
|
|
+ if (this.refreshRate === BABYLON.RenderTargetTexture.REFRESHRATE_RENDER_ONCE) {
|
|
|
|
+ this.refreshRate = BABYLON.RenderTargetTexture.REFRESHRATE_RENDER_ONCE;
|
|
|
|
+ }
|
|
|
|
+ };
|
|
ProceduralTexture.prototype.reset = function () {
|
|
ProceduralTexture.prototype.reset = function () {
|
|
if (this._effect === undefined) {
|
|
if (this._effect === undefined) {
|
|
return;
|
|
return;
|
|
@@ -68004,6 +68026,19 @@ var BABYLON;
|
|
this._lineShader.disableDepthWrite = true;
|
|
this._lineShader.disableDepthWrite = true;
|
|
this._lineShader.backFaceCulling = false;
|
|
this._lineShader.backFaceCulling = false;
|
|
};
|
|
};
|
|
|
|
+ EdgesRenderer.prototype._rebuild = function () {
|
|
|
|
+ var buffer = this._buffers[BABYLON.VertexBuffer.PositionKind];
|
|
|
|
+ if (buffer) {
|
|
|
|
+ buffer._rebuild();
|
|
|
|
+ }
|
|
|
|
+ buffer = this._buffers[BABYLON.VertexBuffer.NormalKind];
|
|
|
|
+ if (buffer) {
|
|
|
|
+ buffer._rebuild();
|
|
|
|
+ }
|
|
|
|
+ var scene = this._source.getScene();
|
|
|
|
+ var engine = scene.getEngine();
|
|
|
|
+ this._ib = engine.createIndexBuffer(this._linesIndices);
|
|
|
|
+ };
|
|
EdgesRenderer.prototype.dispose = function () {
|
|
EdgesRenderer.prototype.dispose = function () {
|
|
var buffer = this._buffers[BABYLON.VertexBuffer.PositionKind];
|
|
var buffer = this._buffers[BABYLON.VertexBuffer.PositionKind];
|
|
if (buffer) {
|
|
if (buffer) {
|