Po trzech miesiącach prac przedstawiono wydanie wieloplatformowego zestawu narzędzi do tworzenia graficznych interfejsów użytkownika — GTK 4.2.0. GTK 4 rozwija się w ramach nowego procesu, który ma na celu zapewnienie programistom aplikacji stabilnego i wspieranego przez kilka lat API, które mogą używać bez obawy, że co sześć miesięcy będzie trzeba przekształcać aplikacje z powodu zmian w API w kolejnych wersjach GTK.
W nowym wydaniu głównie usunięto błędy i wprowadzono ulepszenia w API, oparte na opiniach programistów, którzy przenieśli swoje programy na GTK4. Do najbardziej dostrzegalnych ulepszeń w GTK 4.2 należą:
- Dodano renderer NGL, nowy silnik renderowania oparty na OpenGL, który jest domyślnie używany w Linuxie, Windows i macOS. Renderer NGL zapewnia lepszą wydajność przy mniejszym obciążeniu CPU. Aby przywrócić stary silnik renderowania, należy uruchomić aplikację z zmienną środowiskową GSK_RENDERER=gl.
- Przeprojektowano obsługę sekwencji Compose i niemych klawiszy, które zmieniają wygląd kolejnego wprowadzanego znaku.

- Zrealizowano możliwość używania GTK jako podprojektu w systemie budowania Meson, co umożliwia kompilację GTK i wszystkich jego zależności w ramach środowiska budowania własnej aplikacji oraz uzyskanie wszystkich artefaktów budowlanych do dostarczenia wraz z własną aplikacją, używając wybranego narzędzia.
- Ulepszono wsparcie dla kompilacji GTK dla Windows i macOS z wykorzystaniem natywnych narzędzi dla tych platform.
- Przeprojektowano dokumentację API, dla której zbudowano nowy generator gi-docgen, dostarczający bardziej przejrzysty sposób prezentacji informacji, w tym przyciski do dodawania przykładów kodu do schowka, wizualne przedstawienie hierarchii przodków i interfejsów każdej klasy, listę dziedziczonych właściwości, sygnałów i metod klasy. Interfejs obsługuje wyszukiwanie po stronie klienta i automatycznie dostosowuje się do różnych rozmiarów ekranu. Dla dokumentacji uruchomiono nową stronę docs.gtk.org, na której dostępne są również towarzyszące przewodniki dotyczące introspekcji GObject, Pango i GdkPixbuf.
- Optymalizowano wydajność różnych komponentów, począwszy od używanych do renderowania cieni GLSL, a skończywszy na obiektach dla osób z ograniczeniami.
- Zaimplementowano subpikselowe pozycjonowanie tekstu przy użyciu nowych wersji biblioteki Cairo.
- Zabezpieczono responsywny układ interfejsu do wybierania emoji.
- Udoskonalono wsparcie dla rozszerzenia protokołu Wayland do zarządzania wejściem.
- Zwiększono wydajność przewijania w widżecie podglądu tekstu.
- Poprawiono renderowanie cieni w widżetach typu popup.

Źródło: opennet.ru


