You can try adding texture to the framebuffer and then calling readPixels in the framebuffer.
during init
// make a framebuffer fb = gl.createFramebuffer(); // make this the current frame buffer gl.bindFramebuffer(gl.FRAMEBUFFER, fb); // attach the texture to the framebuffer. gl.framebufferTexture2D( gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); // check if you can read from this type of texture. bool canRead = (gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE); // Unbind the framebuffer gl.bindFramebuffer(gl.FRAMEBUFFER, null);
while reading
if (canRead) {
For format textures = gl.RGBA, type = gl.UNSIGNED_BYTE canRead should always be true. For other formats and types, canRead may be false.
source share