/// <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; }
/// <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; }
/// <summary> /// Registers a new graphics interop resource for interop with OpenGL image /// </summary> /// <param name="resource">OpenGL resource to register</param> /// <param name="flags">register Flags</param> /// <param name="target">OpenGLImageTarget</param> /// <param name="mapFlags">resource mapping flags</param> public CudaOpenGLImageInteropResource(uint resource, CUGraphicsRegisterFlags flags, OpenGLImageTarget target, CUGraphicsMapResourceFlags mapFlags) : this(resource, flags, target) { SetMapFlags(mapFlags); }
/// <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> /// <param name="mapFlags">resource mapping flags</param> public CudaOpenGLBufferInteropResource(uint resource, CUGraphicsRegisterFlags flags, CUGraphicsMapResourceFlags mapFlags) : this(resource, flags) { SetMapFlags(mapFlags); }
/// <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> /// <param name="mapFlags">resource mapping flags</param> public CudaDirectXInteropResource(IntPtr d3dResource, CUGraphicsRegisterFlags flags, CudaContext.DirectXVersion version, CUGraphicsMapResourceFlags mapFlags) : this(d3dResource, flags, version) { SetMapFlags(mapFlags); }
public static extern CUResult cuGraphicsD3D11RegisterResource(ref CUgraphicsResource pCudaResource, IntPtr pD3DResource, CUGraphicsRegisterFlags Flags);
public static extern CUResult cuGraphicsD3D11RegisterResource(ref CUgraphicsResource pCudaResource, IntPtr pD3DResource, CUGraphicsRegisterFlags Flags);
public static extern CUResult cuGraphicsGLRegisterImage(ref CUgraphicsResource pCudaResource, uint image, CudaOpenGLImageInteropResource.OpenGLImageTarget target, CUGraphicsRegisterFlags Flags);
public static extern CUResult cuGraphicsGLRegisterBuffer(ref CUgraphicsResource pCudaResource, uint buffer, CUGraphicsRegisterFlags Flags);
public static extern CUResult cuGraphicsGLRegisterImage(ref CUgraphicsResource pCudaResource, uint image, CudaOpenGLImageInteropResource.OpenGLImageTarget target, CUGraphicsRegisterFlags Flags);
public static extern CUResult cuGraphicsGLRegisterBuffer(ref CUgraphicsResource pCudaResource, uint buffer, CUGraphicsRegisterFlags Flags);