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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
glutKeyboardFunc (keyboardFunc);
glutMouseFunc (mouseFunc);
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
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;
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 ?
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.