Градиентная заливка OpenGL на iPhone выглядит полосатой - PullRequest
3 голосов
/ 25 сентября 2010

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

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

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

Есть идеи?

Peter

==========

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);

1 Ответ

2 голосов
/ 26 сентября 2010

Понял.

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

...