Διατίθεται κιτ γραφικών GTK 4.14 με νέους κινητήρες για OpenGL και Vulkan

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

Στο μέλλον, σχεδιάζεται να δημιουργηθεί ένας πειραματικός κλάδος 4.90, ο οποίος θα αναπτύξει λειτουργικότητα για τη μελλοντική κυκλοφορία του GTK5. Ο κλάδος GTK5 θα περιλαμβάνει αλλαγές που παραβιάζουν τη συμβατότητα σε επίπεδο API, για παράδειγμα, που σχετίζονται με την κατάργηση ορισμένων γραφικών στοιχείων, όπως το παλιό παράθυρο διαλόγου επιλογής αρχείων. Συζητείται επίσης η δυνατότητα τερματισμού της υποστήριξης για το πρωτόκολλο X5 στον κλάδο GTK11 και η δυνατότητα λειτουργίας μόνο με χρήση του πρωτοκόλλου Wayland.

Μερικές από τις πιο αξιοσημείωτες βελτιώσεις στο GTK 4.14 περιλαμβάνουν:

  • Περιλαμβάνει νέες ενοποιημένες μηχανές απόδοσης "ngl" και "vulkan" που χρησιμοποιούν τα API γραφικών OpenGL (GL 3.3+ και GLES 3.0+) και Vulkan. Και οι δύο κινητήρες βασίζονται στο Vulkan API, αλλά ο κινητήρας "ngl" έχει ένα ξεχωριστό στρώμα αφαίρεσης για το OpenGL που τρέχει πάνω από το Vulkan, λαμβάνοντας υπόψη τις διαφορές μεταξύ OpenGL και Vulkan. Αυτή η προσέγγιση κατέστησε δυνατή τη χρήση μιας κοινής υποδομής και στις δύο μηχανές για την επεξεργασία του γραφήματος σκηνής, των μετασχηματισμών, της προσωρινής αποθήκευσης υφών και των γλυφών. Η ενοποίηση απλοποίησε επίσης σημαντικά τη διατήρηση της βάσης κωδικών και των δύο κινητήρων και τη διατήρησή τους ενημερωμένοι και συγχρονισμένοι.

    Σε αντίθεση με την παλιά μηχανή gl, η οποία χρησιμοποιούσε ένα ξεχωριστό απλό shader για κάθε τύπο κόμβου απόδοσης και περιοδικά επαναταξινόμησε τα δεδομένα κατά τη διάρκεια της απόδοσης εκτός οθόνης, οι νέοι μηχανές αντί για απόδοση εκτός οθόνης χρησιμοποιούν ένα σύνθετο shader (ubershader) που ερμηνεύει τα δεδομένα από το buffer. . Μεταξύ των ξεχωριστών χαρακτηριστικών των νέων κινητήρων, αναφέρεται η εξομάλυνση περιγράμματος (σας επιτρέπει να διατηρείτε λεπτές λεπτομέρειες και να σχεδιάζετε πιο ομαλά περιγράμματα), ο σχηματισμός αυθαίρετων κλίσεων (μπορεί να χρησιμοποιηθεί οποιοσδήποτε αριθμός χρωμάτων και αντιπαραβολή) και η κλασματική κλιμάκωση.

  • Η νέα μηχανή απόδοσης "ngl" είναι ενεργοποιημένη από προεπιλογή και η υποστήριξη για το API γραφικών Vulkan είναι επίσης ενεργοποιημένη από προεπιλογή. Κατά τη δημιουργία της προεπιλεγμένης διαμόρφωσης, απαιτείται πλέον υποστήριξη Vulkan 1.3.
  • Η βιβλιοθήκη GSK (GTK Scene Kit), η οποία παρέχει τη δυνατότητα απόδοσης γραφικών σκηνών μέσω OpenGL και Vulkan, έχει κάνει σημαντικές βελτιώσεις σχετικά με την απόδοση γραμματοσειρών, την υπόδειξη και τη χρήση μη ακέραιων τιμών κλίμακας κατά την εμφάνιση κειμένου. Κατά την υπόδειξη (εξομάλυνση του περιγράμματος της γλυφής κατά τη διάρκεια της ραστεροποίησης για αύξηση της ευκρίνειας σε οθόνες χαμηλής ανάλυσης), εφαρμόζεται η τοποθέτηση των γλυφών σε υποπίξελ. Η ποιότητα της απόδοσης γραμματοσειράς έχει βελτιωθεί σε τιμές κλίμακας μη ακέραιων αριθμών (για παράδειγμα, 125%). Υλοποιήθηκε υποστήριξη για την έξωση στοιχείων από κρυφές μνήμες για γλυφές και υφές. Βελτιωμένη απόδοση της προσωρινής αποθήκευσης γλυφών.
  • Ως μέρος της απομάκρυνσης από τη χρήση της βιβλιοθήκης του Καΐρου προς όφελος της απόδοσης GPU, προστέθηκε υποστήριξη για "Μονοπάτια" για τη σχεδίαση σχημάτων και περιοχών χρησιμοποιώντας μια ακολουθία γραμμών ή κυβικές και τετραγωνικές καμπύλες Bezier. Για τη σχεδίαση με μονοπάτια, υπάρχει ένα αντικείμενο GskPath που ορίζει τις παραμέτρους γραμμών ή καμπυλών, καθώς και αντικείμενα GskPathBuilder για τη δημιουργία καμπυλών, GskPathPoint για τον ορισμό ενός σημείου σε ένα σχήμα και GskPathMeasure για τη λήψη μετρήσεων όπως το μήκος μιας διαδρομής.
    Διατίθεται κιτ γραφικών GTK 4.14 με νέους κινητήρες για OpenGL και Vulkan
  • Η βιβλιοθήκη GDK, η οποία παρέχει ένα επίπεδο μεταξύ του GTK και του υποσυστήματος γραφικών, έχει διευρυμένη υποστήριξη για τον μηχανισμό DMA-BUF, ο οποίος επιτρέπει τη χρήση buffer σε επίπεδο πυρήνα που διευθύνονται χρησιμοποιώντας έναν περιγραφέα, που καθιστά δυνατή, αντί της αντιγραφής δεδομένων pixel, να τα μεταφέρει μεταξύ των υποσυστημάτων του πυρήνα μέσω ενός περιγραφέα. Στο πλαίσιο του GTK, το DMA-BUF μπορεί να χρησιμοποιηθεί για την ελαχιστοποίηση της αντιγραφής δεδομένων pixel κατά τη σύνθεση και κατά την εργασία με βίντεο (για παράδειγμα, το βίντεο μπορεί να εγγραφεί από έναν αποκωδικοποιητή υλικού σε dmabuf, στη συνέχεια να προσαρτηθεί σε μια επιφάνεια Wayland και να μεταφερθεί σε διαχείριση σύνθεσης για διεπαφή χρήστη και σύνθεση εξόδου στην οθόνη χωρίς περιττές λειτουργίες αντιγραφής δεδομένων).

    Ένα γραφικό στοιχείο GtkGraphicsOffload έχει προστεθεί για την απευθείας αποστολή περιεχομένου όπως βίντεο στον σύνθετο διαχειριστή (παρακάμπτοντας την απόδοση GSK) και έχει προστεθεί μια κλάση GdkDmabufTextureBuilder για τη δημιουργία αντικειμένων GdkTexture από το dmabuf για τη δημιουργία περιεχομένου για άμεση μεταφορά. Το Pipewire, το video4linux ή το gstreamer μπορούν να χρησιμοποιηθούν ως πηγή για το dmabuf. Υποστηρίζονται μορφές dmabuf NV16, NV61, NV24, NV42 και YUV.

  • Προστέθηκε η κλάση GtkPrintDialog, σχεδιασμένη για τη δημιουργία διαλόγων εκτύπωσης και την προσφορά ενός ασύγχρονου API για χρήση αντί του GtkPrintOperation.
  • Το γραφικό στοιχείο GtkEmojiChooser ενημέρωσε τα δεδομένα Emoji και πρόσθεσε τη δυνατότητα αναζήτησης σε διαφορετικές γλώσσες, λαμβάνοντας υπόψη διαφορετικές τοπικές ρυθμίσεις.
  • Το γραφικό στοιχείο GtkEntry έχει βελτιώσει την παρακολούθηση των αλλαγών που γίνονται από τον χρήστη (για την υλοποίηση της λειτουργίας αναίρεσης).
  • Στο γραφικό στοιχείο GtkFileChooser, το άνοιγμα του διαλόγου επιλογής αρχείου έχει επιταχυνθεί.
  • Η κλάση GtkShortcutsWindow, η οποία εμφανίζει συμβουλές εργαλείων για συντομεύσεις πληκτρολογίου και κινήσεις οθόνης, είναι προσαρμοσμένη για μικρές οθόνες.
  • Η λειτουργία επιθεώρησης (επιθεωρητής GTK) παρέχει εμφάνιση πληροφοριών σχετικά με το OpenGL, τις υπόγειες επιφάνειες και τα FPS.
  • Προστέθηκε η εντολή "σύγκριση" στο βοηθητικό πρόγραμμα gtk4-rendernode-tool.
  • Ένα νέο βοηθητικό πρόγραμμα, το gtk4-path-tool, έχει προταθεί για εργασία με μονοπάτια.
  • Η υποστήριξη αυτόματης εγγραφής έχει προστεθεί στο βοηθητικό πρόγραμμα gtk4-node-editor.
  • Διορθώθηκε ένα σφάλμα που παρουσιάστηκε κατά τη χρήση του Wayland σε περιβάλλοντα που δεν βασίζονται σε GNOME Shell.
  • Προστέθηκαν νέες δυνατότητες για άτομα με αναπηρία που σχετίζονται με την εμφάνιση σύνθετου μορφοποιημένου κειμένου, τη λειτουργία του WebKitGTK και την εμφάνιση ειδοποιήσεων. Βελτιωμένη υποστήριξη για τις προδιαγραφές ARIA. Προστέθηκε διεπαφή GtkAccessibleText για χρήση λειτουργιών προσβασιμότητας σε widget κειμένου τρίτων. Η διεπαφή GtkText έχει προσθέσει υποστήριξη για το πρωτόκολλο AT-SPI για αλληλεπίδραση με προγράμματα ανάγνωσης οθόνης.
  • Προστέθηκε δυνατότητα απόδοσης GPU χρησιμοποιώντας το WGL API στην πλατφόρμα των Windows.
  • Μειωμένη κατανάλωση μνήμης κατά τη φόρτωση θεμάτων που βασίζονται σε CSS.

Πηγή: opennet.ru

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