약칭이 SDL인 스타벅스 돌체 라떼에 대한 내용은 돌체 라떼 문서 참고하십시오.
Simple DirectMedia Layer | |
<colbgcolor=#336791><colcolor=#ffffff> 최초 개발자 | Sam Lantinga |
개발자 | SDL 커뮤니티 |
출시일 | 1998년 |
라이선스 | zlib License 2.0 이전: GNU LGPL |
홈페이지 | |
소스 코드 |
[clearfix]
1. 개요
Sam Lantinga[1]가 만든 크로스플랫폼 UI 및 미디어 라이브러리.2. 특징
크로스-플랫폼이라서 이식이 쉽다. 윈도우, 리눅스, OS X, 안드로이드, iOS 외에도 이것저것 지원한다. 그러다 보니 밸브 코퍼레이션에서도 게임을 리눅스로 이식할 때 사용했다. MAME 에뮬레이터에도 이게 사용된다.라이브러리는 SDL과 이미지에 관한 SDL_image, 폰트 렌더링에 사용되는 SDL_TTF, 음악, 동영상 등을 재생할 때 사용하는 SDL_Mixer, 네트워킹시 사용하는 SDL_net 등이 기본적으로 제공되며, 그 외의 사용자가 만든 라이브러리도 있다.
다른 언어로도 많이 이식이 되었는데 C/C++은 당연하고 Java, C#, Ruby, Python, Perl, Lua, Rust 등에서도 사용 가능하다.
3. 버전
버전은 크게 나누면 1.2와 2.0 두가지가 있다.3.1. 1.2
안정된 버전은 1.2.15SDL1 에서 가장 안정된 버전이자 마지막으로 업데이트 되었던 버전. 1.3이 개발중이었지만 바로 2.0으로 넘어갔기 때문에 1.2가 마지막이 되었다.
특징이라면 Simple DirectMedia Layer 라는 이름에 걸맞게 굉장히 간단한 기능들을 위주로 지원했다. 대신 그만큼 기능도 적었기 때문에 활용하기가 상당히 힘든 편. 본격적으로 게임을 개발하려고 하면 OpenGL을 사용해야한다. (SDL_Surface라고 픽셀 데이터를 저장할 수 있는데, 이미지 회전, 스케일 등의 간단한 기능도 지원하지 않는다.)
그래도 비디오, 오디오, 조이스틱 등 지원할 것은 다 지원했기 때문에 크게 문제는 없었고 2.0보다는 훨씬 가볍기때문에 아직도 사용하기도 한다.
3.2. 2.X
안정된 버전은 2.30.10본격적으로 무거워지기 시작한 라이브러리로 원래 1.3으로 개발중이었지만 기능이 너무 많이 추가되고 뜯어고쳐져서 호환성이 없어지자 2.0으로 바꾼 듯 하다.
장점이라면 지원하는 기능이 더욱 많아졌다는 것이다. 1.2에서는 지원하지 않던 회전, 스케일링도 지원하고 기본적으로 하드웨어 가속을 받을 수 있게 되었다.
대신 라이브러리 자체가 무거워졌고, SDL 1.2와 호환이 잘 안되며 복잡해졌다.
3.3. 3.X
아직 개발중인 Branch다.[2]개발팀에 따르면, 2.26버전을 기점으로 새로운 기능들은 3.X버전으로 모두 옮기고, 2.X는 버그패치만 하는걸로 결정했다고 한다.#
개발중인 현황은 여기서 확인 할 수 있다.##2
공개된 개발 현황을 봐선 첫 발표 버전은 3.2.0 으로 목표하고 있는듯 하다.
3.X에서는 2.X에 비해 다양한 API[3]가 추가되었다.
[1] 블리자드 엔터테인먼트에서 월드 오브 워크래프트를 개발하였으며 현재는 밸브 코퍼레이션 소속[2] 정식으로 출시되진 않았고, 미리보기로 3.1.6까지 등장했다.[3] GPU, 카메라, 펜 API 등등