Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / API_Bilat_Image_GL_Cuda / INC / gpu / CudaInteropTools.h
diff --git a/WCudaMSE/API_Bilat_Image_GL_Cuda/INC/gpu/CudaInteropTools.h b/WCudaMSE/API_Bilat_Image_GL_Cuda/INC/gpu/CudaInteropTools.h
new file mode 100755 (executable)
index 0000000..7e9dcee
--- /dev/null
@@ -0,0 +1,47 @@
+#ifndef CUDA_INTEROP_TOOLS_H\r
+#define CUDA_INTEROP_TOOLS_H\r
+\r
+//#include "GLImageCudas.h" //include ImageCudas\r
+#include "envGLImageCudas.h"\r
+#ifdef _WIN32\r
+#include <glew.h>\r
+#else\r
+#include <GL/glew.h>\r
+#endif\r
+\r
+#include "cuda.h"\r
+#include "cuda_gl_interop.h" //link between GL and Cuda\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Declaration                                     *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+CBI_GLIMAGE_CUDA void initCudaForGLInterop(int deviceId = 0);\r
+\r
+/**\r
+ * stream avec lequelle il synchronise\r
+ */\r
+CBI_GLIMAGE_CUDA cudaGraphicsResource* linkWithCuda(GLuint pboID, cudaStream_t stream = 0);\r
+\r
+/**\r
+ * stream avec lequelle il synchronise\r
+ */\r
+CBI_GLIMAGE_CUDA void unLinkWithCuda(cudaGraphicsResource* cudaRessource);\r
+\r
+/*\r
+ * Get Pixels from device to use with Cuda !\r
+ */\r
+CBI_GLIMAGE_CUDA void mapDevicePixels(cudaGraphicsResource* cudaRessource, uchar4** devPixels, size_t* size, cudaStream_t stream = 0);\r
+\r
+/**\r
+ * Tell to cuda that we finish with pixels\r
+ */\r
+CBI_GLIMAGE_CUDA void unMapDevicePixels(cudaGraphicsResource *cudaRessource, cudaStream_t stream = 0);\r
+\r
+CBI_GLIMAGE_CUDA void resetDevicePixel(cudaGraphicsResource* cudaRessource, cudaStream_t stream = 0);\r
+\r
+#endif\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    End                                             *|\r
+ \*---------------------------------------------------------------------*/\r
+\r