2010-09-24 5 views
3

Когда я рисую градиентное заполнение с помощью OpenGL, результат выглядит полосатым, то есть он отображается только с четвертым возможным цветом.Градиентное заполнение OpenGL на iPhone выглядит полосатым

В буфере визуализации отображаются все цвета, но не отображаются в фактическом выходе.

Я развиваюсь на iPhone 3G, работающем под управлением iOS4.

Любые идеи?

Питер

==========

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

+0

Благодарю вас за ваш комментарий. Я добавил изображение симулятора. На устройстве он выглядит одинаково. – Peter

ответ

2

Понял.

Мне нужно было указать kEAGLColorFormatRGBA8 для свойств CAEAGLLayer.

Смежные вопросы