summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-06-06 14:46:52 -0700
committerAlon Zakai <alonzakai@gmail.com>2014-06-06 14:46:52 -0700
commite1055ada578f6218b5c16104ea554cc74c831959 (patch)
treeaee51596059b4e3462dd9e16579232c788725f70 /src
parent949a025d0faaa95b86ced2951cefa33ecbd173aa (diff)
prefetch extensions
Diffstat (limited to 'src')
-rw-r--r--src/webGLClient.js6
-rw-r--r--src/webGLWorker.js17
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;
+ };
}