aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEhsan Akhgari <ehsan.akhgari@gmail.com>2012-01-22 18:49:27 -0500
committerEhsan Akhgari <ehsan.akhgari@gmail.com>2012-01-22 18:52:10 -0500
commit5f498fad09a17135d32dd565505ee5ae3ce29397 (patch)
treea32319dd50191abb84f1cf530ff3aac27009bbbc /src
parent92b660065c16e4089ef9fcf419de0ea444566fff (diff)
Add GL APIs for program creation
Diffstat (limited to 'src')
-rw-r--r--src/library_gl.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/library_gl.js b/src/library_gl.js
index ef72112e..062dbfe9 100644
--- a/src/library_gl.js
+++ b/src/library_gl.js
@@ -301,6 +301,37 @@ var LibraryGL = {
}
},
+ glCreateProgram_deps: ['$GL'],
+ glCreateProgram: function() {
+ return GL.hashtable("program").add(Module.ctx.createProgram());
+ },
+
+ glAttachShader_deps: ['$GL'],
+ glAttachShader: function(program, shader) {
+ Module.ctx.attachShader(GL.hashtable("program").get(program),
+ GL.hashtable("shader").get(shader));
+ },
+
+ glLinkProgram_deps: ['$GL'],
+ glLinkProgram: function(program) {
+ Module.ctx.linkProgram(GL.hashtable("program").get(program));
+ },
+
+ glGetProgramInfoLog_deps: ['$GL'],
+ glGetProgramInfoLog: function(program, maxLength, length, infoLog) {
+ var log = Module.ctx.getProgramInfoLog(GL.hashtable("program").get(program));
+ log.slice(0, maxLength - 1);
+ writeStringToMemory(log, infoLog);
+ if (length) {
+ {{{ makeSetValue('length', 'i', 'log.length', 'i32') }}}
+ }
+ },
+
+ glUseProgram_deps: ['$Gl'],
+ glUseProgram: function(program) {
+ Module.ctx.useProgram(GL.hashtable("program").get(program));
+ },
+
glClearColor: function(red, green, blue, alpha) {
Module.ctx.clearColor(red, green, blue, alpha);
},