[App 개발] 코코아로 OpenGL 애니메이션에 관해서...
본문
애플의 문서나 슈퍼바이블이나 기타 여러 사이트나 예제에서
거의 대부분 타이머로 이를 구현하고 있더군요.
코코아에서 혹시 타이머를 사용하지 않고 계속 드로잉이 되게 하는 방법이 있나요?
굳이 타이머 써도 상관없겠지만
1/60 으로 타이머를 줬을 때 60 프레임 이상은 나오지 않을 것 같아서요.
코코아에서 OpenGL 을 컴퓨터가 낼 수 있는 최대한의 FPS 로 애니메이션을 하고 싶어서요.
Win32API에서
while( WM_QUIT != msg.message )
{
// 메세지큐에 메세지가 있는지 검사한다.
// 메세지가 있건,없건 그냥 리턴한다.
if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
//메세지 큐에서 메세지를 가져온다.
GetMessage(&msg,NULL,0,0);
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
//메세지가 없다면 게임루프를 돌린다.
OpenGLRender();
}
}
이렇게 해서 메시지 큐에 메시지가 없으면 계속 OpenGL 을 드로잉하게 해주는 것 처럼요.
drawRect 메서드 내에서 setNeedsDisplay: 를 줬더니 애니메이션이 안되고
display: 나 drawRect: 호출을 했는데 프로그램이 실행이 안되더군요.;;
만약 방법이 없다면 타이머에서 1/10000 초 등을 줘서라도 애니메이션을 하게 해야 되는건가요?
답변 부탁드립니다.
최신글이 없습니다.
최신글이 없습니다.
댓글목록 1
hongjuny님의 댓글
그래픽 출력 부분을 독립적인 쓰레드로 분리하는 방법을 생각해 보세요.