Don't apply ghost when extracting drawables
This commit is contained in:
parent
3bc00176ed
commit
e035cadb04
@ -693,7 +693,8 @@ class RenderWebGL extends EventEmitter {
|
|||||||
gl.clear(gl.COLOR_BUFFER_BIT);
|
gl.clear(gl.COLOR_BUFFER_BIT);
|
||||||
try {
|
try {
|
||||||
gl.disable(gl.BLEND);
|
gl.disable(gl.BLEND);
|
||||||
this._drawThese([drawableID], ShaderManager.DRAW_MODE.default, projection);
|
this._drawThese([drawableID], ShaderManager.DRAW_MODE.default, projection,
|
||||||
|
{effectMask: ~ShaderManager.EFFECT_INFO.ghost.mask});
|
||||||
} finally {
|
} finally {
|
||||||
gl.enable(gl.BLEND);
|
gl.enable(gl.BLEND);
|
||||||
}
|
}
|
||||||
@ -965,6 +966,7 @@ class RenderWebGL extends EventEmitter {
|
|||||||
* @param {object} [opts] Options for drawing
|
* @param {object} [opts] Options for drawing
|
||||||
* @param {idFilterFunc} opts.filter An optional filter function.
|
* @param {idFilterFunc} opts.filter An optional filter function.
|
||||||
* @param {object.<string,*>} opts.extraUniforms Extra uniforms for the shaders.
|
* @param {object.<string,*>} opts.extraUniforms Extra uniforms for the shaders.
|
||||||
|
* @param {int} opts.effectMask Bitmask for effects to allow
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
_drawThese (drawables, drawMode, projection, opts = {}) {
|
_drawThese (drawables, drawMode, projection, opts = {}) {
|
||||||
@ -989,7 +991,8 @@ class RenderWebGL extends EventEmitter {
|
|||||||
// If the texture isn't ready yet, skip it.
|
// If the texture isn't ready yet, skip it.
|
||||||
if (!drawable.skin.getTexture(drawableScale)) continue;
|
if (!drawable.skin.getTexture(drawableScale)) continue;
|
||||||
|
|
||||||
const effectBits = drawable.getEnabledEffects();
|
let effectBits = drawable.getEnabledEffects();
|
||||||
|
effectBits &= opts.hasOwnProperty('effectMask') ? opts.effectMask : effectBits;
|
||||||
const newShader = this._shaderManager.getShader(drawMode, effectBits);
|
const newShader = this._shaderManager.getShader(drawMode, effectBits);
|
||||||
if (currentShader !== newShader) {
|
if (currentShader !== newShader) {
|
||||||
currentShader = newShader;
|
currentShader = newShader;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user