๊ฒ์ ๋ฐ ๋ฉํฐ๋ฏธ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ๋จ์ํํ๊ธฐ ์ํ SDL 2.26.0(Simple DirectMedia Layer) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ถ์๋์์ต๋๋ค. SDL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋์จ์ด ๊ฐ์ 2D ๋ฐ 3D ๊ทธ๋ํฝ ์ถ๋ ฅ, ์ ๋ ฅ ์ฒ๋ฆฌ, ์ค๋์ค ์ฌ์, OpenGL/OpenGL ES/Vulkan์ ํตํ 3D ์ถ๋ ฅ ๋ฐ ๊ธฐํ ์ฌ๋ฌ ๊ด๋ จ ์์ ๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ C๋ก ์์ฑ๋์์ผ๋ฉฐ Zlib ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋ ํ๋ก์ ํธ์์ SDL์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ๋ฐ์ธ๋ฉ์ด ์ ๊ณต๋ฉ๋๋ค.
์ ๋ฆด๋ฆฌ์ค์์:
- OpenGL์ ํค๋ ํ์ผ์ ์ต์ Khronos ์ปจ์์์ ์ฌ์์ ๋ง์ถฐ ์ ๋ ฌ๋ฉ๋๋ค.
- ์ฐฝ์ ํฝ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ ธ์ค๋ SDL_GetWindowSizeInPixels() ํจ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์ด ํฌ๊ธฐ๋ ๋ฐฐ์จ ์ ์ฉ์ผ๋ก ์ธํด ๋์ DPI ํ๋ฉด์ ๋ ผ๋ฆฌ์ ํฌ๊ธฐ์ ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ์ํํธ์จ์ด ๋ ๋๋ง ์ฝ๋์ ์์ง ๋๊ธฐํ(vsync) ์๋ฎฌ๋ ์ด์ ์ ์ถ๊ฐํ์ต๋๋ค.
- SDL_MouseWheelEvent๋ก ๋ง์ฐ์ค ์์น ์ ์ก์ ํ์ฑํํ์ต๋๋ค.
- ๋ชจ๋ ํํธ๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ค์ ํ๋ SDL_ResetHints() ํจ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- GUID๋ก ์ธ์ฝ๋ฉ๋ ์กฐ์ด์คํฑ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ SDL_GetJoystickGUIDInfo() ํจ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- PS3 ๋ฐ Nintendo Wii ์ปจํธ๋กค๋ฌ์ ๋ํ ์ง์์ด HIDAPI ๋๋ผ์ด๋ฒ์ ์ถ๊ฐ๋์์ต๋๋ค.
- ์ ์์ฑ ์ถ๊ฐ: SDL_HINT_JOYSTICK_HIDAPI_PS3, SDL_HINT_JOYSTICK_HIDAPI_WII, SDL_HINT_JOYSTICK_HIDAPI_XBOX_360, SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED, SDL_HINT_JOYSTICK_HIDAPI_XBOX_ ONE, HINT_JOYST ICK_HIDAPI_XBOX_ONE_HOME_LED, SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED, SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS ๋ฐ SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS๋ HIDAPI ๋๋ผ์ด๋ฒ๋ฅผ ํตํด XBox 360 ๋ฐ PS3๋ฅผ ์ ์ดํฉ๋๋ค.
- Nintendo Switch Joy-Cons ์ฝค๋ณด ์ปจํธ๋กค๋ฌ์ ์ผ์ชฝ ๋ฐ ์ค๋ฅธ์ชฝ ์์ด๋ก์ค์ฝํ์ ๋ํ ๋ณ๋์ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- SDL_SensorEvent, SDL_ControllerSensorEvent, DL_SensorGetDataWithTimestamp() ๋ฐ SDL_GameControllerGetSensorDataWithTimestamp()์ ๋ง์ดํฌ๋ก์ด ๊ฐ๊ฒฉ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- SDL_GetRevision() ํจ์๋ SDL ๋น๋ ์ ๋ณด๋ฅผ ํ์ฅํ์ต๋๋ค. ์๋ฅผ ๋ค์ด git ์ปค๋ฐ ํด์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- Linux์ ๊ฒฝ์ฐ SDL_SetPrimarySelectionText(), SDL_GetPrimarySelectionText() ๋ฐ SDL_HasPrimarySelectionText() ํจ์๊ฐ ๊ธฐ๋ณธ ํด๋ฆฝ๋ณด๋์ ์ํธ ์์ฉํ๋๋ก ๊ตฌํ๋์์ต๋๋ค.
- Wayland ๊ธฐ๋ฐ ํ๊ฒฝ์์ ๋ง์ฐ์ค ์ปค์ ์๋ฎฌ๋ ์ด์ ์ ์ ์ดํ๊ธฐ ์ํด SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- Android์ฉ์ผ๋ก ๋น๋ํ๋ ๊ฒฝ์ฐ IME(Input Method Editor) ์ํํธ์จ์ด ํค๋ณด๋์ ์ ๋ ฅ์ด ํ์ฑํ๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru