glReadPixel停止使用iOS6 Beta

Mic*_*ael 4 beta glreadpixels cocos2d-iphone ios ios6

可能重复:
为什么glReadPixels()在iOS 6.0中的此代码中失败?

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


Mic*_*ael 5

感谢苹果私人列表的建议 - 这就是我找到该问题的解决方案的地方。

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