mirror of
https://github.com/photonstorm/phaser
synced 2025-02-16 05:58:30 +00:00
WebGLRenderer.textureFlush
is a new property that keeps track of the total texture flushes per frame.
This commit is contained in:
parent
a310bd08c0
commit
8d976d6ed5
1 changed files with 28 additions and 3 deletions
|
@ -604,6 +604,15 @@ var WebGLRenderer = new Class({
|
||||||
*/
|
*/
|
||||||
this.mipmapFilter = null;
|
this.mipmapFilter = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The number of times the renderer had to flush this frame, due to running out of texture units.
|
||||||
|
*
|
||||||
|
* @name Phaser.Renderer.WebGL.WebGLRenderer#textureFlush
|
||||||
|
* @type {number}
|
||||||
|
* @since 3.25.0
|
||||||
|
*/
|
||||||
|
this.textureFlush = 0;
|
||||||
|
|
||||||
this.init(this.config);
|
this.init(this.config);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1402,14 +1411,16 @@ var WebGLRenderer = new Class({
|
||||||
|
|
||||||
this.startActiveTexture++;
|
this.startActiveTexture++;
|
||||||
|
|
||||||
|
this.textureFlush++;
|
||||||
|
|
||||||
textureSource.glIndexCounter = this.startActiveTexture;
|
textureSource.glIndexCounter = this.startActiveTexture;
|
||||||
|
|
||||||
textureSource.glIndex = 0;
|
textureSource.glIndex = 1;
|
||||||
|
|
||||||
gl.activeTexture(gl.TEXTURE0);
|
gl.activeTexture(gl.TEXTURE1);
|
||||||
gl.bindTexture(gl.TEXTURE_2D, textureSource.glTexture);
|
gl.bindTexture(gl.TEXTURE_2D, textureSource.glTexture);
|
||||||
|
|
||||||
this.currentActiveTexture = 1;
|
this.currentActiveTexture = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1506,6 +1517,8 @@ var WebGLRenderer = new Class({
|
||||||
this.normalTexture = null;
|
this.normalTexture = null;
|
||||||
this.startActiveTexture++;
|
this.startActiveTexture++;
|
||||||
this.currentActiveTexture = 1;
|
this.currentActiveTexture = 1;
|
||||||
|
|
||||||
|
this.textureFlush++;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1534,6 +1547,8 @@ var WebGLRenderer = new Class({
|
||||||
|
|
||||||
this.currentActiveTexture = 1;
|
this.currentActiveTexture = 1;
|
||||||
this.startActiveTexture++;
|
this.startActiveTexture++;
|
||||||
|
|
||||||
|
this.textureFlush++;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1573,6 +1588,8 @@ var WebGLRenderer = new Class({
|
||||||
|
|
||||||
this.startActiveTexture++;
|
this.startActiveTexture++;
|
||||||
|
|
||||||
|
this.textureFlush++;
|
||||||
|
|
||||||
texture.glIndexCounter = this.startActiveTexture;
|
texture.glIndexCounter = this.startActiveTexture;
|
||||||
|
|
||||||
texture.glIndex = 1;
|
texture.glIndex = 1;
|
||||||
|
@ -2308,6 +2325,8 @@ var WebGLRenderer = new Class({
|
||||||
this.currentCameraMask.mask = null;
|
this.currentCameraMask.mask = null;
|
||||||
this.maskStack.length = 0;
|
this.maskStack.length = 0;
|
||||||
|
|
||||||
|
this.textureFlush = 0;
|
||||||
|
|
||||||
this.setPipeline(this.pipelines.TextureTintPipeline);
|
this.setPipeline(this.pipelines.TextureTintPipeline);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -2448,6 +2467,12 @@ var WebGLRenderer = new Class({
|
||||||
{
|
{
|
||||||
pipelines[key].onPostRender();
|
pipelines[key].onPostRender();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.textureFlush > 0)
|
||||||
|
{
|
||||||
|
this.startActiveTexture++;
|
||||||
|
this.currentActiveTexture = 1;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue