- 메저(Measure)
응용프로그램에게 전달되는 입력값
- 트리거(Trigger)
전달하라는 신호
예)
DIR(메저)<Enter>(트리거)
메저 프로세스와 트리거와의 관계를 기준으로
입력 모드를 세 가지로 구분할 수 있음
프로그램이 실행 중에 메저를 요구하는 방식
- 트리거가 일어날 때 까지 대기상태
- 트리거가 입력될 때 까지 어떤 값이 입력되었는지 알 수 없음
예) scanf는 키보드 값(값 + Enter)가 입력될 때 까지 대기
사무용 프로그램에서는 괜찮은 방식이나,
실시간으로 계속 진행이 되어야 할 멀티미디어 프로그램
(게임을 진행하면서 방향키 한번에 Enter를 누를 수는 없음)
에서는 부적절하다.
직접 모드
- 사용자 트리거가 불필요
- 이미 필요한 메저가 준비된 상태
예) 프로그램은 현재
Ctrl키가 눌려있는지 확인하고 싶을 때,
프로그램 함수GetAsyncKeyState(VK_CONTROL)호출.
Ctrl키가 눌려있다면 양수, 아니면 0을 프로그램으로 즉시 전달단점이 있다면, 각 키가 눌리는 상황이 궁금하다면
매번 여러 함수 호출을 통해서 확인해야 함
각 키가 눌린 상태인지, 아닌지를 확인할 수 있음.
실시간 게임이나 멀티미디어 응용프로그램을 만들 때 적합함
OpenGL에서 사용하는 방식
- 사용자가 입력 선택 주도권 있음
리퀘스트/샘플 모드의 경우 프로그램이 주도권을 가짐
응용프로그램은 주기적으로 이벤트 큐를 검사
- 드라이버에게 이벤트 리퀘스트 전달
- 드라이버가 이벤트 큐의 프런트 레코드를 전달
- 큐가 비어 있다면 응용프로그램은 다른 일을 수행
콜백 함수(Callback function) or 이벤트 처리기(Event Handler)
응용프로그램이 이벤트를 처리하는 방법
실습에 진행한 코드 주석과 같이 볼 것
✓ GL의 화면좌표, GLUT 화면좌표
- GLUT의 경우 문서의 줄 번호처럼 아래 방향으로 y좌표가 증가
- OpenGL(GL)의 경우 수학 좌표계에 대응하여 위쪽 방향으로 y좌표가 증가
2중 포트 구조

기록하는 속도와 화면에 출력하는 속도의 차이로 인한 문제가 발생
