glTexImage2D/glTexSubImage2D gles20/html5
Monkey Forums/Monkey Bug Reports/glTexImage2D/glTexSubImage2D gles20/html5
| ||
The definitions for the dataBuffer versions of glTexImage2D & glTexSubImage2D are incorrect in gles20.monkey for html5 targets. Use of these functions results in: Monkey Runtime Error : TypeError: undefined is not a function After much head-scratching and a crash course in WebGL I have provided a solution: gles20.monkey line 873: Function glTexImage2D:Void( target, level, internalformat, width, height, border, format, type, pixels:DataBuffer )="_glTexImage2D" Function glTexSubImage2D:Void( target, level, xoffset, yoffset, width, height, format, type, pixels:DataBuffer )="_glTexSubImage2D" Should be changed to: Function glTexImage2D:Void( target, level, internalformat, width, height, border, format, type, pixels:DataBuffer )="_glTexImage2D2" Function glTexSubImage2D:Void( target, level, xoffset, yoffset, width, height, format, type, pixels:DataBuffer )="_glTexSubImage2D2" Furthermore.... gles20.html5.js line 263: function _glTexImage2D2( target,level,internalformat,width,height,border,format,type,pixels ){ gl.texImage2D( target,level,internalformat,width,height,border,format,type,pixels.byteArray ); } pixels.byteArray is an invalid member so we change it to: function _glTexImage2D2( target,level,internalformat,width,height,border,format,type,pixels ){ gl.texImage2D( target,level,internalformat,width,height,border,format,type,new Uint8Array(pixels.arrayBuffer) ); } And similarally... gles20.html5.js line 294: function _glTexSubImage2D2( target,level,xoffset,yoffset,width,height,format,type,pixels ){ gl.texSubImage2D( target,level,xoffset,yoffset,width,height,format,type,new Uint8Array(pixels.arrayBuffer) ); } |
| ||
Nice find and fix - thanks! |
| ||
My pleasure |