3.1.2 Le header

La fameuse modification de la classe Texture concerne l'ajout d'une nouvelle méthode qui permettra de créer des textures vides. Je dis bien vide parce qu'elle n'est pas chargée depuis une image sur le disque dur, elle ne contient donc aucune donnée au moment de sa création. Ce n'est qu'à l'affichage qu'elle aura ses pixels.

Avant de créer ladite méthode, nous allons tout d'abord ajouter de nouveaux attributs à la classe Texture qui lui permettront de gérer les textures vides.

Dans les chapitres précédents, nous utilisions une structure de type SDL_image pour garder en mémoire pas mal d'informations sur une texture comme ses dimensions, le format interne des couleurs, etc. Vu que nous n'en utilisons pas ici, il faudra recréer toutes ces informations à la main à travers des attributs de classe.

Ces attributs sont les suivants :

  • int largeur : La largeur de la texture
  • int hauteur : Sa hauteur
  • GLenum format : Le format des couleurs (3 ou 4 couleurs en comptant le canal Alpha)
  • GLenum formatInerne : Le format interne (l'ordre des couleurs)
  • bool textureVide : Ce booléen sera utilisé dans les méthodes de copie

En ajoutant le prefix m_ à ces attributs, on a le header suivant :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef DEF_TEXTURE
#define DEF_TEXTURE

// Includes

// Classe Texture

class Texture{
	public:
		// Méthodes
		
	private:
		GLuint m_id;
		std::string m_fichierImage;

		int m_largeur;
		int m_hauteur;
		GLenum m_format;
		GLenum m_formatInterne;
		bool m_textureVide;
};

#endif