4.8.0๊ฐ์ ๊ฐ์ ๊ฐ๋ฐ ๋์ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์์ฑ์ ์ํ ๋ค์ค ํ๋ซํผ ํดํท์ธ GTK 4์ด ์ถ์๋์์ต๋๋ค. GTK XNUMX๋ ๋ค์ GTK์ API ๋ณ๊ฒฝ์ผ๋ก ์ธํด XNUMX๊ฐ์๋ง๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์์ฑํด์ผ ํ๋ ๊ฑฑ์ ์์ด ์ฌ์ฉํ ์ ์๋ ์์ ์ ์ด๊ณ ์ง์๋๋ API๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์๊ฒ ์๋ ๋์ ์ ๊ณตํ๋ ค๋ ์๋ก์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค. ๋๋ญ๊ฐ์ง.
GTK 4.8์ ๊ฐ์ฅ ์ฃผ๋ชฉํ ๋งํ ๊ฐ์ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์ ์ ํ ์ธํฐํ์ด์ค ์คํ์ผ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค(GtkColorChooser).
- ๊ธ๊ผด ์ ํ ์ธํฐํ์ด์ค(GtkFontChooser)์์๋ OpenType ํ์ ๊ธฐ๋ฅ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค.
- CSS ์์ง์ ๋์ผํ ์์ ์์์ ์ฐ๊ด๋ ์์์ ์ฌ๊ทธ๋ฃนํ๋ฅผ ์ต์ ํํ์ผ๋ฉฐ ๋ฌธ์ ์ฌ์ด์ ๊ฐ๊ฒฉ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ ๋ ์ ์๊ฐ ์๋ ๊ฐ์ ์ฌ์ฉ์ ํ์ฉํฉ๋๋ค.
- ์ด๋ชจํฐ์ฝ ๋ฐ์ดํฐ๊ฐ CLDR 40(์ ๋์ฝ๋ 14)์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ์๋ก์ด ๋ก์ผ์ผ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ํ ๋ง์ ์์ด์ฝ์ด ์ ๋ฐ์ดํธ๋์์ผ๋ฉฐ ๊ฐ์กฐ ํ์๋ ํ ์คํธ ๋ ์ด๋ธ์ ๊ฐ๋ ์ฑ์ด ํฅ์๋์์ต๋๋ค.
- GTK์ ๊ทธ๋ํฝ ํ์ ์์คํ ์ฌ์ด์ ๋ ์ด์ด๋ฅผ ์ ๊ณตํ๋ GDK ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํฝ์ ํ์ ๋ณํ์ ์ต์ ํํ์ต๋๋ค. NVIDIA ๋๋ผ์ด๋ฒ๊ฐ ์๋ ์์คํ ์์๋ EGL ํ์ฅ EGL_KHR_swap_buffers_with_damage๊ฐ ํ์ฑํ๋ฉ๋๋ค.
- OpenGL ๋ฐ Vulkan์ ํตํด ๊ทธ๋ํฝ ์ฅ๋ฉด์ ๋ ๋๋งํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ GSK ๋ผ์ด๋ธ๋ฌ๋ฆฌ(GTK Scene Kit)๋ ๋์ ๊ฐ์ ์์ญ(๋ทฐํฌํธ) ์ฒ๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค. ํ ์ค์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ชจ์์ ๋ ๋๋งํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ์๋ฉ๋๋ค.
- Wayland๋ ์๋ก ๋ค๋ฅธ ์ฒซ ๋ฒ์งธ ์์ค ํ๋ฉด ๊ฐ์ ํฌ์ปค์ค๋ฅผ ์ ์กํ ์ ์๋ "xdg-activation" ํ๋กํ ์ฝ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด xdg-activation์ ์ฌ์ฉํ๋ฉด ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ํฌ์ปค์ค๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
- GtkTextView ์์ ฏ์ ๋ค์ ๊ทธ๋ฆฌ๊ธฐ๊ฐ ๋ฐ๋ณต๋๋ ์ํฉ์ ์๋ฅผ ์ค์ด๊ณ GetCharacterExtents ํจ์๋ฅผ ๊ตฌํํ์ฌ ํ ์คํธ์ ๋ฌธ์๋ฅผ ์ ์ํ๋ ๊ธ๋ฆฌํ๊ฐ ์๋ ์์ญ์ ๊ฒฐ์ ํฉ๋๋ค(์ฅ์ ์ธ์ ์ํ ๋๊ตฌ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํจ์).
- ์์ ฏ์์ ์คํฌ๋กค๋ง์ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ GtkViewport ํด๋์ค์๋ ๊ธฐ๋ณธ์ ์ผ๋ก '์คํฌ๋กค ํฌ ํฌ์ปค์ค' ๋ชจ๋๊ฐ ํ์ฑํ๋์ด ์์ผ๋ฉฐ, ์ด ๋ชจ๋์์๋ ์ ๋ ฅ ํฌ์ปค์ค๊ฐ ์๋ ์์๋ฅผ ๋ทฐ์ ์ ์งํ๊ธฐ ์ํด ์ฝํ ์ธ ๊ฐ ์๋์ผ๋ก ์คํฌ๋กค๋ฉ๋๋ค.
- ๊ฒ์์ด ์ ๋ ฅ ์์ญ์ ํ์ํ๋ GtkSearchEntry ์์ ฏ์ ๋ง์ง๋ง ํค ์ ๋ ฅ๊ณผ ์ฝํ ์ธ ๋ณ๊ฒฝ์ ๋ํ ์ ํธ ์ ์ก(GtkSearchEntry::search-changed) ์ฌ์ด์ ์ง์ฐ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ์ด์ GtkCheckButton ์์ ฏ์๋ ๋ฒํผ์ด ์๋ ์์ฒด ํ์ ์์ ฏ์ ํ ๋นํ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
- ์ฝํ ์ธ ๋ฅผ ์ฃผ์ด์ง ์์ญ ํฌ๊ธฐ์ ๋ง๊ฒ ์กฐ์ ํ๊ธฐ ์ํด GtkPicture ์์ ฏ์ "content-fit" ์์ฑ์ ์ถ๊ฐํ์ต๋๋ค.
- GtkColumnView ์์ ฏ์์ ์คํฌ๋กค ์ฑ๋ฅ์ด ์ต์ ํ๋์์ต๋๋ค.
- GtkTreeStore ์์ ฏ์ ์ฌ์ฉํ๋ฉด UI ํ์์ ํ์ผ์์ ํธ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค.
- ํน์ ์์ญ์ ํ ์คํธ ํ์๋ฅผ ๋ด๋นํ๋ GtkInscription ํด๋์ค์ ๋ชฉ๋ก ํ์๋ฅผ ์ํ ์๋ก์ด ์์ ฏ์ด ์ถ๊ฐ๋์์ต๋๋ค. GtkInscription ์ฌ์ฉ ์์๊ฐ ํฌํจ๋ ๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐํ์ต๋๋ค.
- GtkTreePopover ์์ ฏ์ ์คํฌ๋กค ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
- GtkLabel ์์ ฏ์๋ ํญ์ ๋ํ ์ง์๊ณผ ํค๋ณด๋์ ๋ผ๋ฒจ๊ณผ ์ฐ๊ด๋ ๊ธฐํธ๋ฅผ ํด๋ฆญํ์ฌ ๋ผ๋ฒจ์ ํ์ฑํํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- GtkListView ์์ ฏ์ ์ด์ "::n-items" ๋ฐ "::item-type" ์์ฑ์ ์ง์ํฉ๋๋ค.
- ์ ๋ ฅ ์์คํ ์ ์คํฌ๋กค ์ฐจ์ ๋งค๊ฐ๋ณ์ ํธ๋ค๋ฌ(GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE)์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค.
- macOS ํ๋ซํผ์ ๊ฒฝ์ฐ OpenGL์ ์ฌ์ฉํ ์ ์ฒด ํ๋ฉด ๋ชจ๋ ๋ฐ ๋น๋์ค ์ฌ์ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ํฅ์๋ ๋ชจ๋ํฐ ๊ฐ์ง, ๋ค์ค ๋ชจ๋ํฐ ๊ตฌ์ฑ ์์ , ํ์ผ ๋ํ ์์์ ์ฐฝ ๋ฐฐ์น ๋ฐ ํฌ๊ธฐ ์ ํ. ๋ ๋๋ง์๋ CALayer์ IOSurface๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋ ์ ์์ต๋๋ค.
- Windows ํ๋ซํผ์์๋ HiDPI ํ๋ฉด์ ์ฐฝ ๋ฐฐ์น๊ฐ ๊ฐ์ ๋์๊ณ , ์์ ๊ฐ์ง ์ธํฐํ์ด์ค๊ฐ ์ถ๊ฐ๋์์ผ๋ฉฐ, ๊ณ ํด์๋ ๋ง์ฐ์ค ํ ์ด๋ฒคํธ ์ง์์ด ๊ตฌํ๋์์ผ๋ฉฐ, ํฐ์นํจ๋ ์ง์์ด ๊ฐ์ ๋์์ต๋๋ค.
- ๋ฌธ์์ฉ ์คํฌ๋ฆฐ์ท์ ์์ฑํ ๋ ์ฌ์ฉ๋๋ ์คํฌ๋ฆฐ์ท์ ์์ฑํ๊ธฐ ์ํ ์คํฌ๋ฆฐ์ท ๋ช ๋ น์ด gtk4-builder-tool ์ ํธ๋ฆฌํฐ์ ์ถ๊ฐ๋์์ต๋๋ค.
- gtk4-node-editor ์ ํธ๋ฆฌํฐ ์ค์น๊ฐ ์ ๊ณต๋ฉ๋๋ค.
- ๋๋ฒ๊ฑฐ ๊ธฐ๋ฅ์ด ํ์ฅ๋์์ต๋๋ค. ์ถ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ ํ์๋ฅผ ๊ตฌํํ๊ณ ๊ฒ์ฌ ์ค์ PangoAttrList ์์ฑ ๋ณด๊ธฐ๋ฅผ ํ์ฉํ์ต๋๋ค. ๊ฒ์ฌ๊ด์ ๊ฒ์ฌ๊ฐ ํ์ฉ๋ฉ๋๋ค. "GTK_DEBUG=invert-text-dir" ๋ชจ๋์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. GTK_USE_PORTAL ํ๊ฒฝ ๋ณ์ ๋์ "GDK_DEBUG=portals" ๋ชจ๋๊ฐ ์ ์๋ฉ๋๋ค. ๊ฒ์ฌ ์ธํฐํ์ด์ค์ ์๋ต์ฑ์ด ํฅ์๋์์ต๋๋ค.
- ffmpeg ๋ฐฑ์๋์ ์ฌ์ด๋ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- JPEG ์ด๋ฏธ์ง ๋ค์ด๋ก๋์ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ด 300MB๋ก ๋์ด๋ฌ์ต๋๋ค.
์ถ์ฒ : opennet.ru