나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-03-16 13:16:19

SDL


파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 != null
, ''''''}}}{{{#!if 넘어옴3 != null
, ''''''}}}{{{#!if 넘어옴4 != null
, ''''''}}}{{{#!if 넘어옴5 != null
, ''''''}}}{{{#!if 넘어옴6 != null
, ''''''}}}{{{#!if 넘어옴7 != null
, ''''''}}}{{{#!if 넘어옴8 != null
, ''''''}}}{{{#!if 넘어옴9 != null
, ''''''}}}{{{#!if 넘어옴10 != null
, ''''''}}}은(는) 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 약칭이 SDL인 스타벅스 돌체 라떼}}}에 대한 내용은 [[돌체 라떼]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[돌체 라떼#s-|]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[돌체 라떼#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
약칭이 SDL인 스타벅스 돌체 라떼: }}}[[돌체 라떼]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[돌체 라떼#s-|]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[돌체 라떼#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}

Simple DirectMedia Layer
파일:attachment/SDL/SDL_logo.png
<colbgcolor=#336791><colcolor=#ffffff> 최초 개발자 Sam Lantinga
개발자 SDL 커뮤니티
출시일 1998년
라이선스 zlib License
2.0 이전: GNU LGPL
홈페이지 파일:홈페이지 아이콘.svg
소스 코드 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg

1. 개요2. 특징3. 버전
3.1. 1.X3.2. 2.X3.3. 3.X


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.X, 3.X 3가지가 있다.

3.1. 1.X

안정된 버전은 1.2.15

SDL1 에서 가장 안정된 버전이자 마지막으로 업데이트 되었던 버전. 1.3이 개발중이었지만 바로 2.0으로 넘어갔기 때문에 1.2가 마지막이 되었다.

특징이라면 Simple DirectMedia Layer 라는 이름에 걸맞게 굉장히 간단한 기능들을 위주로 지원했다. 대신 그만큼 기능도 적었기 때문에 활용하기가 상당히 힘든 편. 본격적으로 게임을 개발하려고 하면 OpenGL을 사용해야한다. (SDL_Surface라고 픽셀 데이터를 저장할 수 있는데, 이미지 회전, 스케일 등의 간단한 기능도 지원하지 않는다.)

그래도 비디오, 오디오, 조이스틱 등 지원할 것은 다 지원했기 때문에 크게 문제는 없었고 2.0보다는 훨씬 가볍기 때문에 아직도 사용하기도 한다.

3.2. 2.X

안정된 버전은 2.32.2

본격적으로 무거워지기 시작한 라이브러리로 원래 1.3으로 개발중이었지만 기능이 너무 많이 추가되고 뜯어고쳐져서 호환성이 없어지자 2.0으로 바꾼 듯 하다.

장점이라면 지원하는 기능이 더욱 많아졌다는 것이다. 1.2에서는 지원하지 않던 회전, 스케일링도 지원하고 기본적으로 하드웨어 가속을 받을 수 있게 되었다.

대신 라이브러리 자체가 무거워졌고, SDL 1.2와 호환이 잘 안되며 복잡해졌다. 그리고 지원되는 플랫폼의 개수가 적어졌다

3.3. 3.X

안정된 버전은 3.2.8

개발팀에 따르면, 2.26버전을 기점으로 새로운 기능들은 3.X버전으로 모두 옮기고, 2.X는 버그패치만 하는걸로 결정했다고 한다.#

3.X에서는 2.X에 비해 다양한 API[2]가 추가되었다.
[1] 블리자드 엔터테인먼트에서 월드 오브 워크래프트를 개발하였으며 현재는 밸브 코퍼레이션 소속[2] GPU, 카메라, 펜 API 등등