Ios 背景颜色随每次单击而改变

Ios 背景颜色随每次单击而改变,ios,opengl-es-2.0,Ios,Opengl Es 2.0,我无法解释这一点。当我的场景第一次渲染时,背景颜色被设置为浅灰色-正如我所希望的那样。但只要我点击任何可点击的对象按钮或步进器,背景颜色就会变为深红色。然后,我再次单击同一个对象或任何其他对象,屏幕就会恢复到原来的颜色。这种灰红色的切换将永远持续下去 我不想让这一切发生,我也不知道为什么会发生。由于这是一个OpenGL应用程序,在绘制和渲染各种对象时会发生许多颜色变化。但是背景色不是只由glClearColor控制吗?我的代码中有太多的行需要在这里发布,我不希望任何人看到它们,所以我只发布dra

我无法解释这一点。当我的场景第一次渲染时,背景颜色被设置为浅灰色-正如我所希望的那样。但只要我点击任何可点击的对象按钮或步进器,背景颜色就会变为深红色。然后,我再次单击同一个对象或任何其他对象,屏幕就会恢复到原来的颜色。这种灰红色的切换将永远持续下去

我不想让这一切发生,我也不知道为什么会发生。由于这是一个OpenGL应用程序,在绘制和渲染各种对象时会发生许多颜色变化。但是背景色不是只由glClearColor控制吗?我的代码中有太多的行需要在这里发布,我不希望任何人看到它们,所以我只发布drawInRect方法。这是我唯一称之为glClearColor的地方

我对iOS和OpenGLES2.0还很陌生,所以我想我是在征求意见。除了glClearColor,还有什么其他方法可以用来更改屏幕的背景色?很明显,这里有一些代码在做这件事,但我不知道它会是什么。我在任何地方都没有提到深红色,所以我很困惑。谢谢你的帮助

- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
    glClearColor(0.65f, 0.65f, 0.65f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    [self drawUpperLeftScene];
    [self drawUpperRightScene];
}
编辑:我已经追踪到glScissor/GLENABLEGLU SCISSOR\U测试组合。如果我把这些行注释掉,我的颜色切换问题就会消失。但这破坏了我的整个应用程序,所以我宁愿忍受颜色问题。有人知道为什么会发生这种情况,我能做些什么来纠正它吗

glViewport(0, FRAME_HEIGHT, FRAME_WIDTH/2, FRAME_HEIGHT/2);
glScissor(0, FRAME_HEIGHT, FRAME_WIDTH/2, FRAME_HEIGHT/2);
glEnable(GL_SCISSOR_TEST);

也许这有帮助,谢谢。我在写这篇文章之前读过那篇文章。据我所知,它只提到用glClearColor更改背景色。它会慢慢改变颜色,但总是使用glClearColor,与我正在做或试图做的非常相似。