--- /dev/null
+#ifndef SHADER_PROGRAMS_H\r
+#define SHADER_PROGRAMS_H\r
+\r
+#include "envBilatGL.h"\r
+#include "bilat_GL.h"\r
+#include "Shaders.h"\r
+\r
+#include <vector>\r
+using std::vector;\r
+\r
+/**\r
+ * ShaderPrograms est composé de plusieurs Shaders (VertexShader et FragmentShader)\r
+ *\r
+ * Creation :\r
+ *\r
+ * 1 ou plusieurs VertexShader et 0 FragmentShader\r
+ * 1 ou plusieurs VertexShader et 1 ou plusieur FragmentShader\r
+ *\r
+ * Attention :\r
+ *\r
+ * 1 seule VertexShader ou FragmentShader avec une méthode main !\r
+ *\r
+ * Use :\r
+ * Shaders* vertexShader=loadVertexShader();\r
+ * Shaders* fragmentShader=loadFragmentShader();\r
+ *\r
+ * ShaderProgam* shaderProgam=new ShaderProgram();\r
+ * shaderProgram->attachShader(vertexShader);\r
+ * shaderProgram->attachShader(fragmentShader);\r
+ *\r
+ * init :\r
+ * shaderProgram->init();\r
+ * display :\r
+ * shaderProgram->useProgram();\r
+ * draw();\r
+ * shaderProgram->unUseProgram();\r
+ * delete:\r
+ * shaderProgram->release();\r
+ *\r
+ *TODO : amélioration gestion des shaders, ne delete pas les shaders car peuvent être utilisé dans plusieurs shaderProgram ! Mettre un place système de compteur.\r
+ */\r
+class CBI_GL ShaderPrograms\r
+ {\r
+ public:\r
+ ShaderPrograms();\r
+ virtual ~ShaderPrograms();\r
+ void init();\r
+ void link();\r
+ void release();\r
+ void useProgram();\r
+ void unUseProgram();\r
+ void attachShader(Shaders* shader);\r
+ void removeShader(Shaders* shader);\r
+ GLuint getProgramID() const;\r
+ private :\r
+ vector<Shaders*> tabShaders;\r
+ GLuint programID;\r
+ };\r
+\r
+#endif\r