개요
심플 다이렉트미디어 레이어(영어: Simple DirectMedia Layer, 약자: SDL)는 1998년 Sam Lantinga가 개발한 오픈 소스 멀티미디어 라이브러리이다. C 언어 기반으로 작성되었으며, 다양한 운영 체제(Windows, macOS, Linux, iOS, Android 등)와 플랫폼에서 저수준 하드웨어 접근을 추상화한다. 주로 게임, 에뮬레이터, 미디어 플레이어 등 실시간 그래픽과 오디오 처리가 필요한 응용 프로그램의 개발에 활용된다.
주요 기능
| 기능 | 설명 |
|---|---|
| 그래픽 | 2D 렌더링, 텍스처 관리, 창(Window) 생성 및 관리, OpenGL·Direct3D·Vulkan 등 외부 그래픽 API와의 연동 |
| 오디오 | 오디오 출력, 사운드 믹싱, 다양한 오디오 포맷 지원 |
| 입력 | 키보드, 마우스, 조이스틱, 게임패드 등 입력 장치 이벤트 처리 |
| 타이머 | 고해상도 타이머 제공 |
| 쓰레드 | 경량 스레드 및 뮤텍스, 세마포어 등의 동기화 원시 제공 |
| 파일 I/O | 플랫폼 독립적인 파일 및 메모리 스트림 입출력 API |
역사 및 배포
- 최초 공개: 1998년 8월, Sam Lantinga가 개인 프로젝트로 시작.
- 현재 유지·관리: SDL 프로젝트는 SDL.org를 통해 커뮤니티 기반으로 운영되며, 정기적인 버전 업데이트가 이루어진다.
- 라이선스: 원본 코드는 GNU LGPL(버전 2.1 이상) 및 자체 SDL 라이선스(다중 라이선스)로 배포되어 상업적·비상업적 프로젝트 모두에서 사용 가능하다.
구조
SDL은 핵심 모듈과 여러 부가 모듈(예: SDL_image, SDL_mixer, SDL_ttf, SDL_net 등)로 구성된다. 핵심 모듈은 하드웨어 추상화 계층(HAL)을 제공하며, 부가 모듈은 이미지 로딩, 오디오 믹싱, 폰트 렌더링, 네트워킹 등 특정 기능을 확장한다.
활용 사례
- 비디오 게임 엔진(예: Unity, Godot 등) 및 독립 게임 개발
- 레트로 게임 에뮬레이터(예: MAME, Dolphin)
- 미디어 플레이어 및 실시간 시각화 프로그램
참고
- 공식 웹사이트: https://www.libsdl.org/
- 주요 문서와 API 레퍼런스는 해당 사이트와 함께 GitHub 저장소(https://github.com/libsdl-org/SDL)에서 제공된다.
위 내용은 공개된 문서와 공식 자료에 근거하여 객관적으로 서술하였다.