2012-08-23 22 views
4

可能重複:
Why is glReadPixels() failing in this code in iOS 6.0?glReadPixel停止了與iOS6的測試版的工作

我現在有一個使用cocos2d的框架的應用程序在蘋果商店。對於碰撞檢測,我使用glReadPixels。屏幕只有白色和黑色像素,檢測黑色像素意味着碰撞。一切工作正常的iOS 5.1.1,但在iOS6 Beta(所有這些)glReadPixels停止工作。現在glReadPixels返回的RGB值總是0,0,0。

有沒有人有一個想法出了什麼問題或如何解決?

非常感謝您的幫助!

+0

等待下一個測試版本或GM。 – BoltClock

+0

在蘋果私人列表上詢問這個問題,你可能會得到答案。任何給你答覆的人都會違反與蘋果公司的保密協議。 –

+1

爲什麼SO用戶如此癡迷執行蘋果的NDA?讓蘋果擔心它...... – eodabash

回答

4

感謝您的Apple私人列表建議 - 這是我找到解決方案的地方。

在Cocos2D類「EAGLView.m」中,我在init方法中將「preserveBackbuffer」變量設置爲「YES」。它現在也可以在iOS 6 Beta中再次運行。

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; 
} 
+0

我遇到了與iOS 6.0完整版本相同的問題。設置保留的支持爲true修復它 –

+0

我有glReadPixels在Unity3d(iOS)中不起作用的問題,我通過在GlesHelper.mm中將保留的支持屬性(如答案中所示)設置爲true來解決此問題。謝謝,這直到我找到答案爲止。 –

相關問題