Bonjour,
je code une sorte de wrapper autour de Glut pour la gestion de fenêtres OpenGL.
Glut a une liste de callbacks que l'on n'est pas forcé de définir, par exemples :
Pour mon wrapper j'ai décidé de coder les callbacks sous forme de classes de politiques et de créer les nouvelles classes de fenêtres comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 glutKeyboardFunc (keyboardFunc); glutMouseFunc (mouseFunc);
Alors vous voyez surement apparaître le problème, s'il y a 15 callbacks, est-ce que je suis obligé de créer 15 fonctions dans ma politique qui resteront pour la plupart vides ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 struct MyCallbacks { static void keyboardFunc (uint8_t key, int x, int y) { // on gère le clavier } static void mouseFunc (int button, int state, int x, int y) { // on gère la souris } // etc... }; template <typename CB> class GlutWindow { GlutWindow() { //... glutKeyboardFunc (CB::keyboardFunc); glutMouseFunc (CB::mouseFunc); } }; typedef GlutWindow<MyCallbacks> MyWindow;
Ou alors existe-t-il un moyen d'utiliser des fonctions par default et de ne définir que les fonctions qui serviront à quelque chose ?
Merci pour votre aide.
Partager