๊ฒ์ ๋ฐ ๋ฉํฐ๋ฏธ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ๋จ์ํํ๊ธฐ ์ํ SDL 2.0.16(Simple DirectMedia Layer) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ถ์๋์์ต๋๋ค. SDL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋์จ์ด ๊ฐ์ 2D ๋ฐ 3D ๊ทธ๋ํฝ ์ถ๋ ฅ, ์ ๋ ฅ ์ฒ๋ฆฌ, ์ค๋์ค ์ฌ์, OpenGL/OpenGL ES/Vulkan์ ํตํ 3D ์ถ๋ ฅ ๋ฐ ๊ธฐํ ์ฌ๋ฌ ๊ด๋ จ ์์ ๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ C๋ก ์์ฑ๋์์ผ๋ฉฐ zlib ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ํ๋ก์ ํธ์์ SDL ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ก ๋ฐ์ธ๋ฉ์ด ์ ๊ณต๋ฉ๋๋ค.
์ ๋ฆด๋ฆฌ์ค์์:
- Wayland ์ง์์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค.
- Pipewire ๋ฐ AAudio ๋ฏธ๋์ด ์๋ฒ(Android)๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋์ค๋ฅผ ์ถ๋ ฅํ๊ณ ์บก์ฒํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Amazon Luna ๋ฐ Xbox Series X ๊ฒ์ ์ปจํธ๋กค๋ฌ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- HIDAPI ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ ๋ Google Stadia ๋ฐ Nintendo Switch Pro ์ปจํธ๋กค๋ฌ์ ์ ์ํ ์ง๋ ํจ๊ณผ(๋ผ๋ธ)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- SDL_WaitEvent() ๋ฐ SDL_WaitEventTimeout() ํธ์ถ์ ์ฒ๋ฆฌํ ๋ CPU ๋ก๋๊ฐ ๊ฐ์ํ์ต๋๋ค.
- ์ ์๋ ์๋ก์ด ๊ธฐ๋ฅ:
- SDL_FlashWindow()๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์ ๊ด์ฌ์ ๋ ์ ์์ต๋๋ค.
- SDL_GetAudioDeviceSpec()์ ์ง์ ๋ ์ฅ์น์ ๋ํด ์ ํธํ๋ ์ค๋์ค ํ์์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ต๋๋ค.
- SDL_SetWindowAlwaysOnTop()์ ์ ํํ ์ฐฝ์ ๋ํ SDL_WINDOW_ALWAYS_ON_TOP(์๋ก ๋ง์ถ๊ธฐ) ํ๋๊ทธ๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
- SDL_SetWindowKeyboardGrab()์ ๋ง์ฐ์ค์ ๊ด๊ณ์์ด ํค๋ณด๋ ์ ๋ ฅ์ ์บก์ฒํฉ๋๋ค.
- 32๋นํธ ํ๋ฉด ๊ฐ์ ์ด์ค์ ํ ํฌ๊ธฐ ์กฐ์ ์ ์ํ SDL_SoftStretchLinear()์ ๋๋ค.
- SDL_UpdateNVTexture()๋ NV12/21 ํ ์ค์ฒ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
- SDL_GameControllerSendEffect() ๋ฐ SDL_JoystickSendEffect()๋ฅผ ์ฌ์ฉํ์ฌ DualSense ๊ฒ์ ์ปจํธ๋กค๋ฌ์ ์ฌ์ฉ์ ์ ์ ํจ๊ณผ๋ฅผ ๋ณด๋ ๋๋ค.
- SDL_GameControllerGetSensorDataRate()๋ ๊ฒ์ ์ปจํธ๋กค๋ฌ์ ์ผ์์์ PlayStation ๋ฐ Nintendo Switch๋ก ์์ ๋๋ ์ ๋ณด์ ๊ฐ๋์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ป์ต๋๋ค.
- Android ํ๋ซํผ์ ๊ฐ๋จํ ์๋ฆผ์ ํ์ํ๊ธฐ ์ํ SDL_AndroidShowToast()
์ถ์ฒ : opennet.ru