glReadPixel停止使用iOS6 Beta

时间:2012-08-23 13:35:35

标签: ios cocos2d-iphone beta ios6 glreadpixels

  

可能重复:
  Why is glReadPixels() failing in this code in iOS 6.0?

我目前在Appstore中有一个使用Cocos2D框架的App。对于碰撞检测,我使用的是glReadPixels。屏幕仅具有白色和黑色像素,并且检测黑色像素意味着碰撞。一切都运行良好,直到iOS 5.1.1,但在iOS6 Beta(所有这些)glReadPixels停止工作。现在glReadPixels返回的RGB值始终为0,0,0。

有没有人知道出了什么问题或如何解决这个问题?

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:7)

在EAGLView.m上更改此项为我运行!

- (id)initWithCoder:(NSCoder*)coder {

   self = [super initWithCoder:coder];
   if (self) {
        CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer;

        eaglLayer.opaque = TRUE;
        eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
                                        [NSNumber numberWithBool:YES],
                                        kEAGLDrawablePropertyRetainedBacking,
                                        kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat,
                                        nil];
        // YES
        self.contentScaleFactor = [UIScreen mainScreen].scale;
    }

    return self;
}

答案 1 :(得分:4)

感谢Apple私人列表建议 - 这就是我找到解决该问题的方法。

在Cocos2D类“EAGLView.m”中,我在init方法中将“preserveBackbuffer”变量设置为“YES”。它现在又在iOS 6 Beta中再次运行。