glReadPixel works well when multi-sampling is not enabled. But when multisampling is enabled, it gives 0x502 opengl error and screen is not captured. After researching a little bit, it seems to be related to resolving multi-samples buffers - 'glResolveMultisampleFramebufferAPPLE'. But I could not get it to work inside 'takeAsCGImage' method as below
Can someone help ?
+(CGImageRef) takeAsCGImage
{
CCDirector *director = [CCDirector sharedDirector];
CGSize displaySize = [director displaySizeInPixels];
CGSize winSize = [director winSizeInPixels];
// Create buffer for pixels
GLuint bufferLength = displaySize.width * displaySize.height * 4;
GLubyte* buffer = (GLubyte*)malloc(bufferLength);
// Read Pixels from OpenGL
glReadPixels(0, 0, displaySize.width, displaySize.height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
NSLog(@"opengl error 0x%x", glGetError());
Thanks, Simple