engine-toolkit
engine-toolkit copied to clipboard
The Stats component needs to hook into the drawElementsInstanced, drawArraysInstanced, drawElementsInstancedANGLE, and drawArraysInstancedANGLE methods.
When I try to draw a mesh using GPU Instancing, the stats show 0 draw calls and 0 triangles. Here is my solution. `
if (gl instanceof WebGL2RenderingContext) {
this.realDrawElementsInstanced = gl.drawElementsInstanced;
this.realDrawArraysInstanced = gl.drawArraysInstanced;
gl.drawElementsInstanced = this.hookedDrawElementsInstanced.bind(this);
gl.drawArraysInstanced = this.hookedDrawArraysInstanced.bind(this);
} else {
const ext = gl.getExtension("ANGLE_instanced_arrays");
if (ext) {
this.realDrawElementsInstanced = ext.drawElementsInstancedANGLE;
this.realDrawArraysInstanced = ext.drawArraysInstancedANGLE;
ext.drawElementsInstancedANGLE = this.hookedDrawElementsInstanced.bind(this);
ext.drawArraysInstancedANGLE = this.hookedDrawArraysInstanced.bind(this);
}
}
`