2011-11-09 23 views
1

我试图在带有UIImageView的标准UIView上放置OpenGL视图。当我画任何东西到OpenGL的观点,我看到,导致下面看到的白线略有alpha混合的问题: white alpha blending在iPhone上与Apple UI进行Alpha混合

CCDirector *director = [CCDirector sharedDirector]; 
EAGLView *glView = [EAGLView viewWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) 
           pixelFormat:kEAGLColorFormatRGBA8 // kEAGLColorFormatRGBA8 
           depthFormat:0      // GL_DEPTH_COMPONENT16_OES 
        ]; 
[glView setMultipleTouchEnabled:YES]; 

[director setOpenGLView:glView]; 

if(![director enableRetinaDisplay:YES]) NSLog(@"Retina Display Not supported"); 
[director setDeviceOrientation:kCCDeviceOrientationPortrait]; 
[director setAnimationInterval:1.0/60]; 

[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888]; 

[[CCDirector sharedDirector] runWithScene:[PPAvatarEditorScene scene]]; 
[[CCDirector sharedDirector] resume]; 
[glView setOpaque:NO]; 
[avatarImage addSubview:glView]; 

我使用cocos2d的绘制到OpenGL的视图。 Alpha像素格式或纹理格式有问题吗?

回答

1

尝试glClearColor设置为黑色:

glClearColor(0, 0, 0, 0); 
+0

它看起来很好,如果我清除alpha通道(glClearColor(0,0,0,1.0);) –

+0

但结算像你提到看起来就像它在截图中。我开始认为它与我如何绘制它比任何GL调用或像素格式更重要。 –

+0

这可能是GL状态(glEnable方法)。 – LearnCocos2D