๊ฐ์ฅ ๋ง์ ๊ฒ ์ค
- ์ ์ฝ ์กฐ๊ฑด์ ๋ฐ๋ผ ์์๋ฅผ ๋ฐฐ์นํ๋ ๋ฐฉ๋ฒ(
์ ์ฝ ๋ ์ด์์ ), ์ฌ๊ธฐ์ ํ์ ์์์ ์์น์ ํฌ๊ธฐ๋ ํ ๋๋ฆฌ๊น์ง์ ๊ฑฐ๋ฆฌ์ ๋ค๋ฅธ ์์์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. - GTK ์์ ฏ์ ์ฌ์ฉ๋๋ ๋ฆฌ์์ค ์ง์ฝ์ ์ธ CSS ์์ ์ค ๋ค์์ ๋ํ ์ ฐ์ด๋๋ฅผ ๊ตฌํํ๋ Vulkan ๊ทธ๋ํฝ API ๊ธฐ๋ฐ ๋ ๋๋ฌ์ ๋๋ค.
- ะะฝัะตะณัะฐัะธั
GSK (GTK Scene Kit)์๋ OpenGL ๋ฐ Vulkan์ ํตํด ๊ทธ๋ํฝ ์ฅ๋ฉด์ ๋ ๋๋งํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. - ๋ ๋๋ง ๊ตฌ์ฑ์ด ์์ ๋์์ต๋๋ค. ์ด์ ๋ฒํผ๋ก ์ถ๋ ฅํ๋ ๋์ ๋ ๋ ๋ ธ๋ ๊ธฐ๋ฐ ๋ชจ๋ธ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ๊ธฐ์ ์ถ๋ ฅ์ OpenGL์ ์ฌ์ฉํ์ฌ GPU์์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ ์์ ์์ค ์์ ํธ๋ฆฌ ํํ๋ก ๋ฐฐ์ด๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ์นธ.
-
์๊ธ ์ ๋ ฅ ์ด์ ๋ณ๊ฒฝ์ ์ ์ฐํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. - ์ ๋ ฅ ์ด๋ฒคํธ๋ฅผ ๋ผ์ฐํ ํ ๋ ํ์ ์ฐฝ์ ํ์์ฑ์ ์ ๊ฑฐํ๋ ํ๋ํ๋ ์ด๋ฒคํธ ์ ๋ฌ ๋ชจ๋ธ์ ๋๋ค. ์๋ก์ด ๋ชจ๋ธ์ ๊ตฌํํด์ผ ํ๋ ํ์์ฑ์ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ๋ณด๋ค ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ, ๋ ๋๋ง์ ํ์๋๋ ์์์ ๋ ์ด์์์ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ทธ์ ๋ฐ๋ผ ํ์ ์ฐฝ ์์ด ์ํ๋์ด์ผ ํฉ๋๋ค.
- GDK API๋ Wayland ํ๋กํ ์ฝ ๋ฐ ๊ด๋ จ ๊ฐ๋
์ ์ฌ์ฉํ๋๋ก ์ฌ์ค๊ณ๋์์ต๋๋ค. X11 ๋ฐ Wayland ๊ธฐ๋ฐ ๊ธฐ๋ฅ์ด ๋ค์์ผ๋ก ์ด๋๋์์ต๋๋ค.
๋ณ๋์ ๋ฐฑ์๋ . - GMenu ๋ฐ ํ์ค๋ฒ ๋ฉ๋ด ๊ธฐ๋ฐ ์ต์ ์ ์ ํธํ์ฌ GtkMenu, GtkMenuBar ๋ฐ GtkToolbar ํด๋์ค๋ฅผ ์ ๊ฑฐํ๋ ๋ฑ API์ ๋๋์ ์ธ ์ ๋ฆฌ๊ฐ ์ํ๋์์ต๋๋ค.
- GtkTextView์ ๊ธฐํ ์ ๋ ฅ ์์ ฏ์๋ ์คํ ์ทจ์ ์คํ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค.
- ์์ฒด ๋์คํ๋ ์ด ํ๋ฉด์ด ์๊ณ ์์ ์์ ฏ์ ๋ฌถ์ด์ง ์๊ณ ์ฒซ ๋ฒ์งธ ์์ค์์ ๋ณ๋๋ก ์๋ํ ์ ์๋ ์์ ฏ์ ๋ํ ์๋ก์ด GtkNative ํด๋์ค๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView ๋ฐ Emoji ํ์ ์์ ฏ์ ํฌํจํ ์๋ก์ด ์์ ฏ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์์ ฏ ๊ฐ๋ฐ์ ์ํด ๊ฐ์ ์์ญ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์์์ ๋ ์ด์์์ ์ ์ดํ๋ โโ์์คํ ๊ตฌํ๊ณผ ํจ๊ป ์๋ก์ด GtkLayoutManager ๊ฐ์ฒด๊ฐ ๋์ ๋์์ต๋๋ค. GtkLayoutManager๋ GtkBox ๋ฐ GtkGrid์ ๊ฐ์ GTK ์ปจํ ์ด๋์ ํ์ ์์ฑ์ ๋์ฒดํฉ๋๋ค.
- ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ฐ ๋จ์ํ๋์์ผ๋ฉฐ ์ด์ ์ ๋ ฅ์๋ง ์ฌ์ฉ๋ฉ๋๋ค. ๋๋จธ์ง ์ด๋ฒคํธ๋ ๋ณ๋์ ์ ํธ๋ก ๋์ฒด๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ถ๋ ฅ ์ด๋ฒคํธ ๋์ "GdkSurface::render" ์ ํธ๊ฐ ์ ์๋๊ณ ๊ตฌ์ฑ ์ด๋ฒคํธ ๋์ "GdkSurface::size-changed"๊ฐ ์ ๊ณต๋ฉ๋๋ค.
- ๋ ์ด์์ ๋ ์ด์ด๋ฅผ ์ ๋ ฌํ ํ์ ์์ด ์ด๋ค ํฌ๊ธฐ๋ก๋ ์ด๋์์๋ ๊ทธ๋ฆด ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๋ ์๋ก์ด ์ถ์ํ ๋ ์ด์ด GdkPaintable์ ์ถ๊ฐํ์ต๋๋ค.
- GTK ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๋ ฅ์ด ์น ๋ธ๋ผ์ฐ์ ์ฐฝ์์ ๋ ๋๋ง๋ ์ ์๋๋ก Broadway ๋ฐฑ์๋๊ฐ ๋ค์ ์์ฑ๋์์ต๋๋ค.
- ์ ์๋ ๋ณ๋์ GdkDrag ๋ฐ GdkDrop ๊ฐ์ฒด๋ฅผ ํฌํจํ์ฌ ๋๋๊ทธ ์ค ๋๋กญ ์์ ์ํ๊ณผ ๊ด๋ จ๋ API๊ฐ ์ฌ์ค๊ณ๋์์ต๋๋ค.
์ด์ ํ ์คํธ ๋ฆด๋ฆฌ์ค์ ๋น๊ตํ์ฌ ๊ฐ์ ๋ ์ฌํญ:
- ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๋ฅผ ์ํ Accessibility API์ ์ด์ ๊ตฌํ์ด ์ ๊ฑฐ๋๊ณ ์ฌ์์ ๋ฐ๋ฅธ ์ ๋ฒ์ ์ผ๋ก ๋์ฒด๋์์ต๋๋ค.
ARIA ๊ทธ๋ฆฌ๊ณ GtkAccessible ์์ ฏ. - ํธ์ง ๊ฐ๋ฅํ ๋ผ๋ฒจ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค(GtkEditableLabel).
- ๋ถ๋งํฌ(GtkBookmarkList), ๋ฌธ์์ด(GtkStringList) ๋ฐ ์ ํ ๋ธ๋ก(GtkBitset)์ ํ์ํ๊ธฐ ์ํ ์๋ก์ด ๋ชฉ๋ก ๋ชจ๋ธ์ด ์ ์๋์์ต๋๋ค.
- GtkTreeView ์์ ฏ์๋ ์ ์ ํธ์งํ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
- GtkGridView ๋ฐ GtkListView์์ ์คํฌ๋กค ๊ตฌํ์ด ๊ฐ์ ๋์์ผ๋ฉฐ, ์๋ ์คํฌ๋กค ๋ฐ ์๋ ํ์ฅ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- GtkWidget์ ๋ค์ํ ์์ ์ ์ฒ๋ฆฌ ์๋๋ฅผ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
- GtkFilterListModel ๋ฐ GtkSortListModel์ ์ฆ๋ถ ์คํฌ๋กค ๋ฐ ํํฐ๋ง์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Inspector์๋ ๋ชฉ๋ก ๋ชจ๋ธ ๊ฒ์ฌ์ ๋ํ ์ง์๊ณผ ๊ฐ์ฒด ๊ฐ ์ง์ ํ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- GDK์์๋ ์คํฌ๋กค ๊ธฐ๋ก์ด ์ ์ฅ๋๊ณ GdkDevice API๊ฐ ์ ๋ฆฌ๋์์ผ๋ฉฐ ์ฅ์น๋ฅผ ๋ง์คํฐ์ ์ฌ๋ ์ด๋ธ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ค์ง๋์์ต๋๋ค.
- macOS์ฉ ์๋ก์ด GDK ๋ฐฑ์๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ๋ค์์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๋ก์ด GDK ๋ ๋๋ง ๋ฐฑ์๋
๊ฐ๋ ,์ค๊ฐ์ธต OpenGL ES ํธ์ถ์ OpenGL, Direct3D 9/11, Desktop GL ๋ฐ Vulkan์ผ๋ก ๋ณํํฉ๋๋ค.
์ถ์ฒ : opennet.ru