SDL 2.26.0 ๋ฏธ๋””์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฆด๋ฆฌ์Šค

๊ฒŒ์ž„ ๋ฐ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘์„ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•œ 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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€