3.8.1 Petit rajout

On commence tout de suite les petits détails par la première vérification de la méthode charger(), celle qui concerne le cas des double chargements. Je vous avais demandé de rajouter des accolades à votre bloc if car nous allions rajouter quelques lignes de code :

1
2
3
4
5
6
7
8
bool FrameBuffer::charger(){
	// Vérification d'un éventuel ancien FBO
	if(glIsFramebuffer(m_id) == GL_TRUE) glDeleteFramebuffers(1, &m_id);

	// Génération d'un id

	....
}

Les lignes de code concernées sont en fait celles qui permettent de détruire tous les objets OpenGL. Le but de cette vérification est de nettoyer un éventuel ancien chargement, il faut donc penser à détruire tous les objets qui étaient présents avant.

Cependant, nous n'ajouterons que la destruction des Colors Buffers car les Render Buffers sont détruits automatiquement au début de la méthode creerRenderBuffer(). Il est donc inutile de les détruire une seconde fois.

Donc au final, nous n'ajoutons que l'appel à la méthode clear() pour l'attribut m_colorBuffers :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool FrameBuffer::charger()
{
	// Vérification d'un éventuel ancien FBO
	if(glIsFramebuffer(m_id) == GL_TRUE){
		// Destruction du Frame Buffer
		glDeleteFramebuffers(1, &m_id);

		// Libération des Color Buffers
		m_colorBuffers.clear();
	}

	// Génération d'un id

	....
}