Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / API_Bilat_Image_GL_Cuda / INC / gpu / GLImages_GPU.h
diff --git a/WCudaMSE/API_Bilat_Image_GL_Cuda/INC/gpu/GLImages_GPU.h b/WCudaMSE/API_Bilat_Image_GL_Cuda/INC/gpu/GLImages_GPU.h
new file mode 100755 (executable)
index 0000000..1ed143a
--- /dev/null
@@ -0,0 +1,95 @@
+#ifndef GLIMAGES_GPU_H\r
+#define GLIMAGES_GPU_H\r
+\r
+#include "envGLImageCudas.h"\r
+#include "CudaInteropTools.h"\r
+#include "GLImages_A.h"\r
+#include "ImageMOOs_A_GPU.h"\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Declaration                                     *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+namespace gpu\r
+    {\r
+\r
+    /**\r
+     * Data plus stocker in Central Memory, mais in GPU memory !\r
+     */\r
+    class CBI_GLIMAGE_CUDA GLImages: public GLImages_A\r
+       {\r
+       public:\r
+\r
+           /*--------------------------------------*\\r
+            |*         Constructor                 *|\r
+            \*-------------------------------------*/\r
+\r
+           /**\r
+            *   (dx,dy)                :  Size of the image\r
+            *   (pxFrame,pyFrame)      :  The position of the upper left corner of the frame in screen space.\r
+            */\r
+           GLImages(gpu::ImageMOOs_A* ptrImageCudaMOO, bool isAnimationEnable = true);\r
+\r
+           virtual ~GLImages();\r
+\r
+           /*--------------------------------------*\\r
+            |*         Methodes                    *|\r
+            \*-------------------------------------*/\r
+\r
+       public:\r
+\r
+           virtual void release(Panel_A &panel);\r
+\r
+       protected:\r
+\r
+           /**\r
+            * Override\r
+            */\r
+           virtual void createPBO();\r
+\r
+           /**\r
+            * Override\r
+            */\r
+           virtual void fillPBO();\r
+\r
+           /*--------------------------------------*\\r
+            |*         Get                         *|\r
+            \*-------------------------------------*/\r
+\r
+       public:\r
+\r
+           gpu::ImageMOOs_A* getPtrImageCudaMOO();\r
+\r
+           /*--------------------------------------*\\r
+            |*         Set                         *|\r
+            \*-------------------------------------*/\r
+\r
+       public:\r
+\r
+           void setStreamToSynchronize(cudaStream_t streamId);\r
+\r
+           /*--------------------------------------*\\r
+           |*          Attributs                   *|\r
+            \*-------------------------------------*/\r
+\r
+       private:\r
+\r
+           //Inputs\r
+           gpu::ImageMOOs_A* ptrImageCudaMOO;\r
+\r
+           //Cuda interop\r
+           cudaGraphicsResource* cudaRessource;\r
+           cudaStream_t streamToSynchronize;\r
+       };\r
+\r
+    }\r
+#endif\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    End                                             *|\r
+ \*---------------------------------------------------------------------*/\r
+\r