aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJukka Jylänki <jujjyl@gmail.com>2014-01-02 18:00:32 +0200
committerJukka Jylänki <jujjyl@gmail.com>2014-01-09 20:05:26 +0200
commitc6582b7766e7754032f6fb7aae278f7f77090615 (patch)
tree6e4303610adc997ade66aca7aaca22c20824b05b /src
parent08af8ec7784fa0263f7bd319aac42be89d094587 (diff)
Optimize GL FFP emulation layer by omitting redundant glUseProgram for identical shader programs.
Diffstat (limited to 'src')
-rw-r--r--src/library_gl.js9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/library_gl.js b/src/library_gl.js
index 20c7d85e..3e022539 100644
--- a/src/library_gl.js
+++ b/src/library_gl.js
@@ -2112,8 +2112,9 @@ var LibraryGL = {
if (GL.currProgram != program) {
GL.immediate.currentRenderer = null; // This changes the FFP emulation shader program, need to recompute that.
GL.currProgram = program;
+ GL.immediate.fixedFunctionProgram = 0;
+ glUseProgram(program);
}
- glUseProgram(program);
}
var glDeleteProgram = _glDeleteProgram;
@@ -3745,8 +3746,10 @@ var LibraryGL = {
#endif
if (!GL.currProgram) {
- Module.ctx.useProgram(this.program);
- GL.immediate.fixedFunctionProgram = this.program;
+ if (GL.immediate.fixedFunctionProgram != this.program) {
+ Module.ctx.useProgram(this.program);
+ GL.immediate.fixedFunctionProgram = this.program;
+ }
}
if (this.modelViewLocation && this.modelViewMatrixVersion != GL.immediate.matrixVersion[0/*m*/]) {