0
iOS OpenGL-es 앱에서 스레딩을 사용하는 방법을 배우고 있습니다. 나는 OpenGL은 게임 템플릿 코드 수정하려고 : 그것은 잘 작동한다면 그것은 fps 인에서 60 프레임에서 상자와 다른립니다glkview에서 dispatch_async를 사용하는 방법은 무엇입니까?
- (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);
glBindVertexArrayOES(_vertexArray);
// Render the object with GLKit
[self.effect prepareToDraw];
glDrawArrays(GL_TRIANGLES, 0, 36);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
sleep(1);
dispatch_async(dispatch_get_main_queue(), ^{
// Render the object again with ES2
glUseProgram(_program);
glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEWPROJECTION_MATRIX], 1, 0, _modelViewProjectionMatrix.m);
glUniformMatrix3fv(uniforms[UNIFORM_NORMAL_MATRIX], 1, 0, _normalMatrix.m);
glDrawArrays(GL_TRIANGLES, 0, 36);
});
});
}
을,하지만 난 위의 코드를 실행하면, 그것은 단지 하나의 박스를 그립니다.
웹을 검색 한 결과 문제의 원인을 찾을 수 없습니다.
도움을 주셔서 감사합니다.
나는 여기에서 같은 문제를 우연히 발견했다. 이 대답은 절대적으로 정확합니다. 그러나 두 번째 스레드에서 드로잉을 수행 할 수있는 방법이 있습니까? –