html5 - Why does this WebGL framebuffer usage throw FRAMEBUFFER_UNSUPPORTED? -


i'm trying create webgl pick buffer;

can see i'm doing wrong here?

i'm getting "incomplete framebuffer: framebuffer_unsupported" on mozilla/5.0 (x11; linux x86_64; rv:2.0b3pre) gecko/20100724 minefield/4.0b3pre , chrome 5.0.375.99. must obvious , staring right @ me cant see it. it's apparently valid, has texture..but "unsupported"?

    var gl = canvas.context;     var framebuf = gl.createframebuffer();     var renderbuf = gl.createrenderbuffer();     var picktexture = gl.createtexture();     gl.bindtexture(gl.texture_2d, picktexture);      var width = 400;     var height = 400;      try {         gl.teximage2d(gl.texture_2d, 0, gl.rgb, width, height, 0, gl.rgb, gl.unsigned_byte, null);     } catch (e) {         // null rejected         var tex = new webglunsignedbytearray(width * height * 3);         gl.teximage2d(gl.texture_2d, 0, gl.rgb, width, height, 0, gl.rgb, gl.unsigned_byte, tex);     }      gl.bindframebuffer(gl.framebuffer, framebuf);     gl.bindrenderbuffer(gl.renderbuffer, renderbuf);     gl.renderbufferstorage(gl.renderbuffer, gl.depth_component16, width, height);     gl.bindrenderbuffer(gl.renderbuffer, null);      gl.framebuffertexture2d(gl.framebuffer, gl.color_attachment0, gl.texture_2d, picktexture, 0);     gl.framebufferrenderbuffer(gl.framebuffer, gl.depth_attachment, gl.renderbuffer, renderbuf);     gl.bindframebuffer(gl.framebuffer, null);       gl.bindframebuffer(gl.framebuffer, framebuf);      if (!gl.isframebuffer(framebuf)) {         throw("invalid framebuffer");     }     var status = gl.checkframebufferstatus(gl.framebuffer);     switch (status) {         case gl.framebuffer_complete:             break;         case gl.framebuffer_incomplete_attachment:             throw("incomplete framebuffer: framebuffer_incomplete_attachment");             break;         case gl.framebuffer_incomplete_missing_attachment:             throw("incomplete framebuffer: framebuffer_incomplete_missing_attachment");             break;         case gl.framebuffer_incomplete_dimensions:             throw("incomplete framebuffer: framebuffer_incomplete_dimensions");             break;         case gl.framebuffer_unsupported:             throw("incomplete framebuffer: framebuffer_unsupported");             break;         default:             throw("incomplete framebuffer: " + status);     } 

solution provided kenneth russell - fixed specifying these settings texture:

gl.texparameteri(gl.texture_2d, gl.texture_mag_filter, gl.nearest); gl.texparameteri(gl.texture_2d, gl.texture_min_filter, gl.nearest); gl.texparameteri(gl.texture_2d, gl.texture_wrap_s, gl.clamp_to_edge); gl.texparameteri(gl.texture_2d, gl.texture_wrap_t, gl.clamp_to_edge); 

Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -