Simple DirectMedia Layer
|
심플 다이렉트미디어 레이어(Simple DirectMedia Layer), SDL는 C 프로그래밍 언어로 짜여진 크로스플랫폼 멀티미디어 라이브러리이다. 이 라이브러리는 비디오, 오디오, 사용자 입력 등의 계층을 추상화하여, 리눅스, 마이크로소프트 윈도, 맥 OS X 등 여러 운영 체제에서 실행이 가능하도록 한다. 이 라이브러리는 비디오, 이벤트, 디지털 오디오, CD-ROM, 사운드, 스레드, 공유 객체 불러오기, 네트워킹, 타이머를 관리한다.
SDL 2.0 API by Category
|
|
|
|
|
|
|
|
|
|
|
|
Structure
Libraries
SDL3
- SDL3/FrontPage - SDL Wiki
- libsdl-org/SDL: Simple Directmedia Layer
- Simple DirectMedia Layer - Language Bindings
- Lazy Foo' Productions - Beginning Game Programming v3.0
Local Download
- SDL2 2.0.4
-
SDL2-2.0.4.tar.gz
Troubleshooting
main() LINKER ERROR
아래와 같은 에러 메시지가 출력될 수 있다.
xxx error LNK2019: _WinMain@16 외부 기호(_WinMainCRTStartup 함수에서 참조)를 확인하지 못했습니다.
xxx fatal error LNK1120: 1개의 확인할 수 없는 외부 참조입니다.
SDL에서 main
을 WinMain
으로 Define하여 발생되는 에러이다. SDL.lib
, SDLmain.lib
을 링크하면 된다.
MinGW에서 사용할 경우 아래와 같이 사용하면 된다.
implicit entry/start for main executable
- Stackoverflow: Why SDL defines main macro?
- Stackoverflow: SDL Error Undefined symbols for architecture x86_64 "_SDL_main"
clang에서 SDL을 사용할 경우 아래와 같은 에러 메시지가 출력될 수 있다.
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable.
maybe you meant: _SDL_main
ld: symbol(s) not found for architecture x86_64
이 경우, main이 매크로로 등록되어 나타나는 현상이다. 아래와 같이 매크로 등록을 해제한다.
Renderer already associated with window
SDL_GetError()
를 통하여 아래와 같은 에러 메시지를 확인할 수 있다.
이 경우, 이미 해당 Window에서 Renderer를 생성했다는 의미이다. 이미 생성된 Renderer를 찾아봐야 한다.
MSYS DirectX Symbol error
MSYS에서 위와같이 설치할 경우 DirectX 관련 심볼(__in
등)을 찾을 수 없을 경우가 있다. 이 경우 DirectX를 정상적으로 설치해야 한다.
OpenGL.error.Error: Attempt to retrieve context when no valid context
Ubuntu 20.04 이상에서 Wayland 로 실행된다면 다음과 같은 에러가 출력될 수 있다:
pygame-ce 2.4.1 (SDL 2.28.5, Python 3.11.4)
/home/yourname/Project/ddrm/test.py:13: Warning: PyGame seems to be running through X11 on top of wayland, instead of wayland directly
...
OpenGL.error.Error: Attempt to retrieve context when no valid context
간단히, SDL_VIDEO_X11_FORCE_EGL=1
환경변수 설정하면 된다.
See also
Favorite site
- SDL website
- Wikipedia (en) SDL에 대한 설명
- libsdl-android (SDL library for Android, including several games)
SDL Wiki
Tutorial
- Lazy Foo' Productions (SDL Tutorial) 1
- SDL2: 01. 윈도우와 렌더러 (1)
- [추천] SDL Tutorial: Lesson 1 - SDL 설치 및 설정과 화면에 그림 띄우기
- Exploring SDL
- Transfer of SDL Game Framework Series. A part 1 — SDL Tutorial Basics
Guide
- AESOP Android 에서 SDL 사용하는 예제
- Using OpenGL With SDL
- SDL의 기초
- Empirical approach to CMAKE
- CMake를 이용하여 gtest 사용하기
- 게임개발을위한 SDL 라이브러리활용(2) 2
- SDL Tutorial Lesson 7: 글꼴
- sdl 코딩 #2 한글 출력하기
Link Third-party library
- wx-sdl: A tutorial on combining wxWidgets with SDL 3
- Demonstration of SDL2.0+FFmpeg player based on 4
- SDL GUI 툴킷 정리