diff options
author | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-01-22 18:49:27 -0500 |
---|---|---|
committer | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-01-22 18:52:10 -0500 |
commit | 5f498fad09a17135d32dd565505ee5ae3ce29397 (patch) | |
tree | a32319dd50191abb84f1cf530ff3aac27009bbbc /src | |
parent | 92b660065c16e4089ef9fcf419de0ea444566fff (diff) |
Add GL APIs for program creation
Diffstat (limited to 'src')
-rw-r--r-- | src/library_gl.js | 31 |
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); }, |