diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/library.js | 16 | ||||
-rw-r--r-- | src/library_gl.js | 28 |
2 files changed, 27 insertions, 17 deletions
diff --git a/src/library.js b/src/library.js index 86c499a7..7eb26461 100644 --- a/src/library.js +++ b/src/library.js @@ -512,16 +512,24 @@ LibraryManager.library = { if (loc < -2 || loc >= entries) { {{{ makeSetValue('result', '0', '0', 'i8*') }}} } else { - var name, inode; + var name, inode, type; if (loc === -2) { name = '.'; inode = 1; // Really undefined. + type = 4; //DT_DIR } else if (loc === -1) { name = '..'; inode = 1; // Really undefined. + type = 4; //DT_DIR } else { + var object; name = stream.contents[loc]; - inode = stream.object.contents[name].inodeNumber; + object = stream.object.contents[name]; + inode = object.inodeNumber; + type = object.isDevice ? 2 // DT_CHR, character device. + : object.isFolder ? 4 // DT_DIR, directory. + : object.link !== undefined ? 10 // DT_LNK, symbolic link. + : 8; // DT_REG, regular file. } stream.position++; var offsets = ___dirent_struct_layout; @@ -532,10 +540,6 @@ LibraryManager.library = { {{{ makeSetValue('entry + offsets.d_name', 'i', 'name.charCodeAt(i)', 'i8') }}} } {{{ makeSetValue('entry + offsets.d_name', 'i', '0', 'i8') }}} - var type = stream.object.isDevice ? 2 // DT_CHR, character device. - : stream.object.isFolder ? 4 // DT_DIR, directory. - : stream.object.link !== undefined ? 10 // DT_LNK, symbolic link. - : 8; // DT_REG, regular file. {{{ makeSetValue('entry', 'offsets.d_type', 'type', 'i8') }}} {{{ makeSetValue('result', '0', 'entry', 'i8*') }}} } diff --git a/src/library_gl.js b/src/library_gl.js index 84c49d83..1d5168fb 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -11,19 +11,21 @@ var LibraryGL = { if (!(name in this._hashtables)) { this._hashtables[name] = { table: {}, - counter: 0, + counter: 1, add: function(obj) { var id = this.counter++; this.table[id] = obj; return id; }, get: function(id) { + if( id == 0 ) return null; #if ASSERTIONS assert(id < this.counter, "Invalid id " + id + " for the hashtable " + name); #endif return this.table[id]; }, remove: function(id) { + if( id == 0 ) return; #if ASSERTIONS assert(id < this.counter, "Invalid id " + id + " for the hashtable " + name); #endif @@ -49,13 +51,7 @@ var LibraryGL = { }, glGetIntegerv: function(name_, p) { - switch(name_) { - case Module.ctx.MAX_TEXTURE_SIZE: - {{{ makeSetValue('p', '0', 'Module.ctx.getParameter(name_)', 'i32') }}}; - break; - default: - throw 'Failure: Invalid glGetIntegerv value: ' + name_; - } + {{{ makeSetValue('p', '0', 'Module.ctx.getParameter(name_)', 'i32') }}}; }, glGenTextures__deps: ['$GL'], @@ -308,6 +304,16 @@ var LibraryGL = { {{{ makeSetValue('length', 'i', 'log.length', 'i32') }}} } }, + + glGetShaderiv_deps: ['$GL'], + glGetShaderiv : function(shader, pname, p) { + {{{ makeSetValue('p', '0', 'Module.ctx.getShaderParameter(GL.hashtable("shader").get(shader),pname)', 'i32') }}}; + }, + + glGetProgramiv_deps: ['$GL'], + glGetProgramiv : function(program, pname, p) { + {{{ makeSetValue('p', '0', 'Module.ctx.getProgramParameter(GL.hashtable("program").get(program),pname)', 'i32') }}}; + }, glCreateProgram_deps: ['$GL'], glCreateProgram: function() { @@ -350,9 +356,9 @@ var LibraryGL = { Module.ctx.bindAttribLocation(GL.hashtable("program").get(program), index, name); }, - glBindFrameBuffer_deps: ['$GL'], - glBindFrameBuffer: function(target, framebuffer) { - Module.ctx.bindFrameBuffer(target, GL.hashtable("framebuffer").get(framebuffer)); + glBindFramebuffer_deps: ['$GL'], + glBindFramebuffer: function(target, framebuffer) { + Module.ctx.bindFramebuffer(target, GL.hashtable("framebuffer").get(framebuffer)); }, glGenFramebuffers_deps: ['$GL'], |