2011-12-20 57 views
0

我正在黑色背景上绘制一个简单的GL_LINE_LOOP。不管我用glColorPointer和colors []数组做什么,我都不能让这些线条变成除白色以外的其他颜色。我究竟做错了什么? 我相对较新开放gl for iPhone,并没有找到答案在Google或这里为我的问题,所以我真的很感激任何答案。glColorPointer iOS Open GL ES不工作?

//glPushMatrix(); 
glDisable(GL_TEXTURE_2D); 
static const GLubyte colors[] = { 
    255, 0, 255, 255, 
    255, 0, 255, 255, 
    255, 0, 255, 255 
}; 
glEnableClientState(GL_VERTEX_ARRAY); 
glEnableClientState (GL_COLOR_ARRAY); 
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colors); 
glLineWidth(5.0); 
GLfloat vertices[] = { -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0 }; 
glVertexPointer(3, GL_FLOAT, 0, vertices); 
glDrawArrays(GL_LINE_LOOP, 0, 3); 
glDisableClientState(GL_VERTEX_ARRAY); 
glDisableClientState(GL_COLOR_ARRAY); 
glEnable(GL_TEXTURE_2D); 
glPopMatrix(); 
+0

在2个以下行现在是定义颜色[]数组之前,但我仍然没有得到一种颜色。 glDisable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D,0); – PhilBot 2011-12-20 03:15:18

回答

1

尝试禁用纹理...

glDisable(GL_TEXTURE_2D); 
glBindTexture(GL_TEXTURE_2D,0); 
+0

我已经添加了这些行之前声明我的颜色[]数组,但仍然没有运气 - 线条仍然是白色的。任何其他想法? - 谢谢 – PhilBot 2011-12-20 03:16:58

+0

嗯仍然没有运气 - 我现在有这之前我的颜色[]声明:glDisable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D,0); glDisable(GL_BLEND); glBlendFunc(GL_ONE,GL_ZERO); – PhilBot 2011-12-20 03:31:05

+0

我唯一的想法是确保纹理坐标数组被禁用,glDisableClientState(GL_TEXTURE_COORD_ARRAY);在glDrawArrays调用之后是否有任何错误产生?的printf( “%d \ n” 个,glGetError()); – 2011-12-20 03:43:27