장치 방향이 변경되면 내 OpenGLES보기에 문제가 있습니다. Jeff Lamarche's Xcode template을 사용하고 있습니다.OpenGLES의 iPhone 방향 변경 처리
AutoresizeMask
이 설정되면 GLView에서 - (void)layoutSubviews
이 호출됩니다. 이 일이 생기면 내가 그리는 대상이 사라집니다. 배경색을 변경하고 변경 사항을 볼 수 있기 때문에 OpenGL보기는 여전히 부분적으로 작동합니다. AutoresizeMask
인 경우
는 하지 세트, 뷰 회전과 OpenGL을 객체는 여전히 볼 수 있지만, 다음 뷰는 잘못된 크기입니다.
이것은 두 번 이상 호출 할 때 문제가되는 layoutSubviews
에 뭔가있는 것을 보여줍니다.
다음은 장치가 화면에 삼각형이 사라이 코드를 회전하는 문제
- (void)drawView:(UIView *)theView
{
Vertex3D vertex1 = Vertex3DMake(0.0, 1.0, -3.0);
Vertex3D vertex2 = Vertex3DMake(1.0, 0.0, -3.0);
Vertex3D vertex3 = Vertex3DMake(-1.0, 0.0, -3.0);
Triangle3D triangle = Triangle3DMake(vertex1, vertex2, vertex3);
glLoadIdentity();
glClearColor(0.7, 0.7, 0.7, 1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);
glColor4f(1.0, 0.0, 0.0, 1.0);
glVertexPointer(3, GL_FLOAT, 0, &triangle);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);
}
을 보여줍니다 drawView
에 대한 몇 가지 아주 기본적인 코드입니다. 다시 세로로 방향을 다시 지정해도 다시 나타나지 않습니다.
GLView의 방향이 바뀌지 않아야합니까, 아니면 OpenGL 코드의 버그입니까?