Σχήμα 4.2: Διάγραμμα Κλάσεων Παραθύρου
Στην παρούσα υλοποίηση, η διαχείριση παραθύρου πραγματοποιείται μέσω της βιβλιοθήκης
GLFW, η οποία παρέχει διαλειτουργικότητα μεταξύ διαφορετικών λειτουργικών συστημάτων
(Linux και Windows), καθώς και υποστήριξη δημιουργίας OpenGL context και διαχείρισης
γεγονότων εισόδου.
Ωστόσο, η μηχανή δεν εξαρτάται άμεσα από την GLFW. Για την αποφυγή ισχυρής σύζευξης
(tight coupling), σχεδιάστηκε μια αφαιρετική κλάση Window, η οποία ορίζει τη γενική διεπαφή
διαχείρισης παραθύρου. Η συγκεκριμένη κλάση περιλαμβάνει μεθόδους όπως:
• create()
• on_update()
• viewport()
• swap_baffer()
Η υλοποίηση μέσω GLFW πραγματοποιείται σε υποκλάση (Window_GLFW), η οποία πε-
ριέχει τον πραγματικό κώδικα αρχικοποίησης και διαχείρισης του παραθύρου. Με αυτόν τον
τρόπο, ο πυρήνας της μηχανής παραμένει ανεξάρτητος από τη συγκεκριμένη βιβλιοθήκη, επι-
τρέποντας μελλοντική αντικατάσταση του backend χωρίς τροποποίηση της υπόλοιπης αρχιτε-
κτονικής.
Επιπλέον, για την καλύτερη οργάνωση των δεδομένων που σχετίζονται με ένα παράθυρο,
όπως οι διαστάσεις και ο τίτλος του, δημιουργήθηκε μια δομή (struct) με την ονομασία
WindowProperties, όπως παρουσιάζεται στο διάγραμμα κλάσεων του αντίστοιχου σχήματος.
Η κλάση Application είναι υπεύθυνη για τη δημιουργία του παραθύρου κατά την αρχικο-
ποίηση της μηχανής, καθώς και για την εκτέλεση της κύριας λούπας, κατά την οποία γίνεται η
επεξεργασία γεγονότων και η ανανέωση της οθόνης.
25