GTK 3.96, πειραματική έκδοση του GTK 4, δημοσιεύτηκε

10 μήνες μετά του παρελθόντος δοκιμαστική απελευθέρωση παρουσιάζονται GTK 3.96, μια νέα πειραματική έκδοση της επερχόμενης σταθερής έκδοσης του GTK 4. Ο κλάδος GTK 4 αναπτύσσεται ως μέρος μιας νέας διαδικασίας ανάπτυξης που προσπαθεί να παρέχει στους προγραμματιστές εφαρμογών ένα σταθερό και υποστηριζόμενο API για αρκετά χρόνια που μπορεί να χρησιμοποιηθεί χωρίς φόβο να χρειάζεται να ξαναγράφετε την εφαρμογή κάθε έξι μήνες λόγω αλλαγής API στον επόμενο κλάδο GTK. Μέχρι να σταθεροποιηθεί πλήρως το GTK 4, συνιστάται οι εφαρμογές που προσφέρονται στους χρήστες να συνεχίσουν να δημιουργούνται χρησιμοποιώντας το υποκατάστημα GTK 3.24.

Ο κύριος αλλαγές σε GTK 3.96:

  • Στο API Η GSK (GTK Scene Kit), το οποίο παρέχει απόδοση γραφικών σκηνών μέσω OpenGL και Vulkan, έχει γίνει δουλειά για σφάλματα, τα οποία έχουν γίνει ευκολότερο να εντοπιστούν χάρη στο νέο εργαλείο εντοπισμού σφαλμάτων gtk4-node-editor, το οποίο σας επιτρέπει να φορτώσετε και να εμφανίσετε απόδοση κόμβου σε σειριακή μορφή (μπορεί να αποθηκευτεί σε λειτουργία επιθεώρησης GTK inspector) και επίσης συγκρίνετε τα αποτελέσματα απόδοσης όταν χρησιμοποιείτε διαφορετικά backend.

    GTK 3.96, πειραματική έκδοση του GTK 4, δημοσιεύτηκε

  • Οι δυνατότητες τρισδιάστατου μετασχηματισμού έχουν φτάσει σε ένα επίπεδο που σας επιτρέπει να δημιουργείτε εφέ κινούμενων σχεδίων, όπως έναν περιστρεφόμενο κύβο.

    GTK 3.96, πειραματική έκδοση του GTK 4, δημοσιεύτηκε

  • Εντελώς ξαναγραφεί Το backend του Broadway GDK έχει σχεδιαστεί για να αποδίδει την έξοδο της βιβλιοθήκης GTK σε ένα παράθυρο του προγράμματος περιήγησης Ιστού. Η παλιά υλοποίηση του Broadway δεν ταίριαζε στις μεθόδους απόδοσης που προτείνονται στο GTK 4 (αντί για έξοδο σε buffer, χρησιμοποιεί τώρα ένα μοντέλο που βασίζεται σε κόμβους απόδοσης, όπου η έξοδος συντίθεται με τη μορφή ενός δέντρου λειτουργιών υψηλού επιπέδου, επεξεργάζεται αποτελεσματικά από την GPU χρησιμοποιώντας OpenGL και Vulkan).
    Η νέα επιλογή Broadway μετατρέπει τους κόμβους απόδοσης σε κόμβους DOM με στυλ CSS για απόδοση της διεπαφής στο πρόγραμμα περιήγησης. Κάθε νέα κατάσταση οθόνης επεξεργάζεται ως αλλαγή στο δέντρο DOM σε σχέση με την προηγούμενη κατάσταση, γεγονός που μειώνει το μέγεθος των δεδομένων που μεταδίδονται στον απομακρυσμένο πελάτη. Οι τρισδιάστατοι μετασχηματισμοί και τα γραφικά εφέ υλοποιούνται μέσω της ιδιότητας μετασχηματισμού CSS.

  • Το GDK συνεχίζει να εφαρμόζει API που έχουν σχεδιαστεί με γνώμονα το πρωτόκολλο Wayland και να καθαρίζει τα API που βασίζονται σε X11 ή να τα μετακινεί σε ξεχωριστό backend X11. Υπάρχει πρόοδος στις εργασίες για την απομάκρυνση από τη χρήση παιδικών επιφανειών και παγκόσμιων συντεταγμένων. Η υποστήριξη για GDK_SURFACE_SUBSURFACE έχει αφαιρεθεί από το GDK.
  • Συνεχίστηκε η αναδιαμόρφωση του κώδικα που σχετίζεται με την εκτέλεση πράξεων μεταφοράς και απόθεσης, συμπεριλαμβανομένων των προτεινόμενων ξεχωριστών αντικειμένων GdkDrag και GdkDrop.
  • Ο χειρισμός συμβάντων έχει απλοποιηθεί και χρησιμοποιείται πλέον μόνο για εισαγωγή. Τα υπόλοιπα συμβάντα αντικαθίστανται με ξεχωριστά σήματα, για παράδειγμα, αντί για συμβάντα εξόδου, προτείνεται το σήμα "GdkSurface::render", αντί για συμβάντα διαμόρφωσης - "GdkSurface::size-changed", αντί για συμβάντα αντιστοίχισης - "GdkSurface: :mapped", αντί για gdk_event_handler_set() - "GdkSurface::event";
  • Το backend του GDK για το Wayland έχει προσθέσει υποστήριξη για μια διεπαφή πύλης για πρόσβαση στις ρυθμίσεις GtkSettings. Για εργασία με μεθόδους εισαγωγής, έχει προταθεί υποστήριξη για την επέκταση πρωτοκόλλου text-input-unstable-v3.
  • Για την ανάπτυξη γραφικών στοιχείων, εισάγεται ένα νέο αντικείμενο GtkLayoutManager με την εφαρμογή ενός συστήματος ελέγχου της διάταξης των στοιχείων ανάλογα με τη διάταξη της ορατής περιοχής. Το GtkLayoutManager αντικαθιστά τις θυγατρικές ιδιότητες σε κοντέινερ GTK ​​όπως το GtkBox και το GtkGrid. Προτείνονται αρκετοί έτοιμοι διαχειριστές διάταξης: GtkBinLayout για απλά κοντέινερ με ένα θυγατρικό στοιχείο, GtkBoxLayout για γραμμικά ευθυγραμμισμένα θυγατρικά στοιχεία, GtkGridLayout για ευθυγράμμιση θυγατρικών στοιχείων σε ένα πλέγμα, GtkFixedLayout για αυθαίρετη τοποθέτηση θυγατρικών στοιχείων, Gtk για trans_CustomLayout παραδοσιακά στοιχεία χειριστές?
  • Αντικείμενα δημόσιας πρόσβασης για εμφάνιση σελίδων θυγατρικών στοιχείων έχουν προστεθεί στα γραφικά στοιχεία GtkAssistant, GtkStack και GtkNotebook, στα οποία μεταφέρονται οι θυγατρικές ιδιότητες αυτών των γραφικών στοιχείων που δεν σχετίζονται με τη διάταξη. Δεδομένου ότι όλες οι υπάρχουσες θυγατρικές ιδιότητες έχουν μετατραπεί σε κανονικές ιδιότητες, ιδιότητες διάταξης ή έχουν μετακινηθεί σε αντικείμενα σελίδας, η υποστήριξη για θυγατρικές ιδιότητες έχει καταργηθεί εξ ολοκλήρου από το GtkContainer.
  • Η βασική λειτουργία GtkEntry έχει μεταφερθεί σε ένα νέο γραφικό στοιχείο GtkText, το οποίο περιλαμβάνει επίσης μια βελτιωμένη διεπαφή επεξεργασίας GtkEditable. Όλες οι υπάρχουσες υποκατηγορίες εισαγωγής δεδομένων έχουν γίνει εκ νέου ως GtkEditable υλοποιήσεις με βάση το νέο γραφικό στοιχείο GtkText.
  • Προστέθηκε ένα νέο γραφικό στοιχείο GtkPasswordEntry για φόρμες εισαγωγής κωδικού πρόσβασης.
  • Το GtkWidgets έχει προσθέσει τη δυνατότητα μετατροπής θυγατρικών στοιχείων χρησιμοποιώντας μεθόδους γραμμικού μετασχηματισμού που καθορίζονται μέσω CSS ή του ορίσματος gtk_widget_allocate στο GskTransform. Η καθορισμένη δυνατότητα εφαρμόζεται ήδη στο γραφικό στοιχείο GtkFixed.
  • Προστέθηκαν νέα μοντέλα δημιουργίας λίστας: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel και GtkSingleSelection. Στο μέλλον σκοπεύουμε να προσθέσουμε υποστήριξη για μοντέλα λιστών στο GtkListView.
  • Το GtkBuilder έχει προσθέσει τη δυνατότητα να ορίζει τις ιδιότητες αντικειμένων τοπικά (ενσωμάτωση), αντί να χρησιμοποιεί συνδέσμους ανά αναγνωριστικό.
  • Προστέθηκε εντολή στο gtk4-builder-tool για τη μετατροπή αρχείων διεπαφής χρήστη από GTK 3 σε GTK 4.
  • Η υποστήριξη για βασικά θέματα, μενού πινάκων και σύνθετων πλαισίων έχει διακοπεί. Το γραφικό στοιχείο GtkInvisible έχει αφαιρεθεί.

    Πηγή: opennet.ru

Προσθέστε ένα σχόλιο