OES_fbo_render_mipmap
WebGL working group (public_webgl 'at' khronos.org)
Florian Boesch (pyalot 'at' gmail.com)
Members of the WebGL working group
Last modified date: September 25, 2019
Revision: 3
WebGL extension #28
Written against the WebGL API 1.0 specification.
Promoted to core and no longer available as an extension in WebGL API 2.0 specification.
This extension exposes the OES_fbo_render_mipmap functionality to WebGL.
There are no WebGL-specific behavioral changes.
Consult the above extension for documentation, issues and new functions and enumerants.
When this extension is enabled:
[Exposed=(Window,Worker), LegacyNoInterfaceObject] interface OES_fbo_render_mipmap { };
var extension = gl.getExtension('OES_fbo_render_mipmap'); if(extension !== null){ var texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, texture); var fbos = []; for(var level=0; level<8; level++){ var size = 128/Math.pow(2, level); gl.texImage2D(gl.TEXTURE_2D, level, gl.RGBA, size, size, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); var fbo = gl.createFramebuffer(); gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, level); fbos.push(fbo); } for(var level=0; level<8; level++){ gl.bindFramebuffer(gl.FRAMEBUFFER, fbos[level]); var fboStatus = gl.checkFramebufferStatus(gl.FRAMEBUFFER); console.assert(fboStatus == gl.FRAMEBUFFER_COMPLETE, 'Framebuffer is not complete'); } gl.bindTexture(gl.TEXTURE_2D, null); gl.bindFramebuffer(gl.FRAMEBUFFER, null); console.assert(gl.getError() == gl.NO_ERROR, 'A GL error occured'); }
Revision 1, 2015/01/26
Revision 2, 2015/01/31
Revision 3, 2019/09/25