glReadPixel は、マルチサンプリングが有効になっていない場合にうまく機能します。ただし、マルチサンプリングが有効になっていると、0x502 opengl エラーが発生し、画面がキャプチャされません。少し調べたところ、マルチサンプル バッファの解決に関連しているようです - 「glResolveMultisampleFramebufferAPPLE」。しかし、以下のように「takeAsCGImage」メソッド内で動作させることができませんでした
誰かが助けることができますか?
+(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());
ありがとう、シンプル