import { syncUniforms } from './syncUniforms';
export function install(PIXI)
{
if (!PIXI || !PIXI.systems || !PIXI.systems.ShaderSystem)
{
throw new Error('Unable to patch ShaderSystem, class not found.');
}
const { ShaderSystem } = PIXI.systems;
let proceed = false;
// Do a quick check to see if the patch is needed
// want to make sure we only apply if necessary!
try
{
ShaderSystem.prototype.systemCheck.call(null);
proceed = false;
}
catch (err)
{
proceed = true;
}
// Only apply if needed
if (proceed)
{
Object.assign(ShaderSystem.prototype,
{
systemCheck()
{
// do nothing, don't throw error
},
syncUniforms(group, glProgram)
{
const { shader, renderer } = this;
/* eslint-disable max-len */
syncUniforms(
group,
shader.program.uniformData,
glProgram.uniformData,
group.uniforms,
renderer
);
/* eslint-disable max-len */
},
}
);
}
}