background image

Σχήμα 4.2: Διάγραμμα Κλάσεων Παραθύρου

Στην παρούσα υλοποίηση, η διαχείριση παραθύρου πραγματοποιείται μέσω της βιβλιοθήκης

GLFW, η οποία παρέχει διαλειτουργικότητα μεταξύ διαφορετικών λειτουργικών συστημάτων

(Linux και Windows), καθώς και υποστήριξη δημιουργίας OpenGL context και διαχείρισης

γεγονότων εισόδου.

Ωστόσο, η μηχανή δεν εξαρτάται άμεσα από την GLFW. Για την αποφυγή ισχυρής σύζευξης

(tight coupling), σχεδιάστηκε μια αφαιρετική κλάση Window, η οποία ορίζει τη γενική διεπαφή

διαχείρισης παραθύρου. Η συγκεκριμένη κλάση περιλαμβάνει μεθόδους όπως:

• create()

• on_update()

• viewport()

• swap_baffer()

Η υλοποίηση μέσω GLFW πραγματοποιείται σε υποκλάση (Window_GLFW), η οποία πε-

ριέχει τον πραγματικό κώδικα αρχικοποίησης και διαχείρισης του παραθύρου. Με αυτόν τον

τρόπο, ο πυρήνας της μηχανής παραμένει ανεξάρτητος από τη συγκεκριμένη βιβλιοθήκη, επι-

τρέποντας μελλοντική αντικατάσταση του backend χωρίς τροποποίηση της υπόλοιπης αρχιτε-

κτονικής.

Επιπλέον, για την καλύτερη οργάνωση των δεδομένων που σχετίζονται με ένα παράθυρο,

όπως οι διαστάσεις και ο τίτλος του, δημιουργήθηκε μια δομή (struct) με την ονομασία

WindowProperties, όπως παρουσιάζεται στο διάγραμμα κλάσεων του αντίστοιχου σχήματος.

4.2.

Η κλάση Application είναι υπεύθυνη για τη δημιουργία του παραθύρου κατά την αρχικο-

ποίηση της μηχανής, καθώς και για την εκτέλεση της κύριας λούπας, κατά την οποία γίνεται η

επεξεργασία γεγονότων και η ανανέωση της οθόνης.

25