glReadPixels get wrong data in android opengl es 2.0 -
i yuv data camera , , send them opengl, use fragment shader convert data rgba format , show on screen. goes when use glreadpixels rgba data framebuffer int array, wrong data.
// use vbo draw glbindbuffer(gl_array_buffer, squareverticesbufferid); glvertexattribpointer(gvpositionhandle, 2, gl_float, gl_false, 0, 0); glenablevertexattribarray(gvpositionhandle); glbindbuffer(gl_array_buffer, textureverticesbuferid); glvertexattribpointer(gvtexturehandle, 2, gl_float, gl_false, 0, 0); glenablevertexattribarray(gvtexturehandle); glbindbuffer(gl_element_array_buffer, squareverticesindexbufferid); gldrawelements(gl_triangle_strip, 4, gl_unsigned_int, 0); // use glreadpixels read rgba data unsigned char *returndatapointer = (unsigned char*) malloc(width * height * 4); glreadpixels(0, 0, width, height, gl_rgba, gl_unsigned_byte, returndatapointer);
unfortunately wrong data, last thousands elements in array 0s,the same code works on ios, did miss something?
i work on android 4.0.3 , use opengl es 2 ndk.
Comments
Post a Comment