aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-06-17 14:35:12 -0700
committerAlon Zakai <alonzakai@gmail.com>2014-06-17 14:35:26 -0700
commit58788ba19e30125f4d577e5e19193bb287efaf28 (patch)
tree690bab39b1c7726b0449af060a54dd5f8a4d8c88 /src
parent2a0bf753441f2d5f5c9e05af9c58b8ac070651b9 (diff)
track arrayBuffer and elementArrayBuffer locally
Diffstat (limited to 'src')
-rw-r--r--src/webGLWorker.js20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/webGLWorker.js b/src/webGLWorker.js
index 38aafc11..b6762740 100644
--- a/src/webGLWorker.js
+++ b/src/webGLWorker.js
@@ -37,7 +37,9 @@ function WebGLWorker() {
var nextId = 1;
var bindings = {
- texture2D: null
+ texture2D: null,
+ arrayBuffer: null,
+ elementArrayBuffer: null
};
//===========
@@ -497,6 +499,12 @@ function WebGLWorker() {
case this.TEXTURE_BINDING_2D: {
return bindings.texture2D;
}
+ case this.ARRAY_BUFFER_BINDING: {
+ return bindings.arrayBuffer;
+ }
+ case this.ELEMENT_ARRAY_BUFFER_BINDING: {
+ return bindings.elementArrayBuffer;
+ }
default: throw 'TODO: get parameter ' + name + ' : ' + revname(name);
}
};
@@ -659,6 +667,16 @@ function WebGLWorker() {
};
this.bindBuffer = function(target, buffer) {
commandBuffer.push('bindBuffer', 2, target, buffer ? buffer.id : 0);
+ switch (target) {
+ case this.ARRAY_BUFFER_BINDING: {
+ bindings.arrayBuffer = buffer;
+ break;
+ }
+ case this.ELEMENT_ARRAY_BUFFER_BINDING: {
+ bindings.elementArrayBuffer = buffer;
+ break;
+ }
+ }
};
this.bufferData = function(target, something, usage) {
if (typeof something !== 'number') something = new something.constructor(something);