[이전] 목차 [다음]

무엇을 할 수 있나?

비디오
  • 원하는 모든 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 오디오 컨트롤 API
팁:
만약 CD-ROM API 함수들에 NULL 값의 CD-ROM 핸들을 넘기면, 열려진 가장 최근의 CD-ROM 에 대해 동작할 것이다.
쓰레드
  • 간단한 쓰레드 생성 API
  • 동기화를 위한 간단한 바이너리 세마포
팁:
될수 있으면 쓰레드로부터 I/O 와 메모리 관리 함수같은 C 라이브러리들을 사용하지 마라. 그런 함수들은 다른 쓰레드에 의해 사용되는 리소스들을 잠그기(lock) 때문이다.
타이머
  • 밀리세컨트(millisecond)단위의 경과된 시간을 얻는다.
  • 지정된 밀리세컨드 단위의 시간동안 기다린다.
  • 10ms 단위의 단일 주기 타이머를 설정한다.
팁:
SDL_GetTicks() 를 사용해서 Win32용 GetTickCount() 를 쉽게 대체할 수 있다.
엔디안 비의존성(Endian independence)
  • 현재 시스템의 엔디안(endianness) 결정하기
  • 데이타 값을 빠르게 스와핑하기 위한 루틴들
  • 특정 엔디안의 데이타를 읽고 쓰기
팁:
데이타 파일을 읽을 때에, 16-bit 그래픽스 바이트단위의 스와핑이 필요할 수도 있다.

[이전] 목차 [다음]