Weston์ ์ค์ํ ๋ฒ์ ๋ฒํธ ๋ณ๊ฒฝ์ ํธํ์ฑ์ ์์์ํค๋ ABI ๋ณ๊ฒฝ์ผ๋ก ์ธํ ๊ฒ์
๋๋ค. ๋ณ๊ฒฝ ์ฌํญ
- ์ฝํ
์ธ ๋ถ๋ฒ ๋ณต์ ๋ฐฉ์ง ๊ธฐ์ ์ง์ ์ถ๊ฐ
HDCP , DVI, DisplayPort, HDMI, GVIF ๋๋ UDI ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ ์ก๋๋ ๋น๋์ค ์ ํธ๋ฅผ ์ํธํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. libweston์ ์ ์ก๋ ์ฝํ ์ธ ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด weston_output, weston_surface ๋ฐ weston_head ํธ์ถ์ ๋ํ ํ๋๊ทธ๋ฅผ ๊ตฌํํฉ๋๋ค. ๋ณดํธ๋ ์ฝํ ์ธ ๋ฅผ ํ์ํ๊ธฐ ์ํ ์์ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. - ๋ฏธ๋์ด ์๋ฒ์ฉ ํ๋ฌ๊ทธ์ธ์ด ์ถ๊ฐ๋์์ต๋๋ค.
ํ์ดํ ์์ด์ด ๋ PulseAudio๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ผ๋ฉฐ ์ค๋์ค ์ธ์๋ ๋น๋์ค ์คํธ๋ฆผ ์ฒ๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ฌ์ฉ๋ ์ ์๋ค GStreamer๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด์ ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ถ๋ ฅ ํ๋ฌ๊ทธ์ธ๊ณผ ์ ์ฌํ ์๊ฒฉ ๋ฐ์คํฌํฑ์ ์ถ๋ ฅ์ ๊ตฌ์ฑํฉ๋๋ค. ์์ ์ธก์์๋ GStreamer(์: โgst-launch-1.0 Pipewiresrc ! video/x-raw,format=BGRx ! ...")๋ฅผ ํฌํจํ์ฌ ํ์ดํ์์ด์ด๋ฅผ ์ง์ํ๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ๋ฅผ ๋์คํ๋ ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. - gl-renderer์ EGL ํ์ฅ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
EGL_KHR_partial_update ๋ณ๊ฒฝ๋์ง ์์ ์์ญ์ ๊ฑด๋๋ฐ๊ณ ํ๋ฉด์ ๋ด์ฉ์ ์ ํ์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. - ๋๋ฒ๊น ๋ฐ ์ด๋ฒคํธ ๋ก๊น ์ ์ํ ์๋ก์ด weston_debug ํ๋ ์์ํฌ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค(weston_log_context).
- ์๋ก์ด ํค๋ ํ์ผ libweston-internal.h ๋ฐ backend.h๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ฒซ ๋ฒ์งธ์๋ ์์
์ ์ํ ํจ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
'weston_compositor', 'weston_plane', 'weston_seat', 'weston_surface', 'weston_spring', 'weston_view' ๋ฐ ๋ ๋ฒ์งธ - 'weston_output'; - ๋ณด์ฅํ๊ธฐ ์ํด ๋ณ๊ฒฝ๋์์ต๋๋ค.
๋ฐ๋ณต ๊ฐ๋ฅํ ๋น๋ ; - compositor-drm์ FB_DAMAGE_CLIPS ์์ฑ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ณ๋์ ํ์ผ์๋ EDID ๋งค๊ฐ๋ณ์ ๊ฒ์, ๋น๋์ค ๋ชจ๋ ์ฒ๋ฆฌ, KMS API์์ ์ํธ์์ฉ, ํ๋ ์๋ฒํผ ์์ ๋ฐ ์ํ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- ํ์ผ์์ ์ฝํ ์ธ ๋ฅผ ์ ์กํ๊ธฐ ์ํ "ํ์ผ ์คํธ๋ฆผ" ํ๋ฌ๊ทธ์ธ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ๋ฐฑ์๋ backend-drm์ ๋ณ๋์ ๋๋ ํ ๋ฆฌ์ ๋ฐฐ์น๋ฉ๋๋ค.
๋ฐฑ์๋ ํค๋๋ฆฌ์ค
๋ฐฑ์๋-rdp
๋ฐฑ์๋ ์จ์ด๋๋
๋ฐฑ์๋-x11 ๋ฐ
๋ฐฑ์๋-fbdev; - ํจํค์ง๋ PNG ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
zopflipng ์์ถ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฐ์กฐํ๋ฆฌ ; - xdg_output_unstable_v1 ๋ฐ zwp_linux_explicit_synchronization_v1 ํ์ฅ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ํจํค์ง ๋ฒ์ ์๊ตฌ ์ฌํญ ์ฆ๊ฐ
wayland ํ๋กํ ์ฝ (์กฐ๋ฆฝ์ 1.18 ํ์) - ์กฐ๋ฆฝ์์คํ
์ผ๋ก์ ์ ํ์ด ์๋ฃ๋์์ต๋๋ค.
์ค๊ฐ์ . autotools๋ฅผ ์ฌ์ฉํ ๋น๋๊ฐ ์ค๋จ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru