Example #1
0
        /// <summary>
        /// Registers a new graphics interop resource for interop with DirectX
        /// </summary>
        /// <param name="d3dResource">DirectX resource to register</param>
        /// <param name="flags">register Flags</param>
        /// <param name="version">DirectX version</param>
        public CudaDirectXInteropResource(IntPtr d3dResource, CUGraphicsRegisterFlags flags, CudaContext.DirectXVersion version)
        {
            _cudaResource  = new CUgraphicsResource();
            _d3dResource   = d3dResource;
            _registerFlags = flags;
            _version       = version;

            switch (version)
            {
            case CudaContext.DirectXVersion.D3D9:
                res = DirectX9NativeMethods.CUDA3.cuGraphicsD3D9RegisterResource(ref _cudaResource, _d3dResource, flags);
                Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuGraphicsD3D9RegisterResource", res));
                break;

            case CudaContext.DirectXVersion.D3D10:
                res = DirectX10NativeMethods.CUDA3.cuGraphicsD3D10RegisterResource(ref _cudaResource, _d3dResource, flags);
                Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuGraphicsD3D10RegisterResource", res));
                break;

            case CudaContext.DirectXVersion.D3D11:
                res = DirectX11NativeMethods.cuGraphicsD3D11RegisterResource(ref _cudaResource, _d3dResource, flags);
                Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuGraphicsD3D11RegisterResource", res));
                break;

            default:
                throw new ArgumentException("DirectX version not supported.", "dXVersion");
            }

            if (res != CUResult.Success)
            {
                throw new CudaException(res);
            }
            _IsRegistered = true;
            _IsMapped     = false;
        }
Example #2
0
        public CUarray GetGraphicsSubResourceMappedArray(CUgraphicsResource resource, uint arrIndex, uint mipLevel)
        {
            CUarray pArray = new CUarray();

            this.LastError = CUDADriver.cuGraphicsSubResourceGetMappedArray(ref pArray, resource, arrIndex, mipLevel);
            return(pArray);
        }
Example #3
0
        public ulong GetGraphicsResourceMappedPointerSize(CUgraphicsResource resource)
        {
            CUdeviceptr pDevPtr = new CUdeviceptr();
            SizeT       pSize   = 0;

            this.LastError = CUDADriver.cuGraphicsResourceGetMappedPointer(ref pDevPtr, ref pSize, resource);
            return(pSize);
        }
Example #4
0
        public CUdeviceptr GetGraphicsResourceMappedPointer(CUgraphicsResource resource, out uint size)
        {
            CUdeviceptr pDevPtr = new CUdeviceptr();
            SizeT       pSize   = 0;

            this.LastError = CUDADriver.cuGraphicsResourceGetMappedPointer(ref pDevPtr, ref pSize, resource);
            size           = pSize;
            return(pDevPtr);
        }
Example #5
0
        /// <summary>
        /// Registers a new graphics interop resource for interop with OpenGL buffer
        /// </summary>
        /// <param name="resource">OpenGL resource to register</param>
        /// <param name="flags">register Flags</param>
        public CudaOpenGLBufferInteropResource(uint resource, CUGraphicsRegisterFlags flags)
        {
            _cudaResource  = new CUgraphicsResource();
            _resource      = resource;
            _registerFlags = flags;

            res = OpenGLNativeMethods.CUDA3.cuGraphicsGLRegisterBuffer(ref _cudaResource, _resource, flags);
            Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuGraphicsGLRegisterBuffer", res));

            if (res != CUResult.Success)
            {
                throw new CudaException(res);
            }
            _IsRegistered = true;
            _IsMapped     = false;
        }
Example #6
0
 public static extern CUResult cuGraphicsD3D10RegisterResource(ref CUgraphicsResource pCudaResource, IntPtr pD3DResource, uint Flags);
Example #7
0
 public static extern CUResult cuGraphicsD3D9RegisterResource(ref CUgraphicsResource pCudaResource, IntPtr pD3DResource, CUGraphicsRegisterFlags Flags);
Example #8
0
 public static extern CUResult cuGraphicsGLRegisterImage(ref CUgraphicsResource pCudaResource, uint image, uint target, uint Flags);
Example #9
0
 public static extern CUResult cuGraphicsGLRegisterBuffer(ref CUgraphicsResource pCudaResource, uint buffer, uint Flags);
Example #10
0
 public static extern CUResult cuGraphicsGLRegisterImage(ref CUgraphicsResource pCudaResource, uint image, CudaOpenGLImageInteropResource.OpenGLImageTarget target, CUGraphicsRegisterFlags Flags);
Example #11
0
 public void SetGraphicsResourceMapFlags(CUgraphicsResource resource, CUGraphicsMapResourceFlags flags)
 {
     this.LastError = CUDADriver.cuGraphicsResourceSetMapFlags(resource, (uint)flags);
 }
Example #12
0
        public CUdeviceptr GetGraphicsResourceMappedPointer(CUgraphicsResource resource)
        {
            uint num;

            return(this.GetGraphicsResourceMappedPointer(resource, out num));
        }
Example #13
0
 public void UnregisterGraphicsResource(CUgraphicsResource resource)
 {
     this.LastError = CUDADriver.cuGraphicsUnregisterResource(resource);
 }