Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / API_Bilat_GL / INC / BufferObject.h
diff --git a/WCudaMSE/API_Bilat_GL/INC/BufferObject.h b/WCudaMSE/API_Bilat_GL/INC/BufferObject.h
new file mode 100755 (executable)
index 0000000..8d1f851
--- /dev/null
@@ -0,0 +1,49 @@
+#ifndef BUFFER_OBJECT_H\r
+#define BUFFER_OBJECT_H\r
+\r
+#include "envBilatGL.h"\r
+#include "bilat_GL.h"\r
+\r
+/**\r
+ * Create Buffer in a valide OpenGL context\r
+ *\r
+ *\r
+ * When can I instancied a BufferObject ?\r
+ *\r
+ *     Using API :\r
+ *             in GLUTWindowCustomiser_A.init() ! (ps reshape,display are other possiblities)\r
+ *     Using GLUT :\r
+ *             after glutCreateWindow(...)\r
+ */\r
+class CBI_GL BufferObject\r
+    {\r
+\r
+    public:\r
+       /**\r
+        * @param bufferUsage (GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY)\r
+        * @param target (GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER)\r
+        */\r
+       BufferObject(GLenum target, unsigned int sizeOctet, void* bufferData, GLenum bufferUsage);\r
+       virtual ~BufferObject();\r
+\r
+       void bindBuffer();\r
+       void unBindBuffer();\r
+\r
+       void bufferData(unsigned int sizeOctet, void* bufferData,GLenum bufferUsage);\r
+       void bufferSubData(unsigned int offset,unsigned int sizeOctet, void* bufferData);\r
+\r
+       /**\r
+        * @param access (GL_READ_ONLY, GL_WRITE_ONLY, or GL_READ_WRITE)\r
+        */\r
+       void* map(GLenum access);\r
+       bool unMap(void);\r
+\r
+       unsigned int getBufferID() const;\r
+\r
+    protected:\r
+       GLuint bufferID; //Identifiant OpenGL\r
+       GLenum target;\r
+\r
+    };\r
+\r
+#endif\r