aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-04-08 20:56:28 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-04-08 21:08:35 -0700
commit5b7689b6dbdb2ea5d9171220be29e6beafb4d95f (patch)
tree14a728aa12eee8568e99cd707da5a27eb60e7de9 /src
parent2f2605f1752976a28229298224920a40b4b86848 (diff)
more gl 1.5 emulation
Diffstat (limited to 'src')
-rw-r--r--src/library_gl.js27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/library_gl.js b/src/library_gl.js
index cdea449c..3ec7c81e 100644
--- a/src/library_gl.js
+++ b/src/library_gl.js
@@ -748,19 +748,38 @@ var LibraryGL = {
// GL emulation: provides misc. functionality not present in OpenGL ES 2.0 or WebGL
- $GLEmulation__deps: ['glCreateShader', 'glShaderSource', 'glCompileShader', 'glCreateProgram', 'glDeleteShader', 'glDeleteProgram'],
+ $GLEmulation__deps: ['glCreateShader', 'glShaderSource', 'glCompileShader', 'glCreateProgram', 'glDeleteShader', 'glDeleteProgram', 'glAttachShader', 'glActiveTexture', 'glGetShaderiv', 'glGetProgramiv', 'glLinkProgram'],
$GLEmulation: {
procReplacements: {
'glCreateShaderObjectARB': 'glCreateShader',
'glShaderSourceARB': 'glShaderSource',
'glCompileShaderARB': 'glCompileShader',
'glCreateProgramObjectARB': 'glCreateProgram',
+ 'glAttachObjectARB': 'glAttachShader',
+ 'glLinkProgramARB': 'glLinkProgram',
+ 'glActiveTextureARB': 'glActiveTexture'
},
procs: {
- glDeleteObjectARB: function() {
- console.log('WARNING: not deleting through glDeleteObject, not sure if shader or program');
- }
+ glDeleteObjectARB: function(id) {
+ if (GL.programs[id]) {
+ _glDeleteProgram(id);
+ } else if (GL.shaders[id]) {
+ _glDeleteShader(id);
+ } else {
+ console.log('WARNING: deleteObjectARB received invalid id: ' + id);
+ }
+ },
+
+ glGetObjectParameterivARB: function(id, type, result) {
+ if (GL.programs[id]) {
+ _glGetProgramiv(id, type, result);
+ } else if (GL.shaders[id]) {
+ _glGetShaderiv(id, type, result);
+ } else {
+ console.log('WARNING: getObjectParameterivARB received invalid id: ' + id);
+ }
+ },
},
getProcAddress: function(name_) {