2010-09-24 38 views
3

当我画一个渐变填充用OpenGL,输出看起来条纹,即它只有大约在第四的可能的颜色渲染。OpenGL的渐变填充在iPhone上看起来条纹

在渲染缓冲区中,所有的颜色都会出现,但不会出现在实际的输出中。

我正在开发运行iOS4的iPhone 3G。

任何想法?

彼得

==========

alt text

==========

GLint redBits, greenBits, blueBits; 
glGetIntegerv (GL_RED_BITS, &redBits); // ==> 8 
glGetIntegerv (GL_GREEN_BITS, &greenBits); // ==> 8 
glGetIntegerv (GL_BLUE_BITS, &blueBits); // ==> 8 

glDisable(GL_BLEND); 
glDisable(GL_DITHER); 
glDisable(GL_FOG); 
glDisable(GL_LIGHTING); 
glDisable(GL_TEXTURE_2D); 
glShadeModel(GL_SMOOTH); 

const GLfloat vertices[] = { 
0, 0, 
320, 0, 
0, 480, 
320, 480, 
}; 

const GLubyte colors[] = { 
255, 255, 255, 255, 
255, 255, 255, 255, 
200, 200, 200, 255, 
200, 200, 200, 255, 
}; 

glVertexPointer(2, GL_FLOAT, 0, vertices); 
glEnableClientState(GL_VERTEX_ARRAY); 
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colors); 
glEnableClientState(GL_COLOR_ARRAY); 
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 
+0

请使用代码示例格式化程序。此外,截图实际与预期。 – genpfault 2010-09-24 22:24:00

+0

非常感谢您的评论。我添加了模拟器的图片。在设备上它看起来一样。 – Peter 2010-09-25 16:58:45

回答

2

明白了。

我需要指定kEAGLColorFormatRGBA8为CAEAGLLayer性能。