비디오
- 원하는 모든 depth(8-bpp 이상)로 비디오 모드를 세팅한다.
하드웨어에 의해 지원되지 않는다면 추가적인 변환을 통해 가능하다.
- 선형 그래픽 프레임버퍼에 쓰기
- 컬러키 또는 알파 블렌딩 속성을 갖는 서페이스(surface) 생성.
- 서페이스 블릿(blits)은 최적화된 블리터(blitter)를 통해 자동적으로 변환되고,
가능하다면 하드웨어 가속된다. x86에서는 MMX 최적화된 블릿이 지원된다.
- 하드웨어 가속 블릿(blit)과 칠하기(fill) 기능은 하드웨어에 의해
지원되는 경우에 사용된다.
|
팁:
애플리케이션의 타이틀바(만약 있다면)와 아이콘을 각각 SDL_WM_SetCaption()
와 SDL_WM_SetIcon() 함수를 사용해서 설정할 수 있다.
|
이벤트
- 이벤트는 다음을 위해 제공된다:
- 애플리케이션의 모양이 변할때
- 키보드 입력
- 마우스 입력
- 사용자 요구에 의한 종료
- 각 이벤트는 SDL_EventState() 에 의해 활성화되거나,
비활성화될 수 있다.
- 이벤트들은 내부 이벤트 큐로 보내지기 전에
사용자-지정의 필터 함수를 거치게 된다.
- 쓰레드-안전한 이벤트 큐.
|
팁:
이벤트 큐에서 특정한 타입의 이벤트를 찾으려면 SDL_PeepEvents()를 사용하라.
|
오디오
- 8 비트와 16 비트, 모노 또는 스테레오의 오디오 재생 설정.
하드웨어에 의해 지원되지 않는 포맷이라면 추가적인 변환을 통해
가능하다.
- 오디오는 별도의 쓰레드를 사용해 독립적으로 수행되며, 사용자
콜백 메카니즘에 의해 채워진다.
- 커스텀 오디오 믹서를 위해 설계되었지만, 예제들을 통해 완전한
오디오/음악 출력 라이브러리를 제공한다.
|
팁:
오디오 콜백과 나머지 프로그램이 공유하는 데이타에 대한 액세스 동기화를 위해
서는 SDL_LockAudio() 와 SDL_UnlockAudio() 를 사용하라.
|
| CD-ROM 오디오
|
팁:
만약 CD-ROM API 함수들에 NULL 값의 CD-ROM 핸들을 넘기면, 열려진 가장
최근의 CD-ROM 에 대해 동작할 것이다.
|
쓰레드
- 간단한 쓰레드 생성 API
- 동기화를 위한 간단한 바이너리 세마포
|
팁:
될수 있으면 쓰레드로부터 I/O 와 메모리 관리 함수같은 C 라이브러리들을
사용하지 마라. 그런 함수들은 다른 쓰레드에 의해 사용되는 리소스들을
잠그기(lock) 때문이다.
|
타이머
- 밀리세컨트(millisecond)단위의 경과된 시간을 얻는다.
- 지정된 밀리세컨드 단위의 시간동안 기다린다.
- 10ms 단위의 단일 주기 타이머를 설정한다.
|
팁:
SDL_GetTicks() 를 사용해서 Win32용 GetTickCount() 를 쉽게 대체할 수 있다.
|
엔디안 비의존성(Endian independence)
- 현재 시스템의 엔디안(endianness) 결정하기
- 데이타 값을 빠르게 스와핑하기 위한 루틴들
- 특정 엔디안의 데이타를 읽고 쓰기
|
팁:
데이타 파일을 읽을 때에, 16-bit 그래픽스 바이트단위의 스와핑이 필요할
수도 있다. |