Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / API_Bilat_Image_GL_Cuda / INC / gpu / CudaInteropTools.h
1 #ifndef CUDA_INTEROP_TOOLS_H
2 #define CUDA_INTEROP_TOOLS_H
3
4 //#include "GLImageCudas.h" //include ImageCudas
5 #include "envGLImageCudas.h"
6 #ifdef _WIN32
7 #include <glew.h>
8 #else
9 #include <GL/glew.h>
10 #endif
11
12 #include "cuda.h"
13 #include "cuda_gl_interop.h" //link between GL and Cuda
14 /*----------------------------------------------------------------------*\
15 |* Declaration *|
16 \*---------------------------------------------------------------------*/
17
18 CBI_GLIMAGE_CUDA void initCudaForGLInterop(int deviceId = 0);
19
20 /**
21 * stream avec lequelle il synchronise
22 */
23 CBI_GLIMAGE_CUDA cudaGraphicsResource* linkWithCuda(GLuint pboID, cudaStream_t stream = 0);
24
25 /**
26 * stream avec lequelle il synchronise
27 */
28 CBI_GLIMAGE_CUDA void unLinkWithCuda(cudaGraphicsResource* cudaRessource);
29
30 /*
31 * Get Pixels from device to use with Cuda !
32 */
33 CBI_GLIMAGE_CUDA void mapDevicePixels(cudaGraphicsResource* cudaRessource, uchar4** devPixels, size_t* size, cudaStream_t stream = 0);
34
35 /**
36 * Tell to cuda that we finish with pixels
37 */
38 CBI_GLIMAGE_CUDA void unMapDevicePixels(cudaGraphicsResource *cudaRessource, cudaStream_t stream = 0);
39
40 CBI_GLIMAGE_CUDA void resetDevicePixel(cudaGraphicsResource* cudaRessource, cudaStream_t stream = 0);
41
42 #endif
43
44 /*----------------------------------------------------------------------*\
45 |* End *|
46 \*---------------------------------------------------------------------*/
47