+#include <iostream>\r
+#include <stdlib.h>\r
+\r
+#include "AnimateurFreeGL.h"\r
+#include "AnimateurFonctionelFreeGL.h"\r
+\r
+#include "VagueProvider.h"\r
+#include "DamierProvider.h"\r
+#include "EventProvider.h"\r
+\r
+using std::cout;\r
+using std::endl;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Declaration *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Imported *|\r
+ \*-------------------------------------*/\r
+\r
+extern int vague0FreeGL(int itmax); // bad technique\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+int mainFreeGL(void);\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Implementation *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+int mainFreeGL(void)\r
+ {\r
+ cout << "\n[FPS] : Free GL, please wait ..." << endl;\r
+\r
+ vague0FreeGL(1000); // bad technique\r
+\r
+ Vague* ptrVague = VagueProvider::create(); // good technique\r
+ Damier* ptrDamier = DamierProvider::create();\r
+ Event* ptrEvent = EventProvider::create();\r
+\r
+ AnimateurFreeGL vagueFreeGL(ptrVague);\r
+ AnimateurFonctionelFreeGL damierFreeGL(ptrDamier);\r
+ AnimateurFonctionelFreeGL eventFreeGL(ptrEvent);\r
+\r
+ return EXIT_SUCCESS;\r
+ }\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* End *|\r
+ \*---------------------------------------------------------------------*/\r
+\r