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

์ผ์–ด๋‚ฌ๋‹ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฆด๋ฆฌ์Šค SDL 2.0.10 (Simple Direct Layer)๋Š” ๊ฒŒ์ž„ ๋ฐ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘์„ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ•˜๋“œ์›จ์–ด ๊ฐ€์† 2D ๋ฐ 3D ๊ทธ๋ž˜ํ”ฝ ์ถœ๋ ฅ, ์ž…๋ ฅ ์ฒ˜๋ฆฌ, ์˜ค๋””์˜ค ์žฌ์ƒ, OpenGL/OpenGL ES๋ฅผ ํ†ตํ•œ 3D ์ถœ๋ ฅ ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ๊ด€๋ จ ์ž‘์—…๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” C๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ zlib ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ํ”„๋กœ์ ํŠธ์—์„œ SDL ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ”์ธ๋”ฉ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ:

  • Mir ๋””์Šคํ”Œ๋ ˆ์ด ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ๋“œ๋ผ์ด๋ฒ„๋Š” Wayland๋ฅผ ํ†ตํ•ด ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์œ„ํ•ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • SDL_RW* ๋งคํฌ๋กœ๋Š” ๋ณ„๋„์˜ ํ•จ์ˆ˜ ์„ธํŠธ๋กœ ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • SIMD ์ž‘์—…์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด SDL_SIMDGetAlignment(), SDL_SIMDAlloc() ๋ฐ SDL_SIMDFree() ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • SDL_RenderDrawPointF(), SDL_RenderDrawPointsF(), SDL_RenderDrawLineF(), SDL_RenderDrawLinesF(), SDL_RenderDrawRectF(), SDL_RenderDrawRectsF(), SDL_RenderFillRectF(), SDL_RenderFillRectsF(), SDL_RenderCopyF() ๋ฐ SDL_Render๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ Œ๋”๋ง API์—์„œ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ณ„์‚ฐ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ CopyExF() ํ•จ์ˆ˜ SDL;
  • ํ„ฐ์น˜ ์žฅ์น˜ ์œ ํ˜•(์ƒ๋Œ€ ๋˜๋Š” ์ ˆ๋Œ€ ์ขŒํ‘œ๊ฐ€ ์žˆ๋Š” ํ„ฐ์น˜ํŒจ๋“œ ๋˜๋Š” ํ„ฐ์น˜ ์Šคํฌ๋ฆฐ)์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด SDL_GetTouchDeviceType() ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • SDL ๋ Œ๋”๋ง API๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฐ์น˜ ๋ Œ๋”๋ง์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜๋˜์–ด ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ๋ชจ๋“œ ์‚ฌ์šฉ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด SDL_HINT_RENDER_BATCHING ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€๊ธฐ ์ค‘์ธ ๋ฐฐ์น˜ ๋ช…๋ น์„ ๊ฐ•์ œ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด SDL_RenderFlush()์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” SDL ๋ Œ๋”๋ง๊ณผ ์ง์ ‘ ๋ Œ๋”๋ง์„ ๊ฒฐํ•ฉํ•  ๋•Œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋””๋ฒ„๊น… ๋ชฉ์ ์œผ๋กœ SDL ์ด๋ฒคํŠธ ๋กœ๊น…์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด SDL_HINT_EVENT_LOGGING ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒŒ์ž„ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ํŒŒ์ผ ์ด๋ฆ„์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด SDL_HINT_GAMEControlLERCONFIG_FILE ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ„ฐ์น˜ ์ด๋ฒคํŠธ์˜ ํ•ฉ์„ฑ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด SDL_HINT_MOUSE_TOUCH_EVENTS ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž ์žฌ์ ์ธ ์ฐจ๋‹จ์„ ์œ„ํ•ด ์ž˜๋ชป๋œ ํ˜•์‹์˜ WAVE ๋ฐ BMP ํŒŒ์ผ ์ฒ˜๋ฆฌ ๊ฐœ์„  ์ทจ์•ฝ์ ;
  • iOS 13 ๋ฐ tvOS 13์˜ ๊ฒฝ์šฐ Xbox ๋ฐ PS4 ๋ฌด์„  ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ Bluetooth ํ‚ค๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ํ…์ŠคํŠธ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์ง€์›๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Android์—๋Š” OpenSL ES๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋œ ์ €์ง€์—ฐ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ ๋ชจ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ผ์‹œ ์ค‘์ง€๋  ๋•Œ ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ์ฐจ๋‹จ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹SDL_HINT_ANDROID_BLOCK_ON_PAUSE ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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