diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-06-06 14:46:52 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-06-06 14:46:52 -0700 |
commit | e1055ada578f6218b5c16104ea554cc74c831959 (patch) | |
tree | aee51596059b4e3462dd9e16579232c788725f70 /src | |
parent | 949a025d0faaa95b86ced2951cefa33ecbd173aa (diff) |
prefetch extensions
Diffstat (limited to 'src')
-rw-r--r-- | src/webGLClient.js | 6 | ||||
-rw-r--r-- | src/webGLWorker.js | 17 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/webGLClient.js b/src/webGLClient.js index 81310814..5a69c4a4 100644 --- a/src/webGLClient.js +++ b/src/webGLClient.js @@ -7,10 +7,10 @@ WebGLClient.prefetch = function() { var canvas = document.createElement('canvas'); var ctx = canvas.getContext('webgl-experimental') || canvas.getContext('webgl'); if (!ctx) return; - var data = {}; + var parameters = {}; ['MAX_VERTEX_ATTRIBS'].forEach(function(name) { - data[ctx[name]] = ctx.getParameter(ctx[name]); + parameters[ctx[name]] = ctx.getParameter(ctx[name]); }); - worker.postMessage({ target: 'gl', op: 'setPrefetchedParameters', data: data }); + worker.postMessage({ target: 'gl', op: 'setPrefetched', parameters: parameters, extensions: ctx.getSupportedExtensions() }); }; diff --git a/src/webGLWorker.js b/src/webGLWorker.js index 2a8e47ff..4a2f7bbb 100644 --- a/src/webGLWorker.js +++ b/src/webGLWorker.js @@ -6,6 +6,7 @@ function WebGLWorker() { //======= this.prefetchedParameters = {}; + this.prefetchedExtensions = {}; //=========== // Constants @@ -441,8 +442,9 @@ function WebGLWorker() { this.onmessage = function(msg) { dump('worker GL got ' + JSON.stringify(msg) + '\n'); switch(msg.op) { - case 'setPrefetchedParameters': { - that.prefetchedParameters = msg.data; + case 'setPrefetched': { + that.prefetchedParameters = msg.parameters; + that.prefetchedExtensions = msg.extensions; break; } default: throw 'weird gl onmessage ' + JSON.stringify(msg); @@ -462,5 +464,16 @@ function WebGLWorker() { if (name in this.prefetchedParameters) return this.prefetchedParameters[name]; throw 'TODO: get parameter ' + name + ' : ' + revname(name); }; + + this.getExtension = function(name) { + dump('worker getExtension ' + JSON.stringify(this.prefetchedExtensions) + '\n'); + var i = this.prefetchedExtensions.indexOf(name); + if (i < 0) return null; + return true; // TODO: return an object here + }; + + this.getSupportedExtensions = function() { + return this.prefetchedExtensions; + }; } |