Παρουσιάστηκε το KWinFT, ένα πιρούνι της KWin που επικεντρώνεται στο Wayland

Roman Gilg, συμμετέχοντας στην ανάπτυξη του KDE, του Wayland, του Xwayland και του X Server, εισήχθη σχέδιο KWinFT (KWin Fast Track), αναπτύσσοντας έναν ευέλικτο και εύχρηστο σύνθετο διαχειριστή παραθύρων για το Wayland και το X11 με βάση τη βάση κώδικα Kwin. Εκτός από τον διαχειριστή παραθύρων, το έργο αναπτύσσει επίσης μια βιβλιοθήκη wrapland με την εφαρμογή ενός δεσμευτικού over libwayland για Qt/C++, συνεχιζόμενη ανάπτυξη KWayland, αλλά απελευθερώθηκε από τη δέσμευση στο Qt. Ο κώδικας διανέμεται υπό τις άδειες GPLv2 και LGPLv2.

Ο στόχος του έργου είναι η ανακύκλωση KWin και KWayland χρησιμοποιώντας
σύγχρονες τεχνολογίες και πρακτικές ανάπτυξης που σας επιτρέπουν να επιταχύνετε την ανάπτυξη του έργου, να αναδιαμορφώσετε τον κώδικα, να προσθέσετε βελτιστοποιήσεις και να απλοποιήσετε την προσθήκη θεμελιωδών καινοτομιών, η ενσωμάτωση των οποίων στο KWin στην τρέχουσα μορφή του είναι δύσκολη. Τα KWinFT και Wrapland μπορούν να χρησιμοποιηθούν για την απρόσκοπτη αντικατάσταση των KWin και KWayland, αλλά δεν περιορίζονται από το κλείδωμα KWin πολλών προϊόντων όπου η διατήρηση της πλήρους συμβατότητας αποτελεί προτεραιότητα που εμποδίζει την καινοτομία να προχωρήσει.

Με το KWinFT, οι προγραμματιστές έχουν το ελεύθερο χέρι να πειραματιστούν με νέες δυνατότητες διατηρώντας παράλληλα τη σταθερότητα μέσω της χρήσης πιο σύγχρονων τεχνικών ανάπτυξης. Για παράδειγμα, για τον έλεγχο του κώδικα KWinFT, χρησιμοποιείται ένα σύστημα συνεχούς ολοκλήρωσης, συμπεριλαμβανομένης της επαλήθευσης με χρήση διαφορετικών γραμμών, αυτόματης δημιουργίας συγκροτημάτων και εκτεταμένων δοκιμών. Όσον αφορά την ανάπτυξη λειτουργικότητας, η κύρια εστίαση του KWinFT θα είναι η παροχή υψηλής ποιότητας και ολοκληρωμένης υποστήριξης πρωτοκόλλου
Wayland, συμπεριλαμβανομένης της επανεπεξεργασίας αρχιτεκτονικών χαρακτηριστικών KWin που περιπλέκουν την ενσωμάτωση με την Wayland.

Μεταξύ των πειραματικών καινοτομιών που έχουν ήδη προστεθεί στο KWinFT είναι:

  • Η διαδικασία σύνθεσης έχει επεξεργαστεί εκ νέου, γεγονός που έχει βελτιώσει σημαντικά την απόδοση περιεχομένου που εκτελείται με X11 και Wayland. Επιπλέον, έχει προστεθεί ένα χρονόμετρο για την ελαχιστοποίηση των καθυστερήσεων μεταξύ της δημιουργίας μιας εικόνας και της εμφάνισής της στην οθόνη.
  • Εφάρμοσε μια επέκταση στο πρωτόκολλο Wayland "θεατής“, επιτρέποντας στον πελάτη να πραγματοποιεί κλιμάκωση και περικοπή των άκρων της επιφάνειας από την πλευρά του διακομιστή. Σε συνδυασμό με την επόμενη μεγάλη έκδοση του XWayland, η επέκταση θα παρέχει τη δυνατότητα μίμησης αλλαγών ανάλυσης οθόνης για παλαιότερα παιχνίδια.
  • Πλήρης υποστήριξη για περιστροφή και αντικατοπτρισμό εξόδου για συνεδρίες που βασίζονται στο Wayland.

Το Wrapland παρέχει μια διεπαφή προγραμματισμού τύπου Qt που παρέχει πρόσβαση στις λειτουργίες libwayland με μια μορφή εύκολη στη χρήση σε έργα C++. Το Wrapland σχεδιάστηκε αρχικά να αναπτυχθεί ως διχάλα της KWayland, αλλά λόγω της μη ικανοποιητικής κατάστασης του κώδικα KWayland, τώρα εξετάζεται ως έργο για την πλήρη αναμόρφωση του KWayland. Η πιο σημαντική διαφορά μεταξύ του Wrapland και του KWayland είναι ότι δεν είναι πλέον συνδεδεμένο με το Qt και μπορεί να χρησιμοποιηθεί ξεχωριστά χωρίς να εγκαταστήσετε το Qt. Στο μέλλον, το Wrapland μπορεί να χρησιμοποιηθεί ως καθολική βιβλιοθήκη με C++ API, εξαλείφοντας την ανάγκη για τους προγραμματιστές να χρησιμοποιούν το libwayland C API.

Δημιουργούνται έτοιμα πακέτα για χρήστες Manjaro Linux. Για να χρησιμοποιήσετε το KWinFT, απλώς εγκαταστήστε το kwinft από το αποθετήριο και για να επιστρέψετε στο τυπικό KWin, εγκαταστήστε το πακέτο kwin. Η χρήση του Wrapland δεν περιορίζεται στο KDE, για παράδειγμα, έχει προετοιμαστεί μια υλοποίηση πελάτη για χρήση στο wlroots πρωτόκολλο ελέγχου εξόδου, που επιτρέπει σε σύνθετους διακομιστές που βασίζονται σε wlroots (ταλάντευση, Φωτιά) χρησιμοποιήστε το KScreen για να προσαρμόσετε την έξοδο.

Εν τω μεταξύ να συνεχίσει θα δημοσιευθούν ενημερώσεις του έργου KWin-χαμηλή καθυστέρηση, σχηματίζοντας μια έκδοση του σύνθετου διαχειριστή KWin με ενημερωμένες εκδόσεις κώδικα για την αύξηση της ανταπόκρισης της διεπαφής και τη διόρθωση ορισμένων προβλημάτων που σχετίζονται με την ταχύτητα απόκρισης στις ενέργειες του χρήστη, όπως ο τραυλισμός εισόδου. Εκτός από το DRM VBlank, το KWin-lowlatency υποστηρίζει τη χρήση των glXWaitVideoSync, glFinish ή NVIDIA VSync για την παροχή προστασίας από το σκίσιμο χωρίς να επηρεάζεται αρνητικά η απόκριση (η αρχική προστασία ρήξης του KWin υλοποιείται με χρήση χρονοδιακόπτη και μπορεί να οδηγήσει σε μεγάλες καθυστερήσεις (έως 50) και, ως αποτέλεσμα, καθυστέρηση στην απόκριση κατά την εισαγωγή). Οι νέες εκδόσεις του KWin-lowlatency μπορούν να χρησιμοποιηθούν αντί του stock σύνθετου διακομιστή στο KDE Plasma 5.18.

Πηγή: opennet.ru

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