Bonjour!

Pour expliquer mon problème je trouve qu'un code sera très parlant :
Je met à disposition des utilisateurs l'enum suivante :
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
 enum class PixelFormat
{
    R8U, ///< R 8 bits 8 unsigned
    RG8U, ///< RG 16 bits 88 unsigned
    RGB8U, ///< RGB 24 bits 888 unsigned
    RGBA8U, ///< RGBA 32 bits 8888 unsigned
};
 
 
unsigned int getBytesPerPixel(PixelFormat Format)
{
    switch(Format)
    {
        case PixelFormat::R8U: return 1;
        case PixelFormat::RG8U: return 2;
        case PixelFormat::RGB8U: return 3;
        case PixelFormat::RGBA8U: return 4;
    }
}
Seulement là j'ai besoin de rajouter soit de nouveaux format, soit de nouvelles propriétés (connaître le type du PixelFormat, savoir si on à affaire à un format compressé ou non, etc).
Et là je me rend compte que je vais vite avoir un code in-maintenable

Seulement je ne sais pas du tout par quoi remplacer. J'ai pensé à une classe ou l'utilisation de template mais rien ne me plaît vraiment..

Si vous avez une solution à me donner, une piste à suivre ou un design pattern je serais bien content!

Merci beaucoup à tous!