Bonjour!
Pour expliquer mon problème je trouve qu'un code sera très parlant :
Je met à disposition des utilisateurs l'enum suivante :
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).
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; } }
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!
Partager